本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
演练:通过 Service Catalog 在 AWS Control Tower 中自动配置账户 APIs
AWS Control Tower 与其他几项 AWS 服务集成,例如 AWS Service Catalog。您可以使用在 AWS C APIs ontrol Tower 中创建和配置您的成员账户。
该视频向您展示了如何通过调用,以自动批量方式配置帐户 AWS Service Catalog APIs。要进行配置,您需要从 AWS 命令行界面 (CLI) 调用 ProvisionProduct
API,然后指定一个 JSON 文件,其中包含您要设置的每个账户的参数。该视频演示如何安装和使用 AWS Cloud9 开发环境来执行此项工作。如果你使用 Clouds AWS hell 而不是 Cloud AWS 9,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 的预置输入示例
以下是您在使用 Service Catalog ProvisionProduct
API 预置 AWS Control Tower 账户时可以向该 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" }
有关更多信息,请参阅 API reference for Service Catalog。
注意
请注意,ManagedOrganizationalUnit
值的输入字符串的格式已从 OU_NAME
变为 OU_NAME (OU_ID)
。接下来的视频并未提及这一变化。
视频演练
此视频(6:58)介绍如何在 AWS Control Tower 中自动执行账户部署。为了更好地观看,请选择视频右下角的图标以将其放大为全屏。可以使用字幕。