A financial services firm utilizes AWS Organizations to manage a multi-account environment. A central tooling account hosts an AWS CodePipeline that deploys infrastructure updates using AWS CloudFormation StackSets to multiple member accounts. Security audits have highlighted two major issues:
1. When the pipeline runs, member accounts fail to retrieve the CloudFormation template artifacts from the central Amazon S3 bucket in the tooling account because the bucket is encrypted using an AWS Key Management Service (AWS KMS) key.
2. Developers are making manual modifications (such as changing security group rules and EC2 instance types) directly in the member accounts, resulting in configuration drift that is not captured by the central templates.
Which of the following actions should a Solutions Architect implement to resolve the cross-account pipeline failures and establish automated drift detection? (Select TWO.)
- Encrypt the central S3 bucket using an AWS KMS Customer Managed Key (CMK) in the tooling account, and configure its key policy to grant the StackSet execution role in the member accounts permissions for the kms:Decrypt and kms:GenerateDataKey actions, while updating the S3 bucket policy to allow cross-account read access.Cevap
- Deploy the cloudformation-stack-drift-detection-check AWS Config rule across all member accounts using an AWS Organizations conformance pack, and configure an Amazon EventBridge rule in each member account to detect non-compliant events and trigger an AWS Systems Manager Automation runbook that runs drift detection.Cevap
- CEncrypt the central S3 bucket using the default AWS-managed KMS key for Amazon S3 (aws/s3) in the tooling account, and configure the bucket policy to grant read access to the IAM execution roles in the member accounts.
- DAttach a Service Control Policy (SCP) to the member accounts' Organizational Unit (OU) that grants kms:Decrypt and kms:GenerateDataKey permissions on the tooling account's KMS key to all principals in the organization.
- EConfigure the StackSets deployment options to automatically override local resource states during pipeline execution by using the CloudFormation console to manually import drifted resources back into each individual stack before running the deployment.