A healthcare provider has a multi-account AWS environment managed under AWS Organizations. An existing application in several member accounts uploads medical imaging data to a centralized Amazon S3 bucket in a dedicated compliance account. The S3 bucket currently uses the default AWS-managed KMS key (aws/s3) for server-side encryption. A security audit requires the provider to implement cross-account access so that authorized IAM roles in the member accounts can retrieve and decrypt the objects. Additionally, the solution must adhere to the principle of least privilege. Which configuration change should the solutions architect implement to meet these requirements?
- ARetain the AWS-managed KMS key (aws/s3) for default encryption on the centralized S3 bucket. Update the S3 bucket policy in the compliance account to grant read and write permissions to the member accounts, and configure the member accounts' IAM policies to allow kms:Decrypt and kms:GenerateDataKey on the AWS-managed key.
- Create a customer-managed KMS key in the compliance account and configure the S3 bucket to use it. Update the KMS key policy to grant the member accounts' IAM roles permissions to perform kms:Decrypt and kms:GenerateDataKey. Update the S3 bucket policy in the compliance account to allow the member accounts' IAM roles to perform s3:PutObject and s3:GetObject.Cevap
- CCreate a customer-managed KMS key in the compliance account and configure the S3 bucket to use it. Attach an AWS Organizations Service Control Policy (SCP) at the Root level that explicitly allows the member accounts' IAM roles to perform kms:Decrypt and kms:GenerateDataKey on the new KMS key in the compliance account, without modifying the key policy.
- DCreate a customer-managed KMS key in the compliance account and configure the S3 bucket to use it. Update the KMS key policy to grant the member accounts' IAM roles permissions to perform kms:Decrypt and kms:GenerateDataKey, but do not update the S3 bucket policy, relying instead on member account IAM policies for S3 bucket access.
Cevap
Create a customer-managed KMS key in the compliance account and configure the S3 bucket to use it. Update the KMS key policy to grant the member accounts' IAM roles permissions to perform kms:Decrypt and kms:GenerateDataKey. Update the S3 bucket policy in the compliance account to allow the member accounts' IAM roles to perform s3:PutObject and s3:GetObject.
The correct configuration establishes a customer-managed key (CMK) in the compliance account. Unlike AWS-managed keys, CMKs allow key policies to be modified, enabling the compliance account to delegate decryption and data key generation permissions to member account IAM roles. Additionally, it configures the destination S3 bucket policy to grant read/write access to the cross-account roles, completing the required authorization loop for cross-account S3 operations.
Adım Adım Çözüm
Anahtar Kavram
Cross-Account Access to S3 and KMS CMKs
Tahmini Süre:2m 30s