Controls with parameters - AWS Control Tower

Controls with parameters

In AWS Control Tower, RCP-based and certain SCP-based controls support configuration. These controls contain elements that are included by AWS Control Tower conditionally, based on the configuration you select.

For example, some control policies include inline templating variables, such as the one shown in the example that follows. The example shows the ExemptedPrincipalArns parameter.

{ "Sid": "CTEC2PV1", "Effect": "Deny", "Action": [ "ec2:CreateSnapshot", "ec2:CreateSnapshots" ], "Resource": "arn:*:ec2:*:*:volume/*", "Condition": { "Bool": { "ec2:Encrypted": "false" }{% if ExemptedPrincipalArns %}, "ArnNotLike": { "aws:PrincipalArn": {{ExemptedPrincipalArns}} }{% endif %} } }

A control may support any of the following four configuration parameters:
  • ExemptedPrincipalArns: A list of AWS IAM principal ARNs that are exempted from this control.

    • This parameter allows you to exempt IAM Principals from this control by way of an ArnNotLikeIfExists condition key operator and aws:PrincipalArn condition key that is applied to the control policy by AWS Control Tower when you enable the control. The ExemptedPrincipalArns parameter allows you to use the wildcard character (*) in the IAM principal ARNs that you specify. You can use the wildcard character to exempt all IAM principals in an AWS account, or exempt a common principal across multiple AWS accounts.

    • When you use the wildcard character to exempt principals, be sure that you follow the principal of least privilege: include only those IAM principal ARNs that you require to be exempt from a control. Otherwise, if your exemptions are too broad, the control may not come into effect when you intend it to.

  • AllowedRegions: List of AWS Regions exempted from the control.

  • ExemptedActions: List of AWS IAM actions exempted from the control.

  • ExemptedResourceArns: List of resource ARNs exempted from the control.

For more details about configuring controls with parameters, see ControlParameter in the AWS Control Tower API Reference.

List of parameterized controls

Control identifier Display name
AWS-GR_AUDIT_BUCKET_ENCRYPTION_ENABLED Enable encryption at rest for log archive
AWS-GR_AUDIT_BUCKET_LOGGING_ENABLED Enable access logging for log archive
AWS-GR_AUDIT_BUCKET_POLICY_CHANGES_PROHIBITED Disallow policy changes to log archive
AWS-GR_AUDIT_BUCKET_RETENTION_POLICY Set a retention policy for log archive
AWS-GR_DISALLOW_CROSS_REGION_NETWORKING Disallow cross-region networking for Amazon EC2, Amazon CloudFront, and AWS Global Accelerator
AWS-GR_DISALLOW_VPC_INTERNET_ACCESS Disallow internet access for an Amazon VPC instance managed by a customer
AWS-GR_DISALLOW_VPN_CONNECTIONS Disallow AWS Virtual Private Network (VPN) connections
AWS-GR_RESTRICT_ROOT_USER Disallow actions as a root user
AWS-GR_RESTRICT_ROOT_USER_ACCESS_KEYS Disallow creation of access keys for the root user
AWS-GR_RESTRICT_S3_CROSS_REGION_REPLICATION Disallow cross region replication for S3 buckets
AWS-GR_RESTRICT_S3_DELETE_WITHOUT_MFA Disallow delete actions on S3 buckets without MFA
CT.APPSYNC.PV.1 Require an AWS AppSync GraphQL API to be configured with private visibility
CT.EC2.PV.1 Require an Amazon EBS snapshot to be created from an encrypted EC2 volume
CT.EC2.PV.2 Require that an attached Amazon EBS volume is configured to encrypt data at rest
CT.EC2.PV.3 Require that an Amazon EBS snapshot cannot be publicly restorable
CT.EC2.PV.4 Require that Amazon EBS direct APIs are not called
CT.EC2.PV.5 Disallow the use of Amazon EC2 VM import and export
CT.EC2.PV.6 Disallow the use of deprecated Amazon EC2 RequestSpotFleet and RequestSpotInstances API actions
CT.KMS.PV.1 Require an AWS KMS key policy to have a statement that limits creation of AWS KMS grants to AWS services
CT.KMS.PV.2 Require that an AWS KMS asymmetric key with RSA key material used for encryption does not have a key length of 2048 bits
CT.KMS.PV.3 Require that an AWS KMS key is configured with the bypass policy lockout safety check enabled
CT.KMS.PV.4 Require that an AWS KMS customer-managed key (CMK) is configured with key material originating from AWS CloudHSM
CT.KMS.PV.5 Require that an AWS KMS customer-managed key (CMK) is configured with imported key material
CT.KMS.PV.6 Require that an AWS KMS customer-managed key (CMK) is configured with key material originating from an external key store (XKS)
CT.LAMBDA.PV.1 Require an AWS Lambda function URL to use AWS IAM-based authentication
CT.LAMBDA.PV.2 Require an AWS Lambda function or AWS Lambda function URL to be configured for access only to principals within your AWS account
CT.KMS.PV.7 Require that the organization's AWS Key Management Service resources are accessible only by IAM principals that belong to the organization, or by an AWS service
CT.S3.PV.2 Require all requests to Amazon S3 resources use authentication based on an Authorization header
CT.S3.PV.3 Require requests to Amazon S3 resources to use a minimum TLS version of 1.3
CT.S3.PV.4 Require that the organization's Amazon S3 resources are accessible only by IAM principals that belong to the organization or by an AWS service
CT.S3.PV.5 Require encryption of data in transit for calls to Amazon S3 resources
CT.S3.PV.6 Require all object uploads to Amazon S3 buckets to use server-side encryption with an AWS KMS key (SSE-KMS
CT.SECRETSMANAGER.PV.1 Require that the organization's AWS Secrets Manager resources are accessible only by IAM principals that belong to the organization or by an AWS service
CT.SQS.PV.1 Require that the organization's Amazon SQS resources are accessible only by IAM principals that belong to the organization, or by an AWS service
CT.STS.PV.1 Require that the organization's AWS Security Token Service resources are accessible only by IAM principals that belong to the organization, or by an AWS service