A collection of AWS Security controls for IAM. Controls include Access Analyzer, IAM Password Policy, IAM policies, CloudWatch events and alarms for monitoring as well as Config rules. Configuration templates are available in AWS CloudFormation, AWS CLI and Terraform
An SSO permission set is a template that defines a collection of one or more IAM policies. A permission set is applied to allow SSO principals (users or groups) access to one or more AWS accounts.
A configuration template to assign access to a specified principal (SSO Group or User) to an AWS account using an SSO Permission Set
This template creates a custom permission set, `PermissionSetWithCmpPb`, with policies attached and a customer managed policy as a permissions boundary. The permission set is created within a specified IAM Identity Center instance. The template specifies the instance ARN, name, description, session duration, managed policies, customer managed policy references, and permissions boundary.
This template creates a custom permission set, `PermissionSet`, with a managed policies attachment (AdministratorAccess policy). The permission set is created within a specified IAM Identity Center instance, and creates an assignment for the AWS account Id 123456789012 and the user `my_admin_user`
This template enables the attribute-based access control (ABAC) feature for the specified IAM Identity Center instance. It creates a new attribute key `CostCenter` that is mapped to the value `â${path:enterprise.costCenter}â` which is coming from the identity source.
This template creates a custom assignment for the IAM Identity Center. It assigns the user with the ID 'user_id' access to the AWS account with the ID 'accountId' in the specified AWS SSO instance. The assignment is made using the permission set specified by the 'PermissionSetArn' property.
Configuration for creating an IAM role in an AWS account and optionally an EC2 Instance Profile. The template also includes options for customizing the access granted to the role using inline and managed IAM policies.
Configuration for creating an IAM user in an AWS account and optionally enable console access with a temporary password.
Configure Access Analyzer to discover which resources in an AWS account are shared with external principals outside of the account. Access Analyzer analyzes generates findings for supported resources in the region it was enabled, with the exception of IAM resources which generates findings in each region (as IAM is a global service).
Configuration to set an IAM password policy in an AWS account.
Configuration template to create an IAM Identity Provider (SAML) based on the provided XML Metadata document
This template creates a service-linked role that can be assumed by the Auto Scaling service. The role is linked to the Auto Scaling service and has the specified description and custom suffix. This role helps ensure that the Auto Scaling service has the necessary permissions and stability to function properly.
This template creates an IAM instance profile with the specified properties. The instance profile is associated with a role named 'Role' and has a path of '/'.
A configuration package to monitor IAM related API activity as well as configuration compliance rules to ensure the security of AWS IAM configuration. The package includes Config Rules, CloudWatch Alarms, and CloudWatch Event Rules, and uses SNS to deliver email notifications. The package also includes configuration to enable the required AWS logging services: AWS CloudTrail, Config, and CloudWatch log groups
A configuration package to monitor Root Account activity as well as configuration compliance rules to ensure the Root Account's security configuration. The package includes Config Rules for compliance and CloudWatch Alarms to track activity, and uses SNS to deliver email notifications. The package also includes configuration to enable the required AWS logging services: AWS CloudTrail, Config, and CloudWatch log groups
Alarm if there are AWS Management Console authentication failures.
Alarm if a root user uses the account
A CloudWatch Alarm that triggers if there is API activity in the account without MFA (Multi-Factor Authentication).
Alarm if there is a Management Console sign-in without MFA.
A CloudWatch Alarm that triggers when changes are made to IAM policies. Events include IAM policy creation/deletion/update operations as well as attaching/detaching policies from IAM users, roles or groups.
A CloudWatch Alarm that triggers when changes are made to IAM users. Events include IAM user creation/deletion/update operations, updating IAM user passwords or Access Keys, as well as attaching/detaching policies from IAM users or groups.
A CloudWatch Alarm that triggers when changes are made to IAM MFA devices (Virtual or Hardware). Events include enabling/disabling/updating MFA virtual and hardware devices in an AWS account.
A CloudWatch Event Rule that detects IAM policy changes and publishes change events to an SNS topic for notification. Events include IAM policy creation/deletion/update operations as well as attaching/detaching policies from IAM users, roles or groups.
A CloudWatch Event Rule that detects changes to IAM users and groups and publishes change events to an SNS topic for notification. Events include IAM user creation/deletion/update operations, updating IAM user passwords or Access Keys, as well as attaching/detaching policies from IAM users or groups.
A CloudWatch Event Rule that detects changes to IAM MFA devices (Virtual and Hardware) and publishes change events to an SNS topic for notification. Events include enabling/disabling/updating MFA virtual and hardware devices in an AWS account.
A CloudWatch Event Rule that triggers on IAM Access Analyzer Findings. The Event Rule can be used to trigger notifications or remediative actions using AWS Lambda.
Checks whether the account password policy for IAM users meets the specified requirements.
Checks whether users of your AWS account require a multi-factor authentication (MFA) device to sign in with root credentials.
Checks whether IAM groups have at least one IAM user.
Checks whether IAM users are members of at least one IAM group.
Checks that none of your IAM users have policies attached. IAM users must inherit permissions from IAM groups or roles.
A config rule that checks whether the AWS Identity and Access Management users have multi-factor authentication (MFA) enabled.
A config rule that checks that the AWS Identity and Access Management (IAM) role is attached to all AWS managed policies specified in the list of managed policies. The rule is NON_COMPLIANT if the IAM role is not attached to the IAM managed policy.
A config rule that checks whether your AWS account is enabled to use multi-factor authentication (MFA) hardware device to sign in with root credentials. The rule is NON_COMPLIANT if any virtual MFA devices are permitted for signing in with root credentials.
A config rule that checks whether the active access keys are rotated within the number of days specified in maxAccessKeyAge. The rule is NON_COMPLIANT if the access keys have not been rotated for more than maxAccessKeyAge number of days.
A config rule that checks whether the default version of AWS Identity and Access Management (IAM) policies do not have administrator access. If any statement has 'Effect': 'Allow' with 'Action': '*' over 'Resource': '*', the rule is NON_COMPLIANT.
A config rule that checks whether the root user access key is available. The rule is COMPLIANT if the user access key does not exist.
A config rule that checks whether your AWS Identity and Access Management (IAM) users have passwords or active access keys that have not been used within the specified number of days you provided. Re-evaluating this rule within 4 hours of the first evaluation will have no effect on the results.
A Config rule that checks whether AWS Multi-Factor Authentication (MFA) is enabled for all AWS Identity and Access Management (IAM) users that use a console password. The rule is COMPLIANT if MFA is enabled.
A Config rule that that none of your IAM users, groups, or roles (excluding exceptionList) have the specified policies attached
A config rule that checks that inline policy feature is not in use. The rule is NON_COMPLIANT if an AWS Identity and Access Management (IAM) user, IAM role or IAM group has any inline policy.
A config rule that checks whether the IAM policy ARN is attached to an IAM user, or an IAM group with one or more IAM users, or an IAM role with one or more trusted entity.
Checks if the managed AWS Identity and Access Management (IAM) policies that you create do not allow blocked actions on AWS KMS) keys. The rule is NON_COMPLIANT if any blocked action is allowed on AWS KMS keys by the managed IAM policy.
Checks if the inline policies attached to your IAM users, roles, and groups do not allow blocked actions on all AWS KMS keys. The rule is NON_COMPLIANT if any blocked action is allowed on all AWS KMS keys in an inline policy.
Checks if AWS Identity and Access Management (IAM) policies that you create grant permissions to all actions on individual AWS resources. The rule is NON_COMPLIANT if any customer managed IAM policy allows full access to at least 1 AWS service.
A policy that allows IAM users to self-manage an MFA device. This policy provides the permissions necessary to complete this action using the AWS API or AWS CLI only.
A policy that allows IAM users to rotate their own access keys, signing certificates, service specific credentials, and passwords. This policy also provides the permissions necessary to complete this action programmatically and on the console.
A policy that allows using the policy simulator API for policies attached to a user, group, or role in the current AWS account. This policy also allows access to simulate less sensitive policies passed to the API as strings. This policy provides the permissions necessary to complete this action using the AWS API or AWS CLI only.
A policy that allows using the policy simulator console for policies attached to a user, group, or role in the current AWS account.
This SCP prevents restricts the root user in an AWS account from taking any action, either directly as a command or through the console.
This SCP restricts IAM principals from creating new IAM users or IAM Access Keys in an AWS account.
This SCP restricts IAM principals from creating new IAM users or IAM Access Keys in an AWS account with an exception for a specified Administrator IAM role.
This SCP restricts IAM principals from modifying existing IAM password policies in an AWS account with an exception for a specified Administrator IAM role.
This SCP restricts IAM principals in accounts from making changes to an IAM role created in an AWS account (This could be a common administrative IAM role created in all accounts in your organization).
This SCP restricts IAM principals in accounts from making changes to an IAM role created in an AWS account except if the change was being done by that specified role(This could be a common administrative IAM role created in all accounts in your organization).
This SCP prevents users or roles in any affected account from deleting AWS Access Analyzer in an AWS account.