AWS Control Tower がロールと連携してアカウントを作成および管理する方法 - AWS Control Tower

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

AWS Control Tower がロールと連携してアカウントを作成および管理する方法

一般に、ロールは AWSにおける Identity and Access Management (IAM) の一部です。IAM とそのロールに関する一般的な情報については AWS、『IAM ユーザーガイド』の「IAM ロール」トピックを参照してください。AWS

ロールとアカウントの作成

AWS Control Tower は、 AWS Organizationsの CreateAccount API を呼び出して、顧客のアカウントを作成します。 AWS Organizations このアカウントを作成すると、そのアカウント内にロールが作成され、AWS Control Tower は API にパラメータを渡してそのロールに名前を付けます。ロールの名前は AWSControlTowerExecution です。

AWS Control Tower は、Account Factory によって作成されたすべてのアカウントの AWSControlTowerExecution ロールを引き継ぎます。このロールを使用して、AWS Control Tower は、アカウントにベースライニングを行い、必須の (およびその他有効な) コントロールを適用します。これにより、他のロールが作成されます。これらのロールは、次に AWS Configなどの他のサービスによって使用されます。

注記

アカウントのベースライニングとは、そのリソースを設定することです (Account Factory テンプレートを含む)。これはブループリントまたはコントロールと呼ばれることもあります。ベースライニングのプロセスでは、テンプレートのデプロイの一部として、一元化されたログ記録とセキュリティ監査のロールもアカウントにセットアップします。AWS Control Tower ベースラインは、登録されているすべてのアカウントに適用するロールに含まれています。

アカウントとリソースの詳細については、「AWS Control Tower AWS アカウント の について」を参照してください。

AWS Control Tower が管理対象外の OU AWS Config とアカウントのルールを集約する方法

AWS Control Tower 管理アカウントは、 AWS Config 外部ルールの検出を支援する組織レベルのアグリゲーターを作成します。これにより、AWS Control Tower は管理対象外のアカウントにアクセスする必要がなくなります。AWS Control Tower コンソールには、 AWS Config 特定のアカウントに対して外部で作成されたルールの数が表示されます。これらの外部ルールの詳細は、[アカウントの詳細] ページの [外部の Config ルールのコンプライアンス] タブで確認できます。

アグリゲータを作成するために、AWS Control Tower は、組織について記述し、そのアカウントを一覧表示するために必要な許可を持つロールを追加します。AWSControlTowerConfigAggregatorRoleForOrganizations ロールには、AWSConfigRoleForOrganizations マネージドポリシーと、config.amazonaws.com との信頼関係が必要です。

ロールにアタッチされた IAM ポリシー (JSON アーティファクト) は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:ListAccounts", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization" ], "Resource": "*" } ] }

AWSControlTowerConfigAggregatorRoleForOrganizations の信頼関係は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }

この機能を管理アカウントにデプロイするには、AWSControlTowerServiceRolePolicyAWSControlTowerAdminアグリゲーターの作成時にロールが使用する管理ポリシーに以下のアクセス権限を追加します。 AWS Config

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "config:PutConfigurationAggregator", "config:DeleteConfigurationAggregator", "iam:PassRole" ], "Resource": [ "arn:aws:iam:::role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations", "arn:aws:config:::config-aggregator/" ] }, { "Effect": "Allow", "Action": "organizations:EnableAWSServiceAccess", "Resource": "*" } ] }

新しいリソース、AWSControlTowerConfigAggregatorRoleForOrganizations および aws-controltower-ConfigAggregatorForOrganizations が作成されました。

準備ができたら、アカウントを個別に登録するか、OU を登録してグループとしてアカウントを登録することができます。アカウントを登録したときに、でルールを作成すると AWS Config、AWS Control Tower が新しいルールを検出します。アグリゲータには外部ルールの数が表示され、 AWS Config アカウントの各外部ルールの詳細を確認できるコンソールへのリンクが表示されます。 AWS Config コンソールと AWS Control Tower コンソールの情報を使用して、アカウントで適切なコントロールが有効になっているかどうかを判断します。

AWS Control Tower 監査アカウントのプログラムによるロールおよび信頼関係

監査アカウントにサインインし、他のアカウントをプログラムで確認するロールを引き受けることができます。監査アカウントでは、他のアカウントに手動でログインすることはできません。

監査アカウントでは、 AWS Lambda 関数にのみ付与されるいくつかのロールを使用して、他のアカウントにプログラムでアクセスできます。セキュリティ上の理由から、これらのロールには他のロールとの信頼関係があります。つまり、ロールを利用できる条件が厳密に定義されていることを意味します。

AWS Control Tower スタックセット StackSet-AWSControlTowerBP-BASELINE-ROLES は、監査アカウントに次のプログラム専用のクロスアカウントロールを作成します。

  • aws-controltower-AdministratorExecutionRole

  • AWS-コントロールタワー-AuditAdministratorRole

  • AWS-コントロールタワー-ReadOnlyExecutionRole

  • AWS-コントロールタワー-AuditReadOnlyRole

ReadOnlyExecutionRole: このロールは、監査アカウントが、組織全体の Amazon S3 バケット内のオブジェクトを読み取ることを許可する点に注意してください (メタデータアクセスのみを許可する SecurityAudit ポリシーとは対照的です)。

aws-コントロールタワー-: AdministratorExecutionRole
  • 管理者権限があります

  • コンソールから引き受けることはできません

  • 監査アカウントのロール (aws-controltower-AuditAdministratorRole) でのみ引き受けることができます

