Question

Difficulty: MediumCentralized Monitoring, Logging, and Auditing Solutions

An enterprise manages 6565 member accounts in an AWS Organization. The security team requires all custom application logs currently written to Amazon CloudWatch Logs groups in the member accounts to be consolidated into a single Amazon S3 bucket in a central Logging account. The centralized logs must be encrypted at rest using a Customer Managed Key (CMK) in AWS KMS. Which solution meets these requirements with the least administrative overhead?

  1. A
    In the central Logging account, create the S3 bucket and configure an S3 bucket policy that permits all member accounts to perform s3:PutObject. In each member account, create a CloudWatch Logs subscription filter that directly references the central S3 bucket ARN as the destination, using a customer managed KMS key in each member account for encryption.
  2. B
    In the central Logging account, create an Amazon Data Firehose delivery stream that writes to the S3 bucket. Configure the S3 bucket to use the default AWS-managed KMS key (aws/s3) for encryption. In the central Logging account, create a CloudWatch Logs destination that points to the Firehose stream, and configure its policy to permit the member accounts. In each member account, configure a subscription filter pointing to the destination.
  3. In the central Logging account, create an Amazon Data Firehose delivery stream that writes to the S3 bucket, and create a CloudWatch Logs destination that points to this stream. Update the destination policy to permit the logs:PutSubscriptionFilter action for the AWS Organization. Create an AWS KMS customer managed key (CMK) and configure its key policy to allow Data Firehose to perform kms:GenerateDataKey and kms:Encrypt operations. In each member account, create a CloudWatch Logs subscription filter associated with the central destination.Answer
  4. D
    In the central Logging account, create an Amazon Data Firehose delivery stream pointing to the S3 bucket. Attach a Service Control Policy (SCP) to the Root organizational unit (OU) that grants the member accounts logs:PutSubscriptionFilter permission to write directly to the central Data Firehose stream, and configure a customer managed KMS key in the central account.

Answer

Create an Amazon Data Firehose delivery stream and a CloudWatch Logs destination in the central Logging account, configuring the destination policy to allow the AWS Organization to write log data. Use a Customer Managed Key (CMK) with a key policy allowing Data Firehose to perform encryption, and set up subscription filters in the member accounts targeting the destination.
The correct solution uses a CloudWatch Logs destination in the central Logging account to receive log streams from other accounts. The destination routes the logs to an Amazon Data Firehose delivery stream, which writes them to the S3 bucket. Since the logs must be encrypted using a Customer Managed Key (CMK), the key policy must grant permissions to the Data Firehose service role to generate data keys and encrypt the data.

Step-by-Step Solution

1
Set up centralized ingestion in the central Logging account.
Create an S3 bucket for consolidated logs, a Data Firehose delivery stream, and a CloudWatch Logs destination pointing to the Firehose stream.
Centralizing log collection requires an ingestion mechanism that handles cross-account writes from member accounts.
2
Configure permissions for the central ingestion point.
Configure the CloudWatch Logs destination policy to allow the AWS Organization to call logs:PutSubscriptionFilter, and configure the Customer Managed KMS Key policy to allow the Firehose delivery stream to perform kms:GenerateDataKey and kms:Encrypt.
The central account must explicitly trust the member accounts to write logs, and the encryption key must trust the delivery service to encrypt the objects.
3
Configure the log sources in the member accounts.
Create CloudWatch Logs subscription filters in each member account pointing to the central destination ARN.
This establishes the push mechanism that automatically forwards logs from individual account log groups to the central destination.

Key Concept

Cross-account log aggregation with CloudWatch Logs Destinations, Amazon Data Firehose, and KMS Customer Managed Keys.
Rate this question