开始使用 Quick Setup - AWS Systems Manager

开始使用 Quick Setup

使用本主题中的信息帮助您准备使用 Quick Setup。

注册 Quick Setup 的 IAM 角色和权限

Quick Setup 推出了新的控制台体验和新的 API。现在,您可以使用控制台、AWS CLI、AWS CloudFormation 和 SDK 与此 API 进行交互。如果您选择使用新体验,则会使用新的 API 重新创建现有配置。根据您账户中的现有配置数量,此过程可能需要几分钟。

要使用新的 Quick Setup 控制台,您必须拥有以下操作的权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm-quicksetup:*", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStacks", "cloudformation:DescribeStacks", "cloudformation:DescribeStackResources", "cloudformation:ListStackSetOperations", "cloudformation:ListStackInstances", "cloudformation:DescribeStackSet", "cloudformation:ListStackSets", "cloudformation:DescribeStackInstance", "cloudformation:DescribeOrganizationsAccess", "cloudformation:ActivateOrganizationsAccess", "cloudformation:GetTemplate", "cloudformation:ListStackSetOperationResults", "cloudformation:DescribeStackEvents", "ec2:DescribeInstances", "ssm:DescribeAutomationExecutions", "ssm:GetAutomationExecution", "ssm:ListAssociations", "ssm:DescribeAssociation", "ssm:GetDocument", "ssm:ListDocuments", "ssm:DescribeDocument", "ssm:ListResourceDataSync", "ssm:DescribePatchBaselines", "ssm:GetPatchBaseline", "ssm:DescribeMaintenanceWindows", "ssm:DescribeMaintenanceWindowTasks", "ssm:GetOpsSummary", "organizations:DeregisterDelegatedAdministrator", "organizations:DescribeAccount", "organizations:DescribeOrganization", "organizations:ListDelegatedAdministrators", "organizations:ListRoots", "organizations:ListParents", "organizations:ListOrganizationalUnitsForParent", "organizations:DescribeOrganizationalUnit", "organizations:ListAWSServiceAccessForOrganization", "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:ListBucket", "resource-groups:ListGroups", "iam:ListRoles", "iam:ListRolePolicies", "iam:GetRole", "iam:CreatePolicy", "organizations:RegisterDelegatedAdministrator", "organizations:EnableAWSServiceAccess", "cloudformation:TagResource" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:RollbackStack", "cloudformation:CreateStack", "cloudformation:UpdateStack", "cloudformation:DeleteStack" ], "Resource": [ "arn:aws:cloudformation:*:*:stack/StackSet-AWS-QuickSetup-*", "arn:aws:cloudformation:*:*:stack/AWS-QuickSetup-*", "arn:aws:cloudformation:*:*:type/resource/*", "arn:aws:cloudformation:*:*:stack/StackSet-SSMQuickSetup" ] }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:DeleteStackSet", "cloudformation:DeleteStackInstances", "cloudformation:CreateStackInstances", "cloudformation:StopStackSetOperation" ], "Resource": [ "arn:aws:cloudformation:*:*:stackset/AWS-QuickSetup-*", "arn:aws:cloudformation:*:*:stackset/SSMQuickSetup", "arn:aws:cloudformation:*:*:type/resource/*", "arn:aws:cloudformation:*:*:stackset-target/AWS-QuickSetup-*:*" ] }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:GetRolePolicy", "iam:PassRole", "iam:PutRolePolicy" ], "Resource": [ "arn:aws:iam::*:role/AWS-QuickSetup-*", "arn:aws:iam::*:role/service-role/AWS-QuickSetup-*" ] }, { "Effect": "Allow", "Action": [ "ssm:DeleteAssociation", "ssm:CreateAssociation", "ssm:StartAssociationsOnce" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": "arn:aws:ssm:*:*:automation-definition/AWS-EnableExplorer:*" }, { "Effect": "Allow", "Action": [ "ssm:GetOpsSummary", "ssm:CreateResourceDataSync", "ssm:UpdateResourceDataSync" ], "Resource": "arn:aws:ssm:*:*:resource-data-sync/AWS-QuickSetup-*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Condition": { "StringEquals": { "iam:AWSServiceName": [ "accountdiscovery.ssm.amazonaws.com", "ssm.amazonaws.com", "ssm-quicksetup.amazonaws.com", "stacksets.cloudformation.amazonaws.com" ] } }, "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::*:role/aws-service-role/stacksets.cloudformation.amazonaws.com/AWSServiceRoleForCloudFormationStackSetsOrgAdmin" } ] }

要将用户限制为只读权限,请仅允许对 Quick Setup API 执行 ssm-quicksetup:List*ssm-quicksetup:Get* 操作。

在引导期间,Quick Setup 将代表您创建以下 AWS Identity and Access Management(IAM)角色:

  • AWS-QuickSetup-LocalExecutionRole – 授予 AWS CloudFormation 使用任何模板(不包括补丁策略模板)和创建必要资源的权限。

  • AWS-QuickSetup-LocalAdministrationRole - 授予 AWS CloudFormation 担任 AWS-QuickSetup-LocalExecutionRole 的权限。

  • AWS-QuickSetup-PatchPolicy-LocalExecutionRole – 授予 AWS CloudFormation 使用补丁策略模板和创建必要资源的权限。

  • AWS-QuickSetup-PatchPolicy-LocalAdministrationRole - 授予 AWS CloudFormation 担任 AWS-QuickSetup-PatchPolicy-LocalExecutionRole 的权限。

如果您正在注册管理账户(用于在 AWS Organizations 中创建组织的账户),Quick Setup 还会代表您创建以下角色:

  • AWS-QuickSetup-SSM-RoleForEnablingExplorer - 授予 AWS-EnableExplorer 自动化 Runbook 权限。使用 AWS-EnableExplorer 运行手册,可将 Systems Manager 的功能 Explorer 配置为显示多个 AWS 账户 和 AWS 区域 的信息。

  • AWSServiceRoleForAmazonSSM - 服务链接角色,用于授予对由 Systems Manager 管理和使用的 AWS 资源的访问权限。

  • AWSServiceRoleForAmazonSSM_AccountDiscovery – 服务相关角色,用于向 Systems Manager 授予在同步数据时调用 AWS 服务来查找 AWS 账户信息的权限。有关更多信息,请参阅 关于 AWSServiceRoleForAmazonSSM_AccountDiscovery 角色

在引导管理账户时,Quick Setup 将在 AWS Organizations 和 CloudFormation 之间启用受信任的访问权限,来部署整个组织的 Quick Setup 配置。要启用受信任访问权限,您的管理账户必须具有管理员权限。在完成引导后,便不再需要管理员权限。有关更多信息,请参阅启用 Organizations 受信任的访问权限

有关 AWS Organizations 账户类型的更多信息,请参阅《AWS Organizations 用户指南》中的 AWS Organizations 术语和概念

注意

Quick Setup 使用 AWS CloudFormation StackSets 通过 AWS 账户 和区域来部署您的配置。如果目标账户数量乘以区域数超过 10000,则配置部署失败。我们建议检查您的用例并创建使用较少目标的配置,以适应组织的增长。堆栈实例不会部署到组织的管理账户。有关更多信息,请参阅创建具有服务托管权限的堆栈集时的注意事项

手动进行开户,以便采用编程方式使用 Quick Setup API

如果您使用控制台操作 Quick Setup,则该服务会为您处理开户步骤。如果您计划使用 SDK 或 AWS CLI 操作 Quick Setup API,则仍然可以使用控制台为您完成开户步骤,这样您就不必手动执行这些步骤。但是,有些客户需要在不与控制台交互的情况下以编程方式完成 Quick Setup 的开户步骤。如果此方法适合您的使用案例,您必须完成以下步骤。所有这些步骤都必须通过您的 AWS Organizations 管理账户完成。

若要完成 Quick Setup 的手动开户
  1. 使用 Organizations 激活 AWS CloudFormation 的可信访问权限。这允许管理账户权限以为您的组织创建和管理 StackSets。您可以使用 AWS CloudFormation 的 ActivateOrganizationsAccess API 操作来完成此步骤。有关更多信息,请参阅 AWS CloudFormation API 参考中的ActivateOrganizationsAccess

  2. 使用 Organizations 启用 Systems Manager 的集成。这允许 Systems Manager 在您组织的所有账户中创建服务相关角色。这也允许 Systems Manager 在您的组织和账户内代表您执行操作。您可以使用 AWS Organizations 的 EnableAWSServiceAccess API 操作来完成此步骤。Systems Manager 的服务主体是 ssm.amazonaws.com。有关更多信息,请参阅 AWS Organizations API 参考中的 EnableAWSServiceAccess

  3. 为 Explorer 创建所需的 IAM 角色。这就允许 Quick Setup 针对您的配置创建控制面板,以便您查看部署和关联状态。创建 IAM 角色并附加 AWSSystemsManagerEnableExplorerExecutionPolicy 托管策略。修改该角色的信任策略,使其符合以下内容。将每个账户 ID 替换为您的信息。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account ID" }, "ArnLike": { "aws:SourceArn": "arn:*:ssm:*:account ID:automation-execution/*" } } } ] }
  4. 更新 Explorer 的 Quick Setup 服务设置。您可以使用 Quick Setup 的 UpdateServiceSettings API 操作来完成此步骤。针对 ExplorerEnablingRoleArn 请求参数指定您在上一步中创建的 IAM 角色的 ARN。有关更多信息,请参阅 Quick Setup API 参考中的 UpdateServiceSettings

  5. 创建必需的 IAM 角色以供 AWS CloudFormation StackSets 使用。您必须创建执行角色和管理角色。

    1. 创建执行角色。执行角色应至少附加一个 AWSQuickSetupDeploymentRolePolicyAWSQuickSetupPatchPolicyDeploymentRolePolicy 托管策略。如果您只是在创建补丁策略配置,则可以使用 AWSQuickSetupPatchPolicyDeploymentRolePolicy 托管策略。所有其他配置都使用 AWSQuickSetupDeploymentRolePolicy 策略。修改该角色的信任策略,使其符合以下内容。使用您的信息替换每个账户 ID管理角色名称

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account ID:role/administration role name" }, "Action": "sts:AssumeRole" } ] }
    2. 创建管理角色。权限策略必须符合以下内容。使用您的信息替换每个账户 ID执行角色名称

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": "arn:*:iam::account ID:role/execution role name", "Effect": "Allow" } ] }

      修改该角色的信任策略,使其符合以下内容。将每个账户 ID 替换为您的信息。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account ID" }, "StringLike": { "aws:SourceArn": "arn:aws:cloudformation:*:account ID:stackset/AWS-QuickSetup-*" } } } ] }