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

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

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

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

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

注記

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

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

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

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

[開始する前に]

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

の操作の詳細についてはAFC、AWS「Control Tower の Account Factory Customization を使用してアカウントのカスタマイズを自動化する」を参照してください。

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

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

  • Marketplace サブスクリプション要件があるパートナーブループリントを使用する場合は、パートナーブループリントを Account Factory カスタマイズブループリントとしてデプロイする前に、AWSControl Tower 管理アカウントからこれらを設定する必要があります。

注記

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

Account Factory のカスタマイズに関する考慮事項 (AFC)

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

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

  • AWSControlTowerBlueprintAccess IAM ロールは、適切な名前、アクセス許可、および信頼ポリシーで作成する必要があります。

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

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

  • AWS Control Tower は、既存のブループリントの削除と、単一のブループリント更新オペレーションでの新しいブループリントの追加をサポートしていません。ブループリントを削除してから、別の操作で新しいブループリントを追加できます。

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

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

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

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

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

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

{ "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

Account Factory を通じてブループリントを有効にすると、AWSControl Tower は StackSet ユーザーに代わって を作成する AWS CloudFormation ように に指示します。 では、 でスタックを作成 AWS CloudFormation するために、マネージドアカウントへのアクセス AWS CloudFormation が必要です StackSet。には、 AWSControlTowerExecutionロールを通じてマネージドアカウントの管理者権限が AWS CloudFormation 既にありますが、このロールは によって引き受けることはできません AWS CloudFormation。

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

ただし、ベストプラクティスでは、ターゲットアカウントの AWS CloudFormation のアクセス許可を制限する必要があることを提案しています。Control AWS Tower が作成するロールに適用して AWS CloudFormation 使用するためにカスタマイズされたポリシーを指定できます。例えば、設計図で何か重要な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 製品の作成に必要な追加のアクセス許可

の Terraform 設定ファイルを使用して AWS Service Catalog External 製品を作成する場合AFC、 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" } } } ] }

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