AWS Control Tower 如何與角色搭配建立和管理帳戶 - AWS Control Tower

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Control Tower 如何與角色搭配建立和管理帳戶

一般而言,角色是中身分識別與存取管理 (IAM) 的一部分 AWS。有關 IAM 和角色的一般資訊 AWS,請參閱 IAM 使用者指南中的AWS IAM 角色主題

角色和帳戶建立

AWS Control Tower 透過呼叫的 CreateAccount API 來建立客戶的帳戶 AWS Organizations。 AWS Organizations 建立此帳戶時,會在該帳戶內建立角色,AWS Control Tower 會透過將參數傳入 API 來命名該角色。角色的名稱是 AWSControlTowerExecution

AWS Control Tower 接管 Account Factory 建立的所有帳戶的AWSControlTowerExecution角色。AWS Control Tower 使用此角色時,會對帳戶進行基準化,並套用強制性 (以及任何其他已啟用) 控制,進而建立其他角色。這些角色依次被其他服務使用,例如 AWS Config。

注意

基準帳戶是設定其資源,其中包括 Account Factory 範本 (有時稱為藍圖) 和控制項。基準處理程序也會在帳戶上設定集中式記錄和安全性稽核角色,做為部署範本的一部分。AWS Control Tower 基準包含在您套用至每個註冊帳戶的角色中。

如需帳號和資源的詳細資訊,請參閱關於 AWS 帳戶 Con AWS trol Tower

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" } ] } }

若要在管理帳戶中部署此功能,受管理的策略會新增下列權限AWSControlTowerServiceRolePolicy,這些權限會在建立 AWS Config 彙總器時由AWSControlTowerAdmin角色使用:

{ "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": "*" } ] }

已建立的新資源:AWSControlTowerConfigAggregatorRoleForOrganizationsaws-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-控制塔-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 服務假設

  • 有權在名稱以字串日誌開頭的 Amazon S3 物件上執行讀取 (取得) 和寫入 (放入) 操作

附加政策:

1. AWSLambdaExecute— AWS 受管理策略

2. AssumeRole-aws-Control 塔 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 服務假設

  • 有權在名稱以字串日誌開頭的 Amazon S3 物件上執行讀取 (取得) 和寫入 (放入) 操作

附加政策:

1. AWSLambdaExecute— AWS 受管理策略

2. AssumeRole-aws-Control 塔 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 帳戶,您可以在 AWS Control Tower Tall 管理帳戶中建立 Lambda 函數,該帳戶擔任該成員帳戶中的AWSControlTowerExecution角色。然後,管理帳戶會使用角色在每個成員帳戶中執行所需的設定步驟。

如果您使用 Lambda 函數佈建帳戶,則執行此工作的身分識別除了還必須具有下列 IAM 許可政策AWSServiceCatalogEndUserFullAccess

{ "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": "*" } ] }

AWS Control Tower Account Factory 需要許sso:GetPeregrineStatussso:ProvisionApplicationProfileForAWSAccountInstance、和sso:ProvisionSAMLProvide才能與 AWS IAM 身分中心互動。sso:ProvisionApplicationInstanceForAWSAccount