An enterprise is strengthening the security posture of an existing data processing platform. The platform runs on Amazon EC2 instances in a private subnet of VPC-A in Account A. The instances must read large, sensitive datasets from an Amazon S3 bucket in Account B. The S3 bucket is encrypted using an AWS Key Management Service (AWS KMS) customer managed key (CMK) in Account B.
The security architect must enforce the following security requirements:
1. All data transit between VPC-A and the S3 bucket must stay within the AWS network and must not traverse the public internet.
2. The S3 bucket must only accept requests that originate from the specific VPC endpoint created in VPC-A for S3.
3. Access to the S3 bucket and the KMS key must be granted based on the principle of least privilege to the EC2 instances' IAM role in Account A.
Which combination of configurations will meet these security requirements?
- In VPC-A, deploy an S3 Interface Endpoint with Private DNS enabled. Attach an endpoint policy to it that allows the IAM role in Account A to perform s3:GetObject on the bucket in Account B. In Account A, attach an IAM policy to the EC2 instances' role allowing s3:GetObject on the bucket in Account B and kms:Decrypt on the CMK in Account B. In Account B, configure the KMS key policy of the CMK to allow the IAM role in Account A to perform kms:Decrypt. Configure the S3 bucket policy to allow the IAM role in Account A to perform s3:GetObject only when the request condition aws:sourceVpce matches the ID of the S3 Interface Endpoint.Cevap
- BIn VPC-A, deploy an S3 Interface Endpoint with Private DNS enabled. Attach an endpoint policy to it that allows the IAM role in Account A to perform s3:GetObject on the bucket in Account B. In Account A, attach an IAM policy to the EC2 instances' role allowing s3:GetObject on the bucket in Account B. In Account B, configure the S3 bucket default encryption to use the AWS managed key (aws/s3). Update the key policy of aws/s3 to allow the IAM role in Account A to perform kms:Decrypt. Configure the S3 bucket policy to allow the IAM role in Account A to perform s3:GetObject only when the request condition aws:sourceVpce matches the ID of the S3 Interface Endpoint.
- CCreate a Service Control Policy (SCP) at the AWS Organizations root that explicitly allows the IAM role in Account A to perform s3:GetObject on the bucket in Account B and kms:Decrypt on the KMS key in Account B. In VPC-A, deploy an S3 Gateway Endpoint and associate it with the route tables of the private subnets. In Account B, configure the S3 bucket policy to allow the IAM role in Account A to perform s3:GetObject only when the request condition aws:sourceVpc matches the VPC ID of VPC-A.
- DIn VPC-A, deploy an S3 Interface Endpoint and disable Private DNS. Create a Route 53 Private Hosted Zone for s3.us-east-1.amazonaws.com in Account B, associate it with VPC-A, and create an Alias record pointing to the DNS name of the VPC endpoint. In Account A, attach an IAM policy to the EC2 instances' role allowing s3:GetObject on the bucket in Account B and kms:Decrypt on the CMK in Account B. In Account B, configure the KMS key policy of the CMK to allow the S3 VPC Endpoint service principal (vpce.amazonaws.com) to perform kms:Decrypt. Configure the S3 bucket policy to allow the IAM role in Account A to perform s3:GetObject only when the request condition aws:sourceVpce matches the ID of the S3 Interface Endpoint.