"""Config file for lambda function.""" import os APPLICATION_NAME = 'aws-users-key-watchdog' # AWS region configuration DEFAULT_AWS_REGION = 'us-east-1' AWS_REGION = os.environ.get('AWS_REGION', DEFAULT_AWS_REGION) # Environment setup DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' PROD_ENVIRONMENT = 'prod' ENVIRONMENT = os.environ.get('ENVIRONMENT', DEV_ENVIRONMENT) # Lambda configuration KEY_MAX_AGE_DAYS = int(os.environ.get('KEY_MAX_AGE_DAYS', 90)) SEND_NOTIFICATION_DAYS_BEFORE = int(os.environ.get('SEND_NOTIFICATION_DAYS_BEFORE', 7)) # Default sender email, configurable via the EMAIL_SENDER environment variable DEFAULT_EMAIL_SENDER = os.environ.get( 'EMAIL_SENDER', 'AWS Watchdog ' ) # Default Sender ARN, configurable via the SENDER_ARN environment variable DEFAULT_SENDER_ARN = os.environ.get( 'SENDER_ARN', 'arn:aws:ses:us-east-1:483193324480:identity/aws-user-alerts.delphiplatform.io' ) class Config: def __init__(self): self.WARNING_THRESHOLD = int(os.environ.get('WARNING_THRESHOLD', 80)) self.ALERT_THRESHOLD = int(os.environ.get('ALERT_THRESHOLD', 90)) # It only disables DRY_RUN mode when explicitly set to 'false' (case-insensitive) self.DRY_RUN = os.environ.get('DRY_RUN', 'true').lower() != 'false' # Configurable tag names - these are the names of the IAM tags to look for # For TAG_NAME_WATCHDOG_ENABLED and TAG_NAME_NOTIFICATION_ENABLED, the expected tag value is 'always' self.TAG_NAME_EMAIL = os.environ.get('TAG_EMAIL', 'email') self.TAG_NAME_FULLNAME = os.environ.get('TAG_FULLNAME', 'name') self.TAG_NAME_WATCHDOG_ENABLED = os.environ.get('TAG_WATCHDOG_ENABLED', 'watchdog_enabled') self.TAG_NAME_NOTIFICATION_ENABLED = os.environ.get('TAG_NOTIFICATION_ENABLED', 'notification_enabled') self.TAG_NAME_ROLE = os.environ.get('TAG_ROLE', 'role') self.SERVICE_USER_VALUE = os.environ.get('SERVICE_USER_VALUE', 'service-user') # This is a value, not a tag name