AWS CloudFormation stackSets のターゲットアカウントゲートを設定する - AWS CloudFormation

AWS CloudFormation stackSets のターゲットアカウントゲートを設定する

アカウントゲートは、AWS Lambda 関数を指定して、AWS CloudFormation StackSets でそのアカウントのスタックオペレーションが開始する前に、ターゲットアカウントが特定の要件を満たしていることを検証できるオプション機能です。アカウントゲートの一般的な例としては、ターゲットアカウントにアクティブまたは未解決の CloudWatch アラームがないことを検証することが挙げられます。StackSets は、ターゲットアカウントのスタックオペレーションを開始する度にこの関数を呼び出し、SUCCEEDED コードが返る場合のみ次に進みます。Lambda 関数より FAILED ステータスが返される場合、リクエスト済みのオペレーションは StackSets によって中断されます。Lambda 関数でアカウントゲートを設定していない場合、StackSets はこの確認をスキップし、オペレーションを継続します。

ターゲットアカウントでアカウントのゲートチェックを行うことができない場合、失敗したオペレーションは、スタックの指定した障害耐性の数または割合 (%) に含められます。障害耐性の詳細については、「スタックセットオペレーションのオプション」を参照してください。

アカウントゲート機能は、StackSets オペレーションでのみ使用できます。この機能は、StackSets 以外のその他の AWS CloudFormation オペレーションでは使用できません。

セットアップ要件

次のリストでは、アカウントゲート作成のセットアップ要件について説明します。

  • StackSets のアカウントゲート機能を使用するには、Lambda 関数名を AWSCloudFormationStackSetAccountGate にする必要があります。

  • AWSCloudFormationStackSetExecutionRole では、Lambda 関数を呼び出すためのアクセス許可が必要です。これらのアクセス許可がない場合は、StackSets によって、アカウントゲート機能の確認はスキップされ、スタックオペレーションが続行されます。

  • アカウントのゲート作成を行うには、Lambda InvokeFunction のアクセス許可をターゲットアカウントに追加する必要があります。ターゲットアカウントの信頼ポリシーには、管理者アカウントとの信頼関係が必要です。Lambda のアクセス許可 (invokefunction) を付与するポリシーステートメントの例を次に示します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "*" } ] }

Lambda のアカウントゲート機能の関数のサンプル

以下のサンプルの AWS CloudFormation テンプレートを使用して、Lambda の AWSCloudFormationStackSetAccountGate 関数を作成できます。これらのいずれかのテンプレートを使用して新しいスタックを作成する方法については、本ガイドの「スタックの作成」を参照してください。

テンプレートの場所

説明

https://s3.amazonaws.com/cloudformation-stackset-templates-us-east-1/cloudformation-stack-set-accountgate-succeeded.template

スタックを作成して、SUCCEEDED ステータスを返す Lambda アカウントゲート関数を実装します。

https://s3.amazonaws.com/cloudformation-stackset-templates-us-east-1/cloudformation-stack-set-accountgate-failed.template

スタックを作成して、FAILED ステータスを返す Lambda アカウントゲート関数を実装します。