A financial services company is designing a new solution on AWS. They need to store sensitive audit logs in an Amazon S3 bucket in a dedicated security account (111122223333). These logs must be encrypted at rest. A partner application running in a separate AWS account (444455556666) requires daily read access to these logs. The company must implement a secure access mechanism that allows cross-account read access to the encrypted logs, adhering to the principle of least privilege. Which two configuration steps are required to establish this cross-account access? (Select TWO.)
- Configure the S3 bucket policy in the security account (111122223333) to allow s3:GetObject and s3:ListBucket permissions for the IAM role in the partner account (444455556666).Answer
- Configure the key policy of a Customer Managed Key (CMK) in the security account (111122223333) to grant kms:Decrypt and kms:DescribeKey permissions to the IAM role in the partner account (444455556666).Answer
- CEncrypt the S3 bucket in the security account using the default AWS managed key (aws/s3) and delegate decryption permissions via the partner account's local IAM policy.
- DAttach a Service Control Policy (SCP) to the organizational unit containing the security account to explicitly grant cross-account read access and decrypt permissions to the partner account (444455556666).
- EConfigure the S3 bucket policy in the partner account (444455556666) to pull logs from the security account (111122223333) and enable cross-account access.
Answer
Configure the S3 bucket policy in the security account to allow access to the partner's IAM role, and configure the key policy of a Customer Managed Key (CMK) in the security account to grant decrypt permissions to the partner's IAM role.
To establish cross-account access to encrypted S3 objects, the owning account must explicitly grant permissions on both the S3 bucket and the KMS key. The S3 bucket policy in the security account must allow s3:GetObject and s3:ListBucket for the partner role principal. Furthermore, because default key policies do not allow cross-account access and AWS managed keys cannot be modified, a Customer Managed Key (CMK) must be used. The CMK's key policy must be updated to grant kms:Decrypt and kms:DescribeKey permissions to the partner role.
Step-by-Step Solution
Key Concept
Cross-account resource access with KMS encryption requires explicit delegation in both the resource policy (S3 bucket policy) and the encryption key policy (KMS CMK policy), as AWS managed keys cannot be shared cross-account.