Account Factory Customization (AFC) を使用したアカウントのカスタマイズ - AWS Control Tower

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Account Factory Customization (AFC) を使用したアカウントのカスタマイズ

AWS Control Tower では、AWS Control Tower AWS アカウント コンソールからリソースをプロビジョニングするときに、新しいものと既存のものをカスタマイズできます。AWS Control Tower では、Account Factory Customization を設定すると、今後のプロビジョニングに備えてこのプロセスが自動化されるため、パイプラインを維持する必要がなくなります。カスタマイズされたアカウントは、リソースがプロビジョニングされるとすぐに使用できます。

カスタマイズしたアカウントは、アカウントファクトリ、 AWS CloudFormation テンプレート、または Terraform を使用してプロビジョニングされます。カスタマイズされたアカウントのブループリントとして機能するテンプレートは、ユーザーが定義します。ブループリントでは、アカウントのプロビジョニング時に必要な特定のリソースと設定が記述されています。 AWS パートナーが作成、管理する定義済みのブループリントも利用できます。パートナーが管理するブループリントの詳細については、「AWS Service Catalog 入門ライブラリ」を参照してください。

注記

AWS Control Tower にはプロアクティブコントロールが含まれており、AWS Control Tower で AWS CloudFormation リソースを監視します。オプションで、これらのコントロールをランディングゾーンでアクティブ化できます。プロアクティブコントロールを適用すると、アカウントにデプロイするリソースが組織のポリシーと手順に準拠しているかどうかがチェックされます。プロアクティブコントロールについて詳しくは、「プロアクティブコントロール」を参照してください。

お客様のアカウントブループリントは AWS アカウント、当社の目的ではハブアカウントと呼ばれる場所に保管されます。ブループリントは Service Catalog 製品の形式で保存されます。他の Service Catalog 製品と区別するために、この製品をブループリントと呼びます。Service Catalog 製品の作成方法の詳細については、「AWS Service Catalog 管理者ガイド」の「製品の作成」を参照してください。

既存のアカウントにブループリントを適用

AWS Control Tower コンソールのアカウント更新ステップに従って、カスタマイズされたブループリントを既存のアカウントに適用することもできます。詳細については、「コンソールでアカウントを更新する」を参照してください。

開始する前に

カスタマイズされたアカウントの作成を AWS Control Tower の Account Factory を使用して開始する前に、AWS Control Tower のランディングゾーン環境をデプロイし、新しく作成したアカウントを配置する組織単位 (OU) を AWS Control Tower に登録しておく必要があります。

AFC との連携の詳細については、「Automate account customization using Account Factory Customization in AWS Control Tower」(AWS Control Tower の Account Factory Customization を使ったアカウントのカスタマイズの自動化) を参照してください。

カスタマイズの準備
  • ハブアカウントとして機能する新しいアカウントを作成することも、 AWS アカウント既存のアカウントを使用することもできます。AWS Control Tower 管理アカウントをブループリントハブアカウントとしては使用しないことを強くお勧めします。

  • AWS Control Tower に登録してカスタマイズする予定がある場合は、AWS Control Tower に登録する他のアカウントと同様に、 AWS アカウント まずそれらのアカウントにロールを追加する必要があります。AWSControlTowerExecution

  • マーケットプレイスサブスクリプション要件を持つパートナーのブループリントを使用する予定の場合は、これらのブループリントを AWS Control Tower 管理アカウントから設定した後に Account Factory Customization ブループリントとしてデプロイする必要があります。

注記

AWS Control Tower アカウントごとに 1 つのブループリントをデプロイできます。

Account Factory Customizations (AFC) に関する考慮事項

  • AFC は 1 AWS Service Catalog つのブループリント製品のみを使用したカスタマイズをサポートしています。

  • AWS Service Catalog ブループリント製品はハブアカウントで、AWS Control Tower のlanding zone ホームリージョンと同じリージョンで作成する必要があります。

  • AWSControlTowerBlueprintAccess IAM ロールは、適切な名前、権限、信頼ポリシーを使用して作成する必要があります。

  • AWS Control Tower は、ホームリージョンのみにデプロイするか、またはAWS Control Tower によって管理されているすべてのリージョンにデプロイするかという 2 つのブループリントのデプロイオプションをサポートしています。リージョンの選択はできません。

  • メンバーアカウントのブループリントを更新する場合、ブループリントハブアカウント ID AWS Service Catalog とブループリント製品は変更できません。

  • AWS Control Tower では、1 回のブループリント更新操作で既存のブループリントの削除と新しいブループリントの追加を同時に行うことはできません。ブループリントを削除してから、別の操作で新しいブループリントを追加できます。

  • AWS Control Tower は、作成または登録するアカウントがカスタマイズされているか、またはカスタマイズされていないかに基づいて動作を変更します。カスタマイズされたアカウントをブループリントを使用して作成または登録しない場合、AWS Control Tower は AWS Control Tower 管理アカウントで (Service Catalog を通じて)、Account Factory によってプロビジョニングされた製品を作成します。ブループリントを使用してアカウントを作成または登録する際にカスタマイズを指定する場合は、AWS Control Tower は AWS Control Tower 管理アカウントで、Account Factory でプロビジョニングされた製品を作成しません。

ブループリントエラーが発生した場合

ブループリントの適用中のエラー

