Description: Checks to see if there is a password policy section enabled in IAM.
old-periodic/iam_password_policy_enabled-periodic.js
Trigger Type: Periodic
Required Paramters: None
Description: Checks that the IAM password policy requires minimum number of characters
old-periodic/iam_password_minimum_length-periodic.js
Trigger Type: Periodic
Required Parameter: MinimumPasswordLength
Example Value: 12
Description: Checks that the IAM password policy enforces a maximum password age
old-periodic/iam_password_maximum_age-periodic.js
Trigger Type: Periodic
Required Parameter: MaxPasswordAge
Example Value: 90
Description: Checks that the IAM password policy requires an uppercase character
old-periodic/iam_password_require_uppercase-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the IAM password policy requires a lowercase character
old-periodic/iam_password_require_lowercase-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the IAM password policy requires a number
old-periodic/iam_password_require_number-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the IAM password policy requires a symbol
old-periodic/iam_password_require_symbol-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the IAM password policy prevents password reuse
old-periodic/iam_password_require_reuse-periodic.js
Trigger Type: Periodic
Required Parameter: PasswordReusePrevention
Example Value: 24
Description: Checks that EC2 Instances have desired tenancy
node/instance_desired_tenancy-triggered.js
Trigger Type: Change Triggered
Scope of Changes: EC2:Instance
Required Parameter: DesiredTenancy
Example Value: dedicated
Description: Checks that CloudTrail is enabled in all regions. Use this rule only in your home region
old-periodic/cloudtrail_enabled_all_regions-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the IAM User's Access Keys have been rotated within the specified number of days.
node/iam_access_key_rotation-triggered.js
Trigger Type: Change Triggered
Scope of Changes: IAM:User
Required Parameter: MaximumAPIKeyAge
Example Value: 90
Description: Checks that the Root Account's Access Keys have been disabled.
old-periodic/iam_access_key_root_disabled-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the Root Account has MFA Enabled
old-periodic/iam_mfa_require_root-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that all IAM Users have MFA Enabled
node/iam_mfa_require-triggered.js
Trigger Type: Change Triggered
Scope of Changes: IAM:User
Required Parameter: None
Description: Checks that CloudTrail Log Validation is Enabled in All Regions
old-periodic/cloudtrail_validation_all_regions-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that AWS Config is Enabled in All Regions
old-periodic/config_enabled_in_region-periodic.js
Trigger Type: Periodic
Required Parameter: None
Description: Checks that all EC2 instances are of the type specified
python/ec2_desired_instance_type-triggered.py
Trigger Type: Change Triggered
Scope of Changes: EC2:Instance
Required Parameter: desiredInstanceType
Example Value: t2.small
See https://aws.amazon.com/ec2/instance-types/ for more instance types
Description: Checks that the number of resources that are active is lower than specified count for a given resource type.
old-periodic/resource_type_max_count-periodic.py
Trigger Type: Periodic
Required Parameters: applicableResourceType
, maxCount
Example Value: AWS::EC2::Instance
, 10
See http://docs.aws.amazon.com/config/latest/APIReference/API_ListDiscoveredResources.html for resource types.
Description: Checks that VPC Flow Logs is enabled at specific VPC
python/vpc_flow_logs_enabled.py
Trigger Type: Change Triggered
Scope of Changes: EC2:VPC
Required Resource Identifier: VPC ID
Example Value: vpc-xxxxxxxx
Description: Checks that all security groups block access to the specified ports.
python/ec2-exposed-group.py
Trigger Type: Change Triggered
Scope of Changes: EC2:SecurityGroup
Accepted Parameters: examplePort1
, exampleRange1
, examplePort2
, ...
Example Values: 8080
, 1-1024
, 2375
, ...
Description: Checks that all instances block access to the specified ports.
python/ec2-exposed-instance.py
Trigger Type: Change Triggered
Scope of Changes: EC2:Instance
Accepted Parameters: examplePort1
, exampleRange1
, examplePort2
, ...
Example Values: 8080
, 1-1024
, 2375
, ...
Description: Checks that all users have been active for earlier than specified.
python/ec2-inactive-user.py
Trigger Type: Change Triggered
Scope of Changes: IAM:User
Required Parameters: maxInactiveDays
Example Value: 90
Description: Checks that all users have strong password policy requirements.
python/iam-password-policy.py
Trigger Type: Change Triggered
Scope of Changes: EC2:User
Accepted Parameters: requireNumbers
, expirePassword
, hardExpiry
, minimumPasswordLength
, requireSymbols
, requireUppercaseCharacters
, requireLowercaseCharacters
, allowUsersToChangePassword
, passwordReusePrevention
Example Values: true
, true
, false
, 6
, true
, true
, true
, true
, 5
Description: Checks that all users have only active access keys.
python/iam-unused-keys.py
Trigger Type: Change Triggered
Scope of Changes: IAM:User
Description: Checks that all users have logged in at least once.
python/iam-unused-user.py
Trigger Type: Change Triggered
Scope of Changes: IAM:User
Description: Checks that all users have enabled multiple factor authentication.
python/iam-mfa.py
Trigger Type: Change Triggered
Scope of Changes: IAM:User
Description: Checks that all EC2 instances that have match a tag format (via regex) also have a specific security group. For example, a tag regex of ^prod(us|eu|br)[lw]box[0-9]{3}$
will match produslbox001
.
python/ec2_require_security_group_by_tag.py
Trigger Type: Change Triggered
Scope of Changes: EC2:Instance
Required Parameters: namePattern
, securityGroupName
Example Value: ^prod(us|eu|br)[lw]box[0-9]{3}$
, MyTestGroup
Description: Checks that the Root Account has MFA Enabled
java/src/main/java/com/amazonaws/services/config/samplerules/RootAccountMFAEnabled.java
Trigger Type: Periodic
Required Parameter: None
Description: Checks that the required tags exist and has a value matching one in the comma-separated list
python/ec2_require_tags_with_valid_values.py
Trigger Type: Change Triggered
Required Parameter: requiredTagKey1
, requiredTagValues1
, requiredTagKey2
, ...
Description: Checks that the RDS DB instance is encrypted. If an optional KMS key ARN is provided, then whether encryption was done with provided key
node/rds_db_instance_encrypted.js
Trigger Type: Change Triggered
Required Parameter: None
Description: Checks that that the ingress permissions on an EC2 Security Group are correct and adjusts them if they are incorrect.
python/ec2_security_group_ingress.py
Trigger Type: Change Triggered
Required Parameter: None
Description: Check that no security groups allow public access to the ports other then 80 and 443.
python/ec2_sg_public_ingress_excluding_80_443.py
Trigger Type: Change Triggered
Required Parameter: None
Description: Check that no EC2 Instances are in Public Subnet.
python/ec2_vpc_public_subnet.py
Trigger Type: Change Triggered
Required Parameter: None
Description: Check that no RDS Instances are in Public Subnet.
python/rds_vpc_public_subnet.py
Trigger Type: Change Triggered
Required Parameter: None
Description: Check that bucket policy is not attached to an S3 Bucket.
python/s3_bucket_policy_prohibited.py
Trigger Type: Change Triggered
Required Parameter: None