An enterprise has a security account (Account B) that hosts an AWS KMS Customer Managed Key (CMK). This CMK is used to encrypt sensitive telemetry data stored in Amazon S3 buckets located in a production account (Account A). The processing application in Account A runs on Amazon EC2 instances and requires access to decrypt these S3 objects. A security requirement states that the CMK must be rotated annually. The security team wants to ensure that key rotation does not disrupt the application's ability to read older archived S3 objects encrypted with previous versions of the key, and that the configuration strictly adheres to the principle of least privilege without exposing access credentials. Which of the following architectural configurations meets these requirements?
- AEnable automatic key rotation on the CMK in Account B. To ensure decryption capability is maintained for older objects, schedule a monthly AWS Lambda function to decrypt and re-encrypt all historical S3 data in Account A under the newly rotated key version before the previous key material is retired.
- BEnable automatic key rotation on the CMK in Account B. Store the CMK ARN and the security account's IAM cross-account access keys as a plain String parameter in AWS Systems Manager Parameter Store to allow the EC2 instances in Account A to programmatically authenticate and bypass cross-account IAM role mapping.
- Enable automatic key rotation on the CMK in Account B. In Account B, edit the CMK key policy to grant the EC2 IAM role in Account A permissions for the kms:Decrypt and kms:GenerateDataKey actions. In Account A, attach an IAM policy to the EC2 IAM role allowing these same KMS actions on the CMK ARN.Answer
- DEnable automatic key rotation on the CMK in Account B. To simplify cross-account permissions, configure the key policy in Account B to allow access to the AWS account root user of Account A, and use the root credentials of Account A within the processing application to perform all S3 decryption tasks.