A multinational enterprise is building a financial transaction platform using a multi-account structure in AWS Organizations. The application tier runs on Amazon EC2 instances in an Application account (account 444455556666). The transaction logs must be stored in a secured Amazon S3 bucket within the Application account. A compliance mandate dictates that all logs must be encrypted at rest using an AWS KMS Customer Managed Key (CMK) hosted and managed centrally in a dedicated Security account (account 111122223333). Additionally, the system must reject any write operation to the S3 bucket if the data is not encrypted with the specified cross-account CMK. Which combination of actions should the Solutions Architect take to meet these compliance and security requirements? (Select TWO.)
- In the Security account, configure a Customer Managed Key key policy that grants the Application account root principal (arn:aws:iam::444455556666:root) permissions to perform kms:GenerateDataKey* and kms:Decrypt. In the Application account, attach an IAM policy to the EC2 instance profile's IAM role allowing these same KMS actions on the CMK ARN.Answer
- In the Application account, configure an S3 bucket policy that denies the s3:PutObject action unless the s3:x-amz-server-side-encryption-aws-kms-key-id request header matches the ARN of the KMS CMK in the Security account. In the Application account, grant the EC2 instance profile's IAM role permission to perform s3:PutObject on the S3 bucket.Answer
- CIn the Security account, configure the AWS-managed KMS key for S3 (aws/s3) to grant usage permissions to the Application account root principal. In the Application account, configure the EC2 instance profile's IAM role to encrypt S3 uploads using this AWS-managed key.
- DCreate a Service Control Policy (SCP) at the Organizational Unit (OU) level containing both accounts that explicitly permits the Application account's EC2 instances to perform kms:GenerateDataKey* and kms:Decrypt actions on the key ARN. Rely on this SCP to authorize the cross-account encryption without updating the key policy or local IAM policies.
- EIn the Application account, configure the S3 bucket policy to trust the Security account root principal as the sole writer, and implement a bucket policy condition requiring s3:x-amz-server-side-encryption to be set to AES256 while leaving KMS authorization to be managed solely by AWS IAM roles in the Security account.