本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
逐步解說:依服務目錄在 AWS Control Tower 中自動化帳戶佈建 APIs
AWS Control Tower 已與數個其他服務整合 AWS ,例如 AWS Service Catalog。您可以使用 APIs 在 AWS Control Tower 中建立和佈建成員帳戶。
影片說明如何透過呼叫 ,以自動批次方式佈建帳戶 AWS Service Catalog APIs。對於佈建,您將ProvisionProduct
API從 AWS 命令列界面 (CLI) 呼叫 ,並指定包含要設定之每個帳戶參數JSON的檔案。影片說明安裝和使用 AWS Cloud9 開發環境來執行此工作。如果您使用 AWS Cloudshell 而非 AWS Cloud9,CLI則命令會相同。
注意
您也可以針對每個帳戶呼叫 UpdateProvisionedProduct
API 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
如果您ProvisionProduct
API使用 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 中的帳戶部署。若要獲得更佳的觀賞效果,請選取影片右下角的圖示,將影片放大至全螢幕。並提供字幕。