为 Change Manager 配置角色和权限
默认情况下,Change Manager 没有对您的资源执行操作的权限。您必须使用 Amazon Identity and Access Management (IAM) 服务角色或担任角色授予访问权限。该角色可以让 Change Manager 代表您安全地运行在批准的更改请求中指定的运行手册工作流。该角色向 Amazon Security Token Service (Amazon STS) AssumeRole 授予对 Change Manager 的信任。
通过向角色提供这些权限以代表企业中的用户行事,用户本身不需要被授予该权限数组。权限允许的操作仅限于批准的操作。
当您的账户或企业中的用户创建更改请求时,他们可以选择此担任角色来执行更改操作。
您可以为 Change Manager 创建新的担任角色,也可以利用所需的权限更新现有角色。
如果您需要为 Change Manager 创建一个服务角色,请完成以下任务。
任务
任务 1:为 Change Manager 创建担任角色策略
使用以下过程创建将附加到您的 Change Manager 担任角色的策略。
为 Change Manager 创建担任角色策略
访问:https://console.aws.amazon.com/iam/
,打开 IAM 控制台。 -
在导航窗格中选择 Policies,然后选择 Create Policy。
-
在 Create policy(创建策略)页面上,选择 JSON 选项卡,将默认内容替换为以下内容,您将在以下步骤中针对自己的 Change Manager 操作对其进行修改。
注意
如果要创建用于单个 Amazon Web Services 账户 的策略,而不是具有多个账户和 Amazon Web Services 区域 的企业,则可以省略第一个数据块。对于使用 Change Manager 的单个账户,不需要
iam:PassRole
权限。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
delegated-admin-account-id
:role/AWS-SystemsManager-job-function
AdministrationRole", "Condition": { "StringEquals": { "iam:PassedToService": "ssm.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeDocument", "ssm:GetDocument", "ssm:StartChangeRequestExecution" ], "Resource": [ "arn:aws:ssm:region
:account-id
:automation-definition/template-name
:$DEFAULT", "arn:aws:ssm:region
::document/template-name
" ] }, { "Effect": "Allow", "Action": [ "ssm:ListOpsItemEvents", "ssm:GetOpsItem", "ssm:ListDocuments", "ssm:DescribeOpsItems" ], "Resource": "*" } ] } -
对于
iam:PassRole
操作,更新Resource
值以包括为您的企业定义的所有工作职能的 ARN,您希望对这些工作职能授予启动运行手册工作流的权限。 -
将
region
、account-id
、template-name
、delegated-admin-account-id
和job-function
占位符替换为 Change Manager 操作的值。 -
对于第二个
Resource
语句,修改列表以包括要授予权限的所有更改模板。或者,指定"Resource": "*"
为企业中的所有更改模板授予权限。 -
选择下一步:标签。
-
(可选)添加一个或多个标签键值对,以组织、跟踪或控制此策略的访问权限。
-
选择下一步:审核。
-
在 Review policy(查看策略)页面上的 Name(名称)框中输入一个名称,例如
MyChangeManagerAssumeRole
,然后输入可选描述。 -
选择 Create policy(创建策略),然后继续转至 任务 2:为 Change Manager 创建担任角色。
任务 2:为 Change Manager 创建担任角色
使用以下过程为 Change Manager 创建 Change Manager 担任角色(一种服务角色类型)。
为 Change Manager 创建担任角色
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择角色,然后选择创建角色。
-
对于 Select trusted entity(选择可信实体),完成以下选择:
-
对于可信实体类型,选择 Amazon 服务。
-
对于其他 Amazon Web Services 服务 的应用场景,选择 Systems Manager
-
选择 Systems Manager。
-
-
选择下一步。
-
在 Attached permissions policy(附加的权限策略)页面上,搜索您在 任务 1:为 Change Manager 创建担任角色策略 中创建的担任角色策略,比如
MyChangeManagerAssumeRole
。 -
选中担任角色策略名称旁边的复选框,然后选择 Next: Tags(下一步:标签)。
-
对于Role name(角色名称),请输入新实例配置文件的名称,例如
MyChangeManagerAssumeRole
。 -
(可选)对于 Description(描述),更新该实例角色的描述。
-
(可选)添加一个或多个标签键值对,以组织、跟踪或控制此角色的访问权限。
-
选择下一步:审核。
-
(可选)对于 Tags(标签),添加一个或多个标签键值对,以组织、跟踪或控制此角色的访问,然后选择 Create role(创建角色)。系统将让您返回到 角色 页面。
-
选择 Create role (创建角色)。系统将让您返回到 角色 页面。
-
在角色页面中,选择刚刚创建的角色以打开摘要页面。
任务 3:将 iam:PassRole
策略附加到其他角色
使用以下过程将 iam:PassRole
策略附加到 IAM 实例配置文件或 IAM 服务角色。(Systems Manager 服务使用 IAM 实例配置文件与 EC2 实例进行通信。对于混合和多云环境中的非 EC2 托管式节点,改用 IAM 服务角色。)
通过附加 iam:PassRole
策略,Change Manager 服务可以在运行运行手册工作流时将担任角色权限传递给其他服务或 Systems Manager 工具。
将 iam:PassRole
策略附加到 IAM 实例配置文件或服务角色
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色。
-
搜索您创建的 Change Manager 担任角色(如
MyChangeManagerAssumeRole
),然后选择其名称。 -
在担任角色的 Summary(摘要)页面中,选择 Permissions(权限)选项卡。
-
选择 Add permissions, Create inline policy(添加权限、创建内联策略)。
-
在 Create policy (创建策略) 页面上,选择 Visual editor (可视化编辑器) 选项卡。
-
选择服务,然后选择 IAM。
-
在 Filter actions(筛选操作)文本框中,输入
PassRole
,然后选择 PassRole 选项。 -
展开 Resources(资源)。确保已选择特定,然后选择添加 ARN。
-
在 Specify ARN for role(为角色指定 ARN)字段中,输入要向其传递担任角色权限的 IAM 实例配置文件角色或 IAM 服务角色的 ARN。系统会自动填充账户和具有路径的角色名称字段。
-
选择 Add (添加)。
-
选择查看策略。
-
对于 Name(名称),输入一个名称来标识此策略,然后选择 Create policy(创建策略)。
任务 4:向担任角色添加内联策略以调用其他 Amazon Web Services 服务
当更改请求使用 Change Manager 代入角色调用其他 Amazon Web Services 服务时,必须为代入角色配置调用这些服务的权限。此要求适用于可能在更改请求中使用的所有 Amazon 自动化运行手册(AWS-* 运行手册),例如 AWS-ConfigureS3BucketLogging
、AWS-CreateDynamoDBBackup
和 AWS-RestartEC2Instance
运行手册。对于您创建的任何自定义运行手册,如果这些文档使用调用其他服务的操作来调用其他 Amazon Web Services 服务,则此要求同样适用。例如,如果您使用 aws:executeAwsApi
、aws:CreateStack
或 aws:copyImage
操作,则您必须配置具有权限的服务角色来调用这些服务。您可以通过将 IAM 内联策略添加到角色以向其他 Amazon Web Services 服务授予权限。
将内联策略添加到代入角色以调用其他 Amazon Web Services 服务(IAM 控制台)
登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色。
-
在列表中,选择要更新的担任角色的名称,例如
MyChangeManagerAssumeRole
。 -
选择 Permissions(权限)选项卡。
-
选择 Add permissions, Create inline policy(添加权限、创建内联策略)。
-
选择 JSON 选项卡。
-
输入您希望调用的 Amazon Web Services 服务的 JSON 策略文档。以下是两个示例 JSON 策略文档。
Simple Storage Service (Amazon S3)
PutObject
和GetObject
示例{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Amazon EC2
CreateSnapshot
和DescribeSnapShots
示例{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:DescribeSnapshots", "Resource":"*" } ] }
有关 IAM policy 语言的详细信息,请参阅《IAM 用户指南》中的 IAM JSON 策略参考。
-
完成后,选择查看策略。策略验证程序将报告任何语法错误。
-
对于 Name(名称),输入一个名称来标识您创建的策略。查看策略摘要以查看您的策略授予的权限。然后,选择创建策略以保存您的工作。
-
创建内联策略后,它会自动嵌入您的角色。
任务 5:配置用户对 Change Manager 的访问权限
如果已为您的用户、组或角色分配了管理员权限,则您有权访问 Change Manager。如果您没有管理员权限,则管理员必须为您的用户、组或角色分配 AmazonSSMFullAccess
托管策略或提供类似权限的策略。
使用以下过程配置用户,以使用 Change Manager。您选择的用户将拥有配置并运行 Change Manager 的权限。
根据您在组织中使用的身份应用程序,您可以选择三个可用选项中的任何一个来配置用户访问权限。在配置用户访问权限时,请分配或添加以下内容:
-
分配提供访问 Systems Manager 权限的
AmazonSSMFullAccess
策略或类似策略。 -
分配
iam:PassRole
策略。 -
为您在 任务 2:为 Change Manager 创建担任角色 末尾复制的 Change Manager 担任角色添加 ARN。
要提供访问权限,请为您的用户、组或角色添加权限:
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中针对第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
您已完成了为 Change Manager 配置所需的角色。您现在可以在 Change Manager 操作中使用 Change Manager 担任角色 ARN。