Question

Difficulty: Very hardCentralized Monitoring, Logging, and Auditing Solutions

A retail conglomerate is establishing a centralized compliance and security auditing solution across its multi-account AWS Organization. The architecture requires that an organization-wide AWS CloudTrail trail be deployed to consolidate management and data events from all member accounts into a single Amazon S3 bucket located in a dedicated Security account. The logs must be encrypted at rest using SSE-KMS with a Customer Managed Key (CMK). The solution must ensure that member accounts cannot modify the auditing infrastructure or view the logs of other accounts, and it must enforce that all logs are encrypted using the designated key. Which TWO of the following configurations must a solutions architect implement to satisfy these requirements?

  1. Configure the S3 bucket policy in the Security account to grant s3:PutObject and s3:GetBucketAcl permissions to the cloudtrail.amazonaws.com service principal, restricting access using the aws:PrincipalOrgID condition key matching the organization ID.Answer
  2. Configure the KMS key policy of the Customer Managed Key in the Security account to grant kms:GenerateDataKey* and kms:DescribeKey permissions to the cloudtrail.amazonaws.com service principal, using the aws:SourceArn condition key to restrict access to the organization trail ARN.Answer
  3. C
    Enable default encryption on the S3 bucket using the AWS-managed KMS key aws/s3 in the Security account, and define a Service Control Policy (SCP) that forces member accounts to encrypt CloudTrail logs with this key.
  4. D
    Attach a Service Control Policy (SCP) to the organization's root that grants s3:PutObject and kms:GenerateDataKey* permissions to the cloudtrail.amazonaws.com service principal, allowing cross-account delivery without S3 or KMS policies in the Security account.
  5. E
    Configure the S3 bucket policy in the Security account to grant write permissions to the root user of each member account, and rely on IAM policies within the member accounts to authorize the CloudTrail service to write to the S3 bucket.

Answer

The correct configurations are to configure the S3 bucket policy in the Security account to allow the CloudTrail service principal with an organizational ID condition, and to configure the key policy of the KMS Customer Managed Key in the Security account to grant the CloudTrail service principal permissions for generating data keys.
The correct solution involves configuring both the S3 bucket policy and the KMS Customer Managed Key key policy to grant direct access to the CloudTrail service principal. The S3 bucket policy must allow the service to perform s3:PutObject and s3:GetBucketAcl, using the aws:PrincipalOrgID condition to restrict delivery to the organization. Additionally, since AWS-managed KMS keys cannot be shared cross-account, a Customer Managed Key must be used, and its policy must authorize the CloudTrail service principal to perform kms:GenerateDataKey* and kms:DescribeKey actions, restricted by the trail's source ARN.

Step-by-Step Solution

1
Configure S3 Bucket Policy
The S3 bucket in the Security account is configured to accept log files from the CloudTrail service principal, restricted to the specific organization.
CloudTrail requires explicit s3:PutObject and s3:GetBucketAcl permissions on the target bucket to deliver logs cross-account.
2
Configure KMS Key Policy
The Customer Managed Key in the Security account allows the CloudTrail service principal to generate data keys for encryption.
AWS-managed keys cannot be shared cross-account, so a Customer Managed Key is required. Its key policy must grant permissions to the CloudTrail service principal.

Key Concept

Cross-account centralized auditing requires configuring resource policies (S3 bucket policy and KMS key policy) to authorize the CloudTrail service principal using organization and resource ARN constraints.
Rate this question