A company manages member accounts within a single organization in AWS Organizations. The security team is setting up AWS Config in all member accounts and wants to centralize all configuration history files and snapshots into a single Amazon S3 bucket located in a dedicated Security Archive account. They want to encrypt all configuration data in the S3 bucket using a Customer Managed Key (CMK) in AWS KMS. Which configuration combination will allow AWS Config to successfully deliver the files to the S3 bucket?
- In the Security Archive account, configure the S3 bucket policy to allow s3:PutObject and s3:GetBucketAcl for the config.amazonaws.com service principal, conditioned on the organization ID. Create a KMS CMK in the Security Archive account, and configure its key policy to allow config.amazonaws.com to perform kms:GenerateDataKey* and kms:Decrypt, conditioned on the organization ID. In the member accounts, point AWS Config to the central S3 bucket and the KMS CMK ARN.Answer
- BIn the Security Archive account, configure the S3 bucket policy to allow s3:PutObject and s3:GetBucketAcl for the config.amazonaws.com service principal, conditioned on the organization ID. Configure AWS Config in the member accounts to use the central S3 bucket and select the default AWS-managed KMS key for Amazon S3 (aws/s3) for encryption.
- CIn the Security Archive account, create a KMS CMK and configure its key policy to allow config.amazonaws.com to perform kms:GenerateDataKey* and kms:Decrypt, conditioned on the organization ID. Configure the S3 bucket policy to allow the IAM roles associated with AWS Config in each member account to perform s3:PutObject and s3:GetBucketAcl, without allowing the config.amazonaws.com service principal.
- DAttach a Service Control Policy (SCP) to the organization root that grants s3:PutObject permissions on the central S3 bucket and kms:GenerateDataKey* permissions on the KMS key to the config.amazonaws.com service principal across all accounts. Enable default S3 encryption in the Security Archive account using an AWS-managed key, relying on the SCP to authorize cross-account delivery.
Answer
In the Security Archive account, configure the S3 bucket policy to allow s3:PutObject and s3:GetBucketAcl for the config.amazonaws.com service principal, conditioned on the organization ID. Create a KMS CMK in the Security Archive account, and configure its key policy to allow config.amazonaws.com to perform kms:GenerateDataKey* and kms:Decrypt, conditioned on the organization ID. In the member accounts, point AWS Config to the central S3 bucket and the KMS CMK ARN.
The correct answer configuration successfully authorizes cross-account delivery by targeting the config.amazonaws.com service principal in both the S3 bucket policy and the KMS Customer Managed Key (CMK) policy. Because AWS Config uses the service principal rather than member account IAM roles to perform delivery, and because AWS-managed keys cannot be used for cross-account encryption, a Customer Managed Key (CMK) in the central account with explicit service principal trust is the only valid solution.
Step-by-Step Solution
Key Concept
Centralized cross-account resource delivery with AWS Config, S3, and KMS Customer Managed Keys
Estimated Time:2m 0s