逐步解說:依服務目錄在 AWS Control Tower 中自動化帳戶佈建 APIs - AWS Control Tower

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

逐步解說:依服務目錄在 AWS Control Tower 中自動化帳戶佈建 APIs

AWS Control Tower 已與數個其他服務整合 AWS ,例如 AWS Service Catalog。您可以使用 APIs 在 AWS Control Tower 中建立和佈建成員帳戶。

影片說明如何透過呼叫 ,以自動批次方式佈建帳戶 AWS Service Catalog APIs。對於佈建,您將ProvisionProductAPI從 AWS 命令列界面 (CLI) 呼叫 ,並指定包含要設定之每個帳戶參數JSON的檔案。影片說明安裝和使用 AWS Cloud9 開發環境來執行此工作。如果您使用 AWS Cloudshell 而非 AWS Cloud9,CLI則命令會相同。

注意

您也可以針對每個帳戶呼叫 UpdateProvisionedProductAPI AWS Service Catalog 的 ,以調整此方法來自動化帳戶更新。您可以編寫指令碼來逐一更新帳戶。

作為完全不同的自動化方法,如果您熟悉 Terraform,則可以向 AWS Control Tower Account Factory for Terraform (AFT) 佈建帳戶

自動化管理角色範例

以下是範例範本,您可以用來協助在 管理帳戶中設定自動化管理角色。您可以在您的管理帳戶中設定此角色,以便其在目標帳戶中使用管理員存取權執行自動化。

AWSTemplateFormatVersion: 2010-09-09 Description: Configure the SampleAutoAdminRole Resources: AdministrationRole: Type: AWS::IAM::Role Properties: RoleName: SampleAutoAdminRole AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: cloudformation.amazonaws.com Action: - sts:AssumeRole Path: / Policies: - PolicyName: AssumeSampleAutoAdminRole PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - sts:AssumeRole Resource: - "arn:aws:iam::*:role/SampleAutomationExecutionRole"

自動化執行角色範例

以下是範例範本,可用來協助您設定自動化執行角色。您可以在目標帳戶中設定此角色。

AWSTemplateFormatVersion: "2010-09-09" Description: "Create automation execution role for creating Sample Additional Role." Parameters: AdminAccountId: Type: "String" Description: "Account ID for the administrator account (typically management, security or shared services)." AdminRoleName: Type: "String" Description: "Role name for automation administrator access." Default: "SampleAutomationAdministrationRole" ExecutionRoleName: Type: "String" Description: "Role name for automation execution." Default: "SampleAutomationExecutionRole" SessionDurationInSecs: Type: "Number" Description: "Maximum session duration in seconds." Default: 14400 Resources: # This needs to run after AdminRoleName exists. ExecutionRole: Type: "AWS::IAM::Role" Properties: RoleName: !Ref ExecutionRoleName MaxSessionDuration: !Ref SessionDurationInSecs AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: AWS: - !Sub "arn:aws:iam::${AdminAccountId}:role/${AdminRoleName}" Action: - "sts:AssumeRole" Path: "/" ManagedPolicyArns: - "arn:aws:iam::aws:policy/AdministratorAccess"

設定這些角色之後,您可以呼叫 AWS Service Catalog APIs來執行自動化任務。這些CLI命令會在影片中提供。

Service Catalog 的範例佈建輸入 API

如果您ProvisionProductAPI使用 API佈建 AWS Control Tower 帳戶,以下是您可以提供給 Service Catalog 的輸入範例:

{ pathId: "lpv2-7n2o3nudljh4e", productId: "prod-y422ydgjge2rs", provisionedProductName: "Example product 1", provisioningArtifactId: "pa-2mmz36cfpj2p4", provisioningParameters: [ { key: "AccountEmail", value: "abc@amazon.com" }, { key: "AccountName", value: "ABC" }, { key: "ManagedOrganizationalUnit", value: "Custom (ou-xfe5-a8hb8ml8)" }, { key: "SSOUserEmail", value: "abc@amazon.com" }, { key: "SSOUserFirstName", value: "John" }, { key: "SSOUserLastName", value: "Smith" } ], provisionToken: "c3c795a1-9824-4fb2-a4c2-4b1841be4068" }

如需詳細資訊,請參閱 API Service Catalog 的參考

注意

請注意, 值的輸入字串格式ManagedOrganizationalUnit已從 變更為 OU_NAME OU_NAME (OU_ID)。以下影片並未提及此變更。

影片演練

此影片 (6:58) 說明如何自動化 AWS Control Tower 中的帳戶部署。若要獲得更佳的觀賞效果,請選取影片右下角的圖示,將影片放大至全螢幕。並提供字幕。