A digital health platform hosts its application workloads in a production AWS account under an AWS Organizations structure. The application stores HIPAA-regulated patient health summaries in an Amazon S3 bucket. Currently, the bucket is encrypted using default server-side encryption with the AWS managed key (`aws/s3`). To comply with a new security directive, the platform's security officer requires that a compliance reporting service running in a separate, dedicated auditing AWS account must be able to read these health summaries. The encryption keys must support automatic rotation, and the policy must adhere strictly to the principle of least privilege. Which two actions should the solutions architect take to implement these changes?
- Create a symmetric customer managed key (CMK) in the production account, enable automatic key rotation, and configure the key policy to grant the auditing account's IAM role access to the `kms:Decrypt` action.Answer
- Configure the default encryption of the S3 bucket to use the new customer managed key, and update the S3 bucket policy in the production account to grant the auditing account's IAM role access to the `s3:GetObject` action.Answer
- CModify the key policy of the existing AWS managed key (`aws/s3`) in the production account to delegate cross-account decryption access to the auditing account's IAM role.
- DCreate a bucket policy on the S3 bucket in the auditing account to grant the auditing role `s3:GetObject` permissions, and configure a Service Control Policy (SCP) to enable cross-account access.
- EEnable cross-account sharing for the AWS managed key (`aws/s3`) in the production account using AWS Resource Access Manager (RAM), and grant the auditing role access to the key.
Answer
The correct actions are to create a symmetric customer managed key (CMK) in the production account with automatic rotation enabled, grant decryption permissions to the auditing account's IAM role in the key policy, update the S3 bucket default encryption to use this CMK, and update the production S3 bucket policy to grant the auditing role access to get the objects.
To retrieve encrypted objects from an S3 bucket in another account, the auditing IAM role must have permission in both the S3 bucket policy (`s3:GetObject`) and the KMS key policy (`kms:Decrypt`). Because the default AWS managed key (`aws/s3`) cannot be configured with a custom policy or shared cross-account, a symmetric customer managed key (CMK) must be created in the production account. Enabling automatic rotation on this CMK satisfies security policies, and updating the key policy grants the external account decryption capability. Updating the S3 bucket default encryption to the CMK and applying the bucket policy completes the access path.
Step-by-Step Solution
Key Concept
Cross-account access to encrypted Amazon S3 resources requires both S3 bucket policy permissions and KMS customer managed key (CMK) policy decryption permissions, as AWS managed KMS keys cannot be shared across accounts.