An enterprise manages AWS accounts under a single organization in AWS Organizations. The Chief Information Security Officer (CISO) requires a centralized logging solution that records all AWS API activity across all member accounts. The logs must be consolidated into a centralized Amazon S3 bucket within a dedicated Log Archive account.
The design must satisfy the following strict security and operational constraints:
- All log files must be encrypted at rest using a Customer Managed Key (CMK) in AWS KMS managed by the Log Archive account.
- Member accounts must have no permission to modify or disable the logging configuration, nor should they have direct access to read or decrypt the centralized logs.
- The S3 bucket and KMS CMK policies must restrict access using the principle of least privilege, preventing unauthorized AWS accounts from writing logs or using the KMS key.
Which set of configurations should a solutions architect implement to meet these requirements?
- Create the S3 bucket and a KMS CMK in the Log Archive account. Configure the KMS key policy to allow the cloudtrail.amazonaws.com principal to perform kms:GenerateDataKey* and kms:DescribeKey actions, with a condition matching the organization's ID using the aws:PrincipalOrgID key. Configure the S3 bucket policy to allow the cloudtrail.amazonaws.com principal to perform s3:GetBucketAcl and s3:PutObject actions, restricted to the organization's ID using the aws:PrincipalOrgID condition. In the AWS Organizations management account, create an organization trail configured to send logs to the centralized S3 bucket and encrypt them using the KMS CMK. Apply a Service Control Policy (SCP) to the organization's root that denies cloudtrail:DeleteTrail, cloudtrail:StopLogging, and cloudtrail:UpdateTrail actions for all member accounts.Answer
- BCreate the S3 bucket in the Log Archive account. In the AWS Organizations management account, create an organization trail configured to send logs to the centralized S3 bucket and encrypt them using the default AWS-managed key for Amazon S3 (aws/s3). Configure the S3 bucket policy to allow the cloudtrail.amazonaws.com principal to perform s3:GetBucketAcl and s3:PutObject actions, restricted to the organization's ID using the aws:PrincipalOrgID condition. Apply a Service Control Policy (SCP) to the organization's root that denies cloudtrail:DeleteTrail, cloudtrail:StopLogging, and cloudtrail:UpdateTrail actions for all member accounts.
- CCreate the S3 bucket and a KMS CMK in the Log Archive account. Configure the KMS key policy to allow the cloudtrail.amazonaws.com principal to perform kms:GenerateDataKey* and kms:DescribeKey actions. Configure the S3 bucket policy to allow the cloudtrail.amazonaws.com principal to perform s3:GetBucketAcl and s3:PutObject actions, restricted to the organization's ID using the aws:PrincipalOrgID condition. Attach a Service Control Policy (SCP) to the organization's root that explicitly allows cloudtrail:CreateTrail, s3:PutObject, and kms:GenerateDataKey* to all member accounts to authorize local log delivery. Create local trails in each member account pointing to the centralized S3 bucket.
- DCreate the S3 bucket and a KMS CMK in the Log Archive account. Configure the KMS key policy to allow the cloudtrail.amazonaws.com principal to perform kms:GenerateDataKey* and kms:DescribeKey actions. Configure the S3 bucket policy to allow the root principals (arn:aws:iam::<member_account_id>:root) of all member accounts in the organization to perform s3:PutObject and s3:GetBucketAcl actions. In the AWS Organizations management account, create an organization trail configured to send logs to the centralized S3 bucket and encrypt them using the KMS CMK. Apply a Service Control Policy (SCP) to the organization's root that denies cloudtrail:DeleteTrail, cloudtrail:StopLogging, and cloudtrail:UpdateTrail actions.