"""Config file for lambda function.""" import os from secrets_manager.lambda_ext import LambdaSecretsManager APPLICATION_NAME = 'break-glass-elevate-permissions' # AWS region configuration AWS_REGION = os.environ.get('AWS_DEFAULT_REGION', 'us-east-1') # Environment configuration DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' PROD_ENVIRONMENT = 'prod' ENVIRONMENT = os.environ.get('Environment', DEV_ENVIRONMENT) # General configuration BREAK_GLASS_ROLE_NAME = { '437795906767': 'prod-break-glass-access-role', '103233932089': 'dev-break-glass-access-role', '591204808501': 'qa-break-glass-access-role', '031099521156': 'prod-break-glass-access-role', '619719722105': 'qa-break-glass-access-role', '926734670777': 'prod-break-glass-access-role', '285943604611': 'qa-break-glass-access-role', '737325105821': 'prod-break-glass-access-role', } SENTRY_DSN = os.environ.get('SENTRY_DSN') # Slack configuration SLACK_BREAK_GLASS_IMAGE = os.environ.get( 'SLACK_BREAK_GLASS_IMAGE', 'https://cdn.theorchard.io/images/break-glass.jpg' ) SLACK_CHANNEL_NAME = os.environ.get('SLACK_CHANNEL_NAME', 'production-outage') # Email configuration EMAIL_CHARSET = 'UTF-8' # Comma-separated list of email recipients EMAIL_RECIPIENTS = os.environ.get( 'EMAIL_RECIPIENTS', 'tech.mgmt@theorchard.com').split(',') EMAIL_SENDER = os.environ.get('EMAIL_SENDER', 'donotreply@theorchard.com') EMAIL_SUBJECT = 'AWS Break Glass Tool Notification' EMAIL_TEMPLATE_FILE = 'email_template.html.jinja' # Jira configuration JIRA_BASE_URL = 'https://theorchard.atlassian.net' JIRA_EMAIL_ADDRESS = os.environ.get('JIRA_EMAIL_ADDRESS') JIRA_ISSUE_VALIDITY_PERIOD_HOURS = int( os.environ.get('JIRA_ISSUE_VALIDITY_PERIOD_HOURS', 24)) # Secrets Manager values FORCE_REMOTE = os.environ.get('FORCE_REMOTE', 'false').lower() == 'true' secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=APPLICATION_NAME, force_remote=FORCE_REMOTE) JIRA_API_TOKEN = secrets_manager_client.get_cred('JIRA_API_TOKEN') SLACK_TOKEN = secrets_manager_client.get_cred('SLACK_TOKEN') # SQS configuration SQS_QUEUE_NAME = os.environ.get( 'SQS_QUEUE_NAME', '{}-break-glass-communication-queue'.format(ENVIRONMENT)) VERIFICATION_AWS_ROLE_ARN = { '437795906767': 'arn:aws:iam::437795906767:role/prod-break-glass-validate-role', # noqa: E501 '103233932089': 'arn:aws:iam::103233932089:role/dev-break-glass-validate-role', # noqa: E501 '591204808501': 'arn:aws:iam::591204808501:role/qa-break-glass-validate-role', # noqa: E501 '031099521156': 'arn:aws:iam::031099521156:role/prod-break-glass-validate-role', # noqa: E501 '619719722105': 'arn:aws:iam::619719722105:role/qa-break-glass-validate-role', # noqa: E501 '926734670777': 'arn:aws:iam::926734670777:role/prod-break-glass-validate-role', # noqa: E501 '285943604611': 'arn:aws:iam::285943604611:role/qa-break-glass-validate-role', # noqa: E501 '737325105821': 'arn:aws:iam::737325105821:role/prod-break-glass-validate-role', # noqa: E501 } ROLE_SESSION_NAME = 'break-glass' ASSUME_ROLE_TIMEOUT_MINUTES = 15