新しいアカウント、または AWS Control Tower に登録している既存のアカウントのいずれの場合も、ブループリントをアカウントに適用する過程でエラーが発生した場合の復旧手順は同じです。アカウントは存在したままですが、カスタマイズされず、AWS Control Tower に登録されていません。続行するには、次の手順に従って、AWS Control Tower にアカウントを登録し、登録時にブループリントを追加します。

AWSControlTowerBlueprintAccess ロール作成中のエラーと回避策

AWS Control Tower アカウントから AWSControlTowerBlueprintAccess ロールを作成する場合、AWSControlTowerExecution ロールを使用してプリンシパルとしてサインインする必要があります。他のユーザーとしてサインインすると、次のアーティファクトに示すように、CreateRole オペレーションは SCP によって妨げられます。

{ "Condition": { "ArnNotLike": { "aws:PrincipalArn": [ "arn:aws:iam::*:role/AWSControlTowerExecution", "arn:aws:iam::*:role/stacksets-exec-*" ] } }, "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/aws-controltower-*", "arn:aws:iam::*:role/*AWSControlTower*", "arn:aws:iam::*:role/stacksets-exec-*" ], "Effect": "Deny", "Sid": "GRIAMROLEPOLICY" }

以下の回避策を使用できます。

  • (最も推奨)AWSControlTowerExecution ロールを継承して、AWSControlTowerBlueprintAccess ロールを作成します。この回避策を選択した場合、リソースの意図しない変更を防ぐために、ロールの作成後すぐに AWSControlTowerExecution ロールからサインアウトしてください。

  • AWS Control Tower に登録されていないため、この SCP の対象ではないアカウントにサインインします。

  • この SCP を一時的に編集して、オペレーションを許可します。

  • (あまり推奨しない) AWS Control Tower 管理アカウントをハブアカウントとして使用すると、SCP の対象になりません。

以下に基づいて AFC ブループリント用のポリシードキュメントをカスタマイズします。 CloudFormation

アカウントファクトリを通じてブループリントを有効にすると、AWS Control Tower AWS CloudFormation StackSet はユーザーに代わってブループリントを作成するように指示します。 AWS CloudFormation AWS CloudFormation にスタックを作成するには、管理対象アカウントへのアクセスが必要です。 StackSet AWS CloudFormation ロールを通じて管理対象アカウントの管理者権限をすでに取得していますが、AWSControlTowerExecutionこのロールは引き継がれません。 AWS CloudFormation

ブループリントを有効にする一環として、AWS Control Tower はメンバーアカウントにロールを作成します。これにより、 AWS CloudFormation StackSet 管理タスクが完了することが想定されます。Account Factory を使用してカスタマイズ済みブループリントを有効にする最も簡単な方法は、allow-all ポリシーを使用することです。このようなポリシーはすべてのブループリントテンプレートと互換性があるためです。

ただし、 AWS CloudFormation ベストプラクティスでは、ターゲットアカウントの権限を制限する必要があることが推奨されています。カスタマイズされたポリシーを提供して、AWS Control Tower AWS CloudFormation が作成したロールに適用して使用することができます。例えば、ブループリントによって something-important という名前の SSM パラメータが作成された場合、次のポリシーを指定できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFormationActionsOnStacks", "Effect": "Allow", "Action": "cloudformation:*", "Resource": "arn:aws:cloudformation:*:*:stack/*" }, { "Sid": "AllowSsmParameterActions", "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameters" ], "Resource": "arn:*:ssm:*:*:parameter/something-important" } ] }

AllowCloudFormationActionsOnStacksこのステートメントはすべての AFC カスタムポリシーに必須です。 AWS CloudFormation このロールを使用してスタックインスタンスを作成するため、 AWS CloudFormation スタックでアクションを実行する権限が必要です。AllowSsmParameterActions セクションは、有効になっているテンプレートに固有です。

権限に関する問題の解決

制限付きポリシーを使用してブループリントを有効にするとき、ブループリントを有効にする権限が不足していることがあります。このような問題を解決するには、ポリシードキュメントを改訂し、修正されたポリシーを使用するようにメンバーアカウントのブループリント設定を更新します。ポリシーがブループリントを有効にするのに十分であることを確認するには、 AWS CloudFormation 権限が付与されていることと、そのロールを使用して直接スタックを作成できることを確認します。

Terraform ベースの Service Catalog 製品の作成に必要な追加のアクセス許可

AFC 用の Terraform AWS Service Catalog 設定ファイルを使用して外部製品を作成する場合、 AWS Service Catalog テンプレートで定義されたリソースを作成するために必要な権限に加えて、特定の権限を AFC カスタム IAM ポリシーに追加する必要があります。デフォルトのフル Admin ポリシーを選択した場合は、これらの追加のアクセス許可を追加する必要はありません。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "resource-groups:CreateGroup", "resource-groups:ListGroupResources", "resource-groups:DeleteGroup", "resource-groups:Tag" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "tag:GetResources", "tag:GetTagKeys", "tag:GetTagValues", "tag:TagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow" }, { "Action": "s3:GetObject", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/servicecatalog:provisioning": "true" } } } ] }

外部製品タイプを使用して Terraform 製品を作成する方法の詳細については AWS Service Catalog、『Service Catalog 管理者ガイド』の「ステップ 5: 起動ロールの作成」を参照してください。