ある企業がAWS Organizationsに組織を持っている。同社は、AWS CloudFormation StackSetsを組織で使用して、様々なAWSデザインパターンを環境にデプロイしたいと考えている。これらのパターンは、Amazon EC2インスタンス、Elastic Load Balancing(ELB)ロードバランサー、Amazon RDSデータベース、Amazon Elastic Kubernetes Service(Amazon EKS)クラスタまたはAmazon Elastic Container Service(Amazon ECS)クラスタで構成されている。
A. Amazon Simple Notification Service (Amazon SNS)トピックを作成する。セキュリティチームのメールアドレスをSNSトピックに登録する。CI/CD パイプラインのビルドステージの前に、すべての CloudFormation テンプレートに対して aws cloudformation validate-template AWS CLI コマンドを実行するカスタム AWS Lambda 関数を作成する。問題が見つかった場合にSNSトピックに通知を発行するようにCI/CDパイプラインを構成する。
B. Amazon Simple Notification Service(AmazonSNS)トピックを作成する。セキュリティチームのメールアドレスをSNSトピックに登録する。CloudFormation Guardで各リソース構成用のカスタムルールを作成する。CI/CDパイプラインで、ビルドステージの前に、CloudFormationテンプレート上でcfn-guardコマンドを実行するDockerイメージを構成する。問題が見つかった場合にSNSトピックに通知を発行するようにCI/CDパイプラインを構成する。
C. Amazon Simple Notification Service(Amazon SNS)トピックとAmazon Simple Queue Service(Amazon SQS)キューを作成します。セキュリティチームのメールアドレスをSNSトピックに登録する。共有サービスのAWSアカウントにAmazon S3バケットを作成します。S3 バケットに新しいオブジェクトが追加されたときに、SQS キューに発行するイベント通知を含める。開発者がCloudFormationテンプレートをS3バケットに置くことを要求する。SQSキューの深さに基づいて自動的にスケールするEC2インスタンスを起動する。CloudFormation Guardを使用してテンプレートをスキャンし、問題がなければテンプレートをデプロイするようにEC2インスタンスを構成する。問題が見つかった場合にSNSトピックに通知を発行するようにCI/CDパイプラインを構成する。
D. 開発者が各AWSアカウントにデプロイできるリソースの標準セットを含む、一元化されたCloudFormationスタックセットを作成する。セキュリティ要件を満たすように各CloudFormationテンプレートを構成する。新しいリソースまたは構成については、CloudFormation テンプレートを更新し、レビューのためにテンプレートをセキュリティチームに送信する。レビューが完了したら、開発者が使用できるように新しいCloudFormationスタックをリポジトリに追加する。