逐步解說:依 Service Catalog API 在 AWS Control Tower 中自動佈建帳戶 - AWS Control Tower

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

逐步解說:依 Service Catalog API 在 AWS Control Tower 中自動佈建帳戶

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

影片說明如何透過呼叫 AWS Service Catalog API,以自動化的批次方式佈建帳戶。對於佈建,您將從 AWS 命令列介面 (CLI) 呼叫 ProvisionProductAPI,並指定一個 JSON 檔案,其中包含您要設定的每個帳戶的參數。影片說明如何安裝並使用 AWS Cloud9 開發環境來執行這項工作。如果您使用雲 AWS 殼而不是 Cloud9,則 CLI 命令將是相同的 AWS 。

注意

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

這是一種完全不同的自動化方法,如果您熟悉 Terraform,可以使用適用於 Terraform (AFT) 的 AWS Control Tower Account Factory 佈建帳戶。

範例自動化管理角色

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

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 API 來執行自動化工作。CLI 命令在視頻中給出。

Service Catalog API 的範例佈建輸入

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

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

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

注意

請注意,值的輸入字串格式ManagedOrganizationalUnit已從變更OU_NAMEOU_NAME (OU_ID)。接下來的視頻沒有提及此更改。

影片演練

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