AWS CloudFormation StackSets と AWS Organizations
AWS CloudFormation StackSets を使用すると、1 回のオペレーションで複数の AWS アカウント と AWS リージョン を対象に、スタックを作成、更新、削除できます。StackSets と AWS Organizations の統合により、サービスマネージド型のアクセス許可が付与されたスタックセットの作成が可能になります。これには、各メンバーアカウントの、関連するアクセス許可を持つサービスにリンクされたロールが使用されます。これにより、組織内のメンバーアカウントにスタックインスタンスをデプロイできるようになります。StackSets はユーザーに代わって各メンバーアカウントに IAM ロールを作成するため、必要な AWS Identity and Access Management ロールをユーザーが作成する必要はありません。また、将来組織に追加されるアカウントへの自動デプロイを有効にすることもできます。
StackSets と Organizations 間の信頼されたアクセスが有効になっていると、管理アカウントには、組織のスタックセットを作成および管理するためのアクセス許可が与えられます。管理アカウントは、委任管理者として最大 5 つのメンバーアカウントを登録できます。信頼されたアクセスが有効になっていると、組織のスタックセットを作成および管理するためのアクセス許可が委任管理者にも付与されます。サービスマネージド型のアクセス許可を持つスタックセットは、委任された管理者によって作成されたスタックセットを含む、管理アカウントに作成されます。
委任された管理者は、組織内のアカウントにデプロイするための完全なアクセス許可を持っています。管理アカウントでは、特定の OU にデプロイしたり、特定のスタックセットの操作を実行したりする、委任された管理者のアクセス許可を制限することはできません。
StackSets と Organizations の統合について詳しくは、AWS CloudFormation ユーザーガイドの AWS CloudFormation StackSets の操作を参照してください。
AWS CloudFormation StackSets と AWS Organizations の統合には、次の情報を参考にしてください。
統合を有効にする際に作成されるサービスにリンクされたロール
信頼されたアクセスを有効にすると、以下のサービスにリンクされたロールが組織の管理アカウントに自動的に作成されます。このロールにより、AWS CloudFormation StackSets がサポートされているオペレーションを組織内のアカウントで実行できるようになります。
このロールを削除または変更できるのは、AWS CloudFormation StackSets と Organizations 間の信頼されたアクセスを無効にした場合か、組織から当該のメンバーアカウントを削除した場合だけです。
-
管理アカウント:
AWSServiceRoleForCloudFormationStackSetsOrgAdmin
サービスにリンクされたロール AWSServiceRoleForCloudFormationStackSetsOrgMember
を組織内のメンバーアカウントに作成するには、始めに管理アカウントにスタックセットを作成する必要があります。これにより、スタックセットインスタンスが作成され、メンバーアカウントにロールが作成されます。
-
メンバーアカウント:
AWSServiceRoleForCloudFormationStackSetsOrgMember
スタックセットの作成の詳細については、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation StackSet の操作」を参照してください。
サービスにリンクされたロールで使用されるサービスプリンシパル
前のセクションで説明したサービスにリンクされたロールを引き受けることができるのは、ロールに定義された信頼関係によって承認されたサービスプリンシパルだけです。AWS CloudFormation StackSets によって使用されるサービスにリンクされたロールには、次のサービスプリンシパルへのアクセス許可が付与されます。
-
管理アカウント:
stacksets.cloudformation.amazonaws.com
このロールを変更または削除できるのは、StackSets と Organizations 間の信頼されたアクセスを無効にした場合だけです。
-
メンバーアカウント:
member.org.stacksets.cloudformation.amazonaws.com
アカウントのこのロールを変更または削除できるのは、 StackSets と Organizations 間の信頼されたアクセスが無効になっている場合か、アカウントがターゲット組織または組織単位 (OU) から削除されている場合だけです。
AWS CloudFormation StackSets との信頼されたアクセスの有効化
信頼されたアクセスの有効化に必要な権限に関しては、信頼されたアクセスを有効にするために必要なアクセス許可 を参照してください。
Organizations 管理アカウントの管理者のみが、他の AWS との信頼されたアクセスを有効にするアクセス許可を持っています。AWS CloudFormation コンソールまたは Organizations コンソールを使用して、信頼されたアクセスを有効にできます。
AWS CloudFormation StackSets だけで、信頼されたアクセスを有効にできます。
AWS CloudFormation StackSets コンソールを使用して信頼されたアクセスを有効にするには、AWS CloudFormation ユーザーガイドの AWS Organizations で信頼されたアクセスを有効にします。を参照してください。
AWS CloudFormation StackSets との信頼されたアクセスの無効化
信頼されたアクセスの無効化に必要なアクセス権限に関しては、信頼されたアクセスを無効にするために必要なアクセス許可 を参照してください。
Organizations 管理アカウントの管理者のみが、他の AWS サービスとの信頼されたアクセスを無効にするアクセス許可を持っています。信頼されたアクセスの無効化には、Organizations コンソールを使用する必要があります。StackSets の使用中に Organizations との信頼されたアクセスを無効にすると、以前に作成されたすべてのスタックインスタンスが保持されます。ただし、サービスにリンクされたロールのアクセス許可を使用してデプロイされたスタックセットは、Organizations によって管理されるアカウントへのデプロイを実行できなくなります。
AWS CloudFormation コンソールまたは Organizations コンソールを使用して、信頼されたアクセスを無効にできます。
信頼できるアクセスをプログラムで (AWS CLI や API などを使用して) 無効にする場合は、アクセス許可が削除されることに注意してください。AWS CloudFormation コンソールで信頼されたアクセスを無効にすることをお勧めします。
信頼されたアクセスの無効化には、AWS Organizations コンソールを使用する方法、Organizations の AWS CLI コマンドを実行する方法、いずれかの AWS SDK で Organizations API オペレーションを呼び出す方法があります。
AWS CloudFormation StackSets 用の委任管理者アカウントの有効化
メンバーアカウントを組織の委任管理者として指定すると、そのアカウントのユーザーおよびロールは、AWS CloudFormation StackSets の管理アクションを実行できるようになります。通常この管理アクションは、組織の管理アカウントのユーザーとロールだけが実行できるものです。この手法は、組織の管理から AWS CloudFormation StackSets の管理を分離するのに有効です。
メンバーアカウントを組織の AWS CloudFormation StackSets の委任管理者として指定する手順については、AWS CloudFormation ユーザーガイドの委任された管理者の登録を参照してください。