创建更改请求
当您在 AWS Systems Manager 的功能 Change Manager 中创建更改请求时,您选择的更改模板通常会执行以下操作:
-
为更改请求指定审批人员或者指定所需审批人员的数量
-
指定要用于将您的更改请求通知审批人员的 Amazon Simple Notification Service (Amazon SNS) 主题
-
指定 Amazon CloudWatch 告警,以监控更改请求的运行手册工作流
-
确定您可以从哪些自动化运行手册中进行选择,以进行所请求的更改
在某些情况下,可能会配置更改模板,以使您能指定自己的自动化运行手册以供使用,并指定应该审核和批准该请求的人员。
重要
如果您在整个组织中使用 Change Manager,我们建议始终从委托管理员账户进行更改。虽然您可以从组织中的其他账户进行更改,但这些更改不会在委派管理员账户中报告,也无法从该账户查看。
关于更改请求批准
根据更改模板中指定的要求,您在该模板中创建的更改请求可能需要获得最多五个级别的批准,然后才能为该请求执行运行手册工作流。对于每个级别,模板创建者最多可以指定五个潜在审批者。审批者并不限于单个用户。从这个意义上讲,审批者也可以是 IAM 组或 IAM 角色。对于 IAM 组和 IAM 角色,属于该组或角色的一个或多个用户可以提供批准,以获得更改请求所需的批准总数。模板创建者还可以指定数量超过更改模板所需数量的审批者。
原始审批工作流以及经过更新的审批工作流和/或审批
使用在 2023 年 1 月 23 日之前创建的更改模板,必须获得每个指定审批者的批准,更改请求才能在该级别获得批准。例如,在下图所示的批准级别设置中,指定了四个审批者。指定的审批者包括两个用户(John Stiles 和 Ana Carolina Silva),一个包含三个成员的用户组(GroupOfThree),以及一个代表十个用户的用户角色(RoleOfTen)。
![批准级别显示需要四个逐行审批者。](images/Add-approval-1.png)
要使更改请求在此级别获得批准,该更改请求必须经过 John Stiles、Ana Carolina Silva、GroupOfThree
组的一名成员和 RoleOfTen
角色的一名成员的批准。
使用在 2023 年 1 月 23 日或之后创建的更改模板,模板创建者可为每个批准级别指定所需批准的总数。这些批准可以来自已被指定为审批者的用户、组和角色的任意组合。一个更改模板对于一个级别可能只需要一次批准,但举例来说,需要指定两个单独的用户、两个组和一个角色作为潜在审批者。
例如,在下图所示的批准级别区域中,需要三次批准。模板指定的审批者包括两个用户(John Stiles 和 Ana Carolina Silva),一个包含三个成员的用户组(GroupOfThree
),以及一个代表十个用户的用户角色(RoleOfTen
)。
![批准级别显示需要三次批准和四个指定审批者。](images/Add-approval-2.png)
如果 GroupOfThree
组中的所有三个用户都批准了您的更改请求,则该更改请求即获得了该级别的批准。不必获得来自每个用户、组或角色的批准。最低批准数量可以来自潜在审批者的任意组合。
在创建更改请求后,将向已为该级别的批准通知指定的 Amazon SNS 主题的订阅用户发送通知。更改模板创建者可能已经指定了必须使用的通知主题,或者允许您指定通知主题。
在某一级别获得最低所需批准数量后,将向订阅下一级别 Amazon SNS 主题的审批者发送通知,依此类推。
无论指定了多少个批准级别和审批者,只需拒绝一次更改请求,就会阻止执行该请求的运行手册工作流。
创建更改请求(控制台)
以下过程介绍了如何使用 Systems Manager 控制台创建更改请求。
创建更改请求(控制台)
访问 https://console.aws.amazon.com/systems-manager/
,打开 AWS Systems Manager 控制台。 在导航窗格中,选择 Change Manager。
-
选择 Create request (创建请求)。
-
搜索并选择要用于此更改请求的更改模板。
-
选择下一步。
-
对于 Name (名称),请输入更改请求的名称,以便于识别其用途,例如
UpdateEC2LinuxAMI-us-east-2
。 -
对于 Runbook (运行手册),请选择您要用于进行所请求的更改的运行手册。
注意
如果选择运行手册的选项不可用,则更改模板作者已指定了必须使用哪个运行手册。
-
对于 Change request information (更改请求信息),请使用 Markdown 提供有关更改请求的其他信息,以帮助审核人员决定是批准还是拒绝更改请求。您使用的模板的作者可能已提供了说明或需要您解答的问题。
注意
Markdown 是一种标记语言,允许您为文档和文档中的各个步骤中添加维基百科式的描述。有关使用 Markdown 的更多信息,请参阅在 AWS 中使用 Markdown。
-
在 Workflow start time (工作流开始时间) 部分中,选择以下选项之一:
-
Run the operation at a scheduled time (在计划时间运行该操作) – 对于 Requested start time (请求的开始时间),请输入您建议运行此请求的运行手册工作流的日期和时间。对于 Estimated end time (估计结束时间),请输入您预计运行手册工作流完成的日期和时间。(此时间仅是您为审核人员提供的估计值。)
提示
选择 View Change Calendar (查看更改日历),以检查您指定的时间内是否存在任何阻止事件。
-
Run the operation as soon as possible after approval (批准后尽快运行操作)— 如果更改请求获得批准,则运行手册工作流将在出现可以进行更改的非限制时段时立即运行。
-
-
在 Change request approvals (更改请求批准) 部分中,执行以下操作:
-
如果出现 Approval type (批准类型) 选项,请选择以下选项之一:
-
Automatic approval (自动批准) – 您选择的更改模板将被配置为允许更改请求自动运行,而无需任何审批人员审核。继续执行步骤 11。
注意
在管理 Systems Manager 使用的 IAM policy 中指定的权限,不得限制您为使更改请求能够自动运行而提交自动批准更改请求。
-
Specify approvers (指定审批人员) – 您必须添加一个或多个用户、组或 IAM 角色,才能查看和批准此更改请求。
注意
即便在管理 Systems Manager 使用的 IAM policy 中指定的权限允许您运行自动批准更改请求,您也可以选择指定审核人员。
-
-
选择 Add approver (添加审批人员),然后从可用审核人员的列表中选择一个或多个用户、组或 AWS Identity and Access Management (IAM) 角色。
注意
可能已指定了一个或多个审批人员。这意味着已在您选择的更改模板中指定了强制审批人员。不能从请求中移除这些批准者。如果添加审批者按钮不可用,则您选择的模板不允许将其他审核者添加到请求。
有关批准更改请求的更多信息,请参阅 关于更改请求批准。
-
在 SNS topic to notify approvers (用于通知审批人员的 SNS 主题) 中,请选择以下选项之一,以便在您的账户中指定要用于向您添加到此更改请求的审批人员发送通知的 Amazon SNS 主题。
注意
如果用于指定 Amazon SNS 主题的选项不可用,则您选择的更改模板已指定了要使用的 Amazon SNS 主题。
-
Enter an SNS Amazon Resource Name (ARN) [输入 SNS Amazon 资源名称 (ARN)] – 对于 Topic ARN(主题 ARN),请输入现有 Amazon SNS 主题的 ARN。此主题可以位于您组织的任何账户中。
-
Select an existing SNS topic (选择现有 SNS 主题) – 对于 Target notification topic (设定通知主题目标),选择您的当前账户中现有 Amazon SNS 主题的 ARN。(如果您尚未在当前的 AWS 账户 和 AWS 区域 中创建任何 Amazon SNS 主题,则此选项不可用。)
注意
您选择的 Amazon SNS 主题必须被配置为指定它所发送的通知,以及接收这些通知的订阅者。其访问策略还必须向 Systems Manager 授予权限,以便 Change Manager 可以发送通知。有关信息,请参阅为 Change Manager 通知配置 Amazon SNS 主题。
-
-
选择 Add notification(添加通知)。
-
-
选择下一步。
-
对于 IAM role (IAM 角色),请选择您的当前账户中拥有所需权限、能够运行为此更改请求指定的运行手册的 IAM 角色。
此角色也称为 自动化的服务角色或代入角色。有关该角色的更多信息,请参阅 设置自动化。
-
在 Deployment location (部署位置) 部分中,选择以下选项之一:
注意
如果您仅将 Change Manager 用于单个 AWS 账户,而非用于在 AWS Organizations 中设置的组织,则不需要指定部署位置。
-
Apply change to this account (将更改应用于此账户) – 运行手册工作流仅在当前账户中运行。对于组织,这意味着委托管理员账户。
-
Apply change to multiple organizational units (OUs) (将更改应用于多个组织单元 (OU)) – 请执行以下操作:
-
对于 Accounts and organizational units (OUs) (账户和组织单位 (OU)),请输入您的组织中成员账户的 ID,格式为
123456789012
;或组织单位的 ID,格式为o-o96EXAMPLE
。 -
(可选)对于 Execution role name (执行角色名称),请输入目标账户或 OU 中拥有所需权限、能够运行为此更改请求指定的运行手册的 IAM 角色的名称。您指定的任何 OU 中的所有账户都应该为此角色使用相同的名称。
-
(可选)对于您要指定的每个额外账户或 OU,请选择 Add another target location (添加其他目标位置),并重复步骤 a 和 b。
-
对于 Target AWS 区域 (目标 Amazon Web Services Region),请选择要在其中进行更改的 Region,例如为美国东部(俄亥俄)区域选择
Ohio (us-east-2)
。 -
展开 Rate control (速率控制)。
对于 Concurrency (并发),请输入一个数字,然后从列表中选择此数字是表示可在其中同时运行运行手册工作流的账户数量还是百分比。
对于 Error threshold (错误阈值),请输入一个数字,然后从列表中选择此数字是表示在停止操作之前其中的运行手册工作流可能失败的账户数量还是百分比。
-
-
-
在 Deployment targets (部署目标) 部分中,执行以下操作:
-
选择以下操作之一:
-
Single resource (单个资源) – 仅对一个资源进行更改。例如,单个节点或单个 Amazon Machine Image (AMI),具体取决于在此更改请求的运行手册中定义的操作。
-
Multiple resources (多个资源) – 对于 Parameter (参数),请从此更改请求的运行手册内的可用参数中进行选择。此选择反映了要更新的资源的类型。
例如,如果此更改请求的运行手册为
AWS-RetartEC2Instance
,则可选择InstanceId
,然后通过从以下选项中进行选择,来定义要更新的实例:-
Specify tags (指定标签) - 输入标记要更新的所有资源时使用的键值对。
-
Choose a resource group (选择资源组) - 选择要更新的所有资源所属的资源组的名称。
-
Specify parameter values (指定参数值) - 确定 Runbook parameters (运行手册参数) 部分中要更新的资源。
-
Target all instances(将所有实例设为目标)- 对目标位置中的所有托管式节点进行更改。
-
-
-
如果您选择了 Multiple resources (多个资源),请展开 Rate control (速率控制)。
对于 Concurrency (并发),请输入一个数字,然后从列表中选择此数字是表示运行手册工作流可以同时更新的目标的数量还是百分比。
对于 Error threshold (错误阈值),请输入一个数字,然后从列表中选择此数字是表示在停止操作之前更新可能失败的目标的数量还是百分比。
-
-
如果您选择了 Specify parameter values (指定参数值),以更新上一步中的多个资源:在 Runbook parameters (运行手册参数) 部分中,指定所需输入参数的值。您必须提供的参数值基于与所选更改模板相关联的自动化运行手册的内容。
例如,如果更改模板使用
AWS-RetartEC2Instance
运行手册,则您必须为 InstanceId 参数输入一个或多个实例 ID。或者,选择 Show interactive instance picker (显示交互式实例选择器),然后逐个选择可用实例。 -
选择下一步。
-
在 Review and submit (审核并提交) 页面上,仔细检查您为此更改请求指定的资源和选项。
对于您要对其进行更改的任何部分,请选择 Edit (编辑) 按钮。
如果您对更改请求详细信息感到满意,请选择 Submit for approval (提交以供批准)。
如果已在您为请求选择的更改模板中指定了 Amazon SNS 主题,则当该请求被拒绝或批准时,系统会发送通知。如果您未收到有关该请求的通知,您可以返回到 Change Manager 以检查您的请求的状态。
创建更改请求 (AWS CLI)
您可以使用 AWS Command Line Interface (AWS CLI) 创建更改请求,方法是在 JSON 文件中指定更改请求的选项和参数,并使用 --cli-input-json
选项将其包含在您的命令中。
创建更改请求 (AWS CLI)
安装并配置 AWS Tools for PowerShell (AWS CLI)(如果尚未执行该操作)。
-
在本地计算机上使用
MyChangeRequest.json
之类的名称创建一个 JSON 文件,然后将以下内容粘贴到此文件中。将
占位符
替换为您的更改请求的值。注意
此示例 JSON 使用
AWS-HelloWorldChangeTemplate
更改模板和AWS-HelloWorld
运行手册创建更改请求。要帮助您根据自己的更改请求调整此示例,请参阅《AWS Systems Manager API Reference》中的 StartChangeRequestExecution,以了解有关所有可用参数的信息有关批准更改请求的更多信息,请参阅 关于更改请求批准。
{ "ChangeRequestName": "MyChangeRequest", "DocumentName": "AWS-HelloWorldChangeTemplate", "DocumentVersion": "$DEFAULT", "ScheduledTime": "2021-12-30T03:00:00", "ScheduledEndTime": "2021-12-30T03:05:00", "Tags": [ { "Key": "Purpose", "Value": "Testing" } ], "Parameters": { "Approver": [ "JohnDoe" ], "ApproverType": [ "IamUser" ], "ApproverSnsTopicArn": [ "arn:aws:sns:us-east-2:123456789012:MyNotificationTopic" ] }, "Runbooks": [ { "DocumentName": "AWS-HelloWorld", "DocumentVersion": "1", "MaxConcurrency": "1", "MaxErrors": "1", "Parameters": { "AutomationAssumeRole": [ "arn:aws:iam::123456789012:role/MyChangeManagerAssumeRole" ] } } ], "ChangeDetails": "### Document Name: HelloWorldChangeTemplate\n\n## What does this document do?\nThis change template demonstrates the feature set available for creating change templates for Change Manager. This template starts a Runbook workflow for the Automation document called AWS-HelloWorld.\n\n## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n* Approver: (Required) The name of the approver to send this request to.\n* ApproverType: (Required) The type of reviewer.\n * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n## Output Parameters\nThis document has no outputs \n" }
-
在创建此 JSON 文件的目录中,运行以下命令。
aws ssm start-change-request-execution --cli-input-json file://
MyChangeRequest
.json系统将返回类似于以下内容的信息。
{ "AutomationExecutionId": "b3c1357a-5756-4839-8617-2d2a4EXAMPLE" }