スタックセットパラメータまたはテンプレートを更新してデプロイしようとしたときに発生するスタックセットエラーをトラブルシューティングしたいです。
簡単な説明
これらのエラーは、新しいアカウントまたは組織単位 (OU) を追加したときに、セルフマネージドスタックセットまたはサービスマネージドスタックセットで発生します。
セルフマネージドアクセス許可
エラー: スタックインスタンスが見つかりません。リージョン: us-east-1、アカウント: [123456789012]
上記のエラーは、[StackSet の詳細を編集] オプションを使用してスタックセットを更新したときに発生します。このエラーメッセージが更新操作中に表示される理由を次に示します。
- スタックインスタンスを持たないスタックセットに新しいアカウントを追加した
- スタックセットに新しい OU を追加したが、新しい OU はこのスタックセットのターゲットではない
スタックセットが、変更のデプロイ対象である、新しく追加されたデプロイターゲットのスタックインスタンスを見つけられないため、デプロイは失敗します。
サービスマネージドアクセス許可
エラー: 組織単位 ou-9gyj がスタックセットに見つかりません
スタックセットの外にある新しい OU にスタックセットをデプロイしてみることもできます。これにより、スタックセットは、スタックセット内でターゲットとなっていないアカウントに新しいスタックインスタンスをデプロイします。
[StackSet の詳細を編集] を使用してこれらの更新操作を実行すると、スタックセットの検証は失敗します。
注: このエラーは通常、ターゲットになっていない OU を選択したときに発生します。自動デプロイが有効であっても、ターゲット OU 間でアカウントが追加、削除、または移動された場合にのみトリガーされます。
解決策
セルフマネージドまたはサービスマネージドアクセス許可を使用するスタックセットに新しいアカウントまたは OU を追加するには、[スタックを StackSet に追加] オプションを使用します。
このオプションは、AWS CloudFormation コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) コマンドで使用できます。
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
CloudFormation コンソールを使用する
- AWS CloudFormation コンソールを開きます。
- スタックセットにスタックインスタンスを追加します。
AWS CloudFormation がスタックインスタンスの作成を開始します。[送信] を選択すると表示される StackSet の詳細ページで、スタックセット内のスタックインスタンスの進行状況とステータスを確認できます。完了すると、新しいスタックインスタンスが [スタックインスタンス] タブに表示されます。
AWS CLI を使用する
AWS CLI で次のコマンドを実行します。
aws cloudformation create-stack-instances \ —stack-set-name YOUR_STACK_SET_NAME \ —accounts YOUR_ACCOUNT_ID_1 YOUR_ACCOUNT_ID_2 \ —regions REGION_1 REGION_2
サービスマネージドアカウントの場合、次の AWS CLI コマンドを入力します。
aws cloudformation create-stack-instances --stack-set-name STACK_SET_NAME --accounts ACCOUNT_IDS --regions REGIONS --deployment-targets OrganizationalUnitIds=ORGANIZATIONAL_UNIT_IDS
注: YOUR_STACK_SET_NAME は、お使いのスタックセット名で置き換えます。YOUR_ACCOUNT_ID_1 および YOUR_ACCOUNT_ID_2 は、スタックインスタンスを追加する AWS アカウント ID で置き換えます。REGION_1 および REGION_2 は、スタックインスタンスをデプロイあうる AWS リージョンに置き換えます。ORGANIZATIONAL_UNIT_IDS は、スタックインスタンスを追加する AWS Organizations の OU ID に置き換えます。
完了すると、新しいインスタンスがスタックセットのデプロイターゲットとして追加されます。これにより、[StackSet の詳細を編集] オプションを使用してスタックセットを更新できます。
関連情報
スタックセットのアクセス許可モデル
create-stack-instances