次のアーティファクトは、aws-controltower-AdministratorExecutionRole の信頼関係を示しています。プレースホルダー番号 012345678901 は、監査アカウントの Audit_acct_ID 番号に置き換えられます。

{   "Version": "2012-10-17",   "Statement": [     {       "Effect": "Allow",       "Principal": {         "AWS": "arn:aws:iam::012345678901:role/aws-controltower-AuditAdministratorRole"       },       "Action": "sts:AssumeRole"     }   ] }
aws-コントロールタワー-AuditAdministratorRole:
  • AWS Lambda サービスでのみ想定可能

  • 文字列 log で始まる名前を持つ Simple Storage Service (Amazon S3) オブジェクトに対して読み取り (Get) 操作および書き込み (Put) 操作を実行する許可があります

アタッチされるポリシー:

1. AWSLambdaExecute— 管理ポリシー AWS

2. AssumeRole-aws-controltower-AuditAdministratorRole — インラインポリシー — AWS Control Tower によって作成されました。アーティファクトは次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/aws-controltower-AdministratorExecutionRole" ], "Effect": "Allow" } ] }

次のアーティファクトは、aws-controltower-AuditAdministratorRole の信頼関係を示しています。

{   "Version": "2012-10-17",   "Statement": [     {       "Effect": "Allow",       "Principal": {         "Service": "lambda.amazonaws.com"       },       "Action": "sts:AssumeRole"     }   ] }
aws-コントロールタワー ReadOnlyExecutionRole-:
  • コンソールから引き受けることはできません

  • 監査アカウントの別のロール (AuditReadOnlyRole) でのみ引き受けることができます

次のアーティファクトは、aws-controltower-ReadOnlyExecutionRole の信頼関係を示しています。プレースホルダー番号 012345678901 は、監査アカウントの Audit_acct_ID 番号に置き換えられます。

{   "Version": "2012-10-17",   "Statement": [     {       "Effect": "Allow",       "Principal": {         "AWS": "arn:aws:iam::012345678901:role/aws-controltower-AuditReadOnlyRole "       },       "Action": "sts:AssumeRole"     }   ] }
aws-コントロールタワー-AuditReadOnlyRole:
  • AWS Lambda サービスでのみ想定可能

  • 文字列 log で始まる名前を持つ Simple Storage Service (Amazon S3) オブジェクトに対して読み取り (Get) 操作および書き込み (Put) 操作を実行する許可があります

アタッチされるポリシー:

1. AWSLambdaExecute— 管理ポリシー AWS

2. AssumeRole-aws-controltower-AuditReadOnlyRole — インラインポリシー — AWS Control Tower によって作成されました。アーティファクトは次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/aws-controltower-ReadOnlyExecutionRole" ], "Effect": "Allow" } ] }

次のアーティファクトは、aws-controltower-AuditAdministratorRole の信頼関係を示しています。

{   "Version": "2012-10-17",   "Statement": [     {       "Effect": "Allow",       "Principal": {         "Service": "lambda.amazonaws.com"       },       "Action": "sts:AssumeRole"     }   ] }

IAM ロールを使用した自動アカウントプロビジョニング

Account Factory アカウントをより自動化された方法で設定するには、AWSControlTowerExecutionメンバーアカウントでの役割を引き受ける AWS Control Tower 管理アカウントで Lambda 関数を作成できます。次に、管理アカウントが、ロールを使用して、各メンバーアカウントで必要な設定手順を実行します。

ただし、Lambda 関数を使用してアカウントをプロビジョニングする場合、この作業を実行するアイデンティティには AWSServiceCatalogEndUserFullAccess に加え、次の IAM アクセス許可ポリシーが必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSControlTowerAccountFactoryAccess", "Effect": "Allow", "Action": [ "sso:GetProfile", "sso:CreateProfile", "sso:UpdateProfile", "sso:AssociateProfile", "sso:CreateApplicationInstance", "sso:GetSSOStatus", "sso:GetTrust", "sso:CreateTrust", "sso:UpdateTrust", "sso:GetPeregrineStatus", "sso:GetApplicationInstance", "sso:ListDirectoryAssociations", "sso:ListPermissionSets", "sso:GetPermissionSet", "sso:ProvisionApplicationInstanceForAWSAccount", "sso:ProvisionApplicationProfileForAWSAccountInstance", "sso:ProvisionSAMLProvider", "sso:ListProfileAssociations", "sso-directory:ListMembersInGroup", "sso-directory:AddMemberToGroup", "sso-directory:SearchGroups", "sso-directory:SearchGroupsWithGroupName", "sso-directory:SearchUsers", "sso-directory:CreateUser", "sso-directory:DescribeGroups", "sso-directory:DescribeDirectory", "sso-directory:GetUserPoolInfo", "controltower:CreateManagedAccount", "controltower:DescribeManagedAccount", "controltower:DeregisterManagedAccount", "s3:GetObject", "organizations:describeOrganization", "sso:DescribeRegisteredRegions" ], "Resource": "*" } ] }

アクセス許可sso:GetPeregrineStatussso:ProvisionApplicationInstanceForAWSAccountsso:ProvisionApplicationProfileForAWSAccountInstancesso:ProvisionSAMLProvideは AWS Control Tower Account Factory が AWS IAM Identity Center とやり取りするために必要です。