建立變更請求 - AWS Systems Manager

建立變更請求

當您在 Change Manager (AWS Systems Manager 的功能) 建立變更請求時,您選取的變更範本通常會執行下列動作:

  • 指定變更請求的核准者,或指定需要多少次核准

  • 指定 Amazon Simple Notification Service (Amazon SNS) 主題,以便通知核准者有關變更請求的資訊

  • 指定 Amazon CloudWatch 警示,以監控變更請求的 Runbook 工作流程

  • 識別您可以選擇哪些自動化 Runbook 來進行請求的變更

在某些情況下,可能會設定變更範本,因此您可以指定要使用的自動化 Runbook,並指定應該檢閱和核准請求的人員。

重要

如果您在整個組織中使用 Change Manager,我們建議始終從委派管理員帳戶進行變更。雖然您可以從組織中的其他帳戶進行變更,但這些變更將不會在受委派管理員帳戶中報告,也不可在其中檢視。

關於變更請求核准

視變更範本中指定的要求而定,您建立的變更請求最多可以設定五個層級的核准,獲得這些層級的核准後,請求的執行手冊工作流程才能進行。對於每個層級,範本建立者最多可以指定五個潛在核准者。核准者不限於單一使用者。從這個意義上講,核准者也可以是 IAM 群組或 IAM 角色。對於 IAM 群組和 IAM 角色,屬於該群組或角色的一或多名使用者可以提供核准,以獲得變更請求所需的核准總數。範本建立者指定的核准者數量可以比變更範本要求的更多。

原始的核准工作流程和/或更新的核准工作流程

使用 2023 年 1 月 23 日之前建立的變更範本時,必須獲得每個指定核准者的核准,變更請求才能在該層級獲得核准。例如,在以下影像中顯示的核准層級設定中,指定了四個核准者。指定的核准者包括兩名使用者 (John Stiles 和 Ana Carolina Silva)、一個包含三名成員的使用者群組 (GrouPofThree),以及代表十名使用者的使用者角色 (RoleOfTen)。

核准層級顯示需要四個必要核准者 (逐行)。

變更請求若要在此層級獲得核准,必須獲得 John Stiles、Ana Carolina Silva、GroupOfThree 群組成員之一,以及 RoleOfTen 角色的一名成員的核准。

如果使用在 2023 年 1 月 23 日當日或之後建立的變更範本,範本建立者可以針對每個核准層級指定所需的核准總數。這些核准可來自指定為核准者的任何使用者、群組和角色組合。變更範本可以設定在一個層級只需要一個核准,但可以指定兩名單獨的使用者、兩個群組和一個角色作為潛在核准者。

例如,在下圖所示的核准層級區域中,需要三個核准。範本指定的核准者包括兩名使用者 (John Stiles 和 Ana Carolina Silva)、一個包含三名成員的使用者群組 (GroupOfThree),以及代表十名使用者的使用者角色 (RoleOfTen)。

核准層級顯示需要三個核准以及指定了四名指定核准者。

如果 GroupOfThree 群組中的三名使用者都核准了您的變更請求,則意味著變更請求在該層級已獲得核准。不需要獲得每個使用者、群組或角色的核准。最小數量的核准可以來自任何潛在核准者的組合。

建立變更請求後,系統會將通知傳送給指定為接收該層級核准通知的 Amazon SNS 主題的訂閱用戶。變更範本建立者可能已指定必須使用的通知主題或允許您進行指定。

在某個層級獲得的核准數量達到最低數量之後,系統會將通知傳送給下一層級核准通知的 Amazon SNS 主題的訂閱用戶 (核准者),依此類推。

無論指定多少核准層級和核准者,只要變更請求遭到一個拒絕,就能阻止該請求的執行手冊工作流程發生。

建立變更請求 (主控台)

下列處理程序說明如何使用 Systems Manager 主控台來建立變更請求。

若要建立變更請求 (主控台)
  1. 開啟位於 https://console.aws.amazon.com/systems-manager/ 的 AWS Systems Manager 主控台。

  2. 在導覽窗格中,選擇 Change Manager

  3. 選擇 Create request (建立請求)。

  4. 搜尋並選取您要用於此變更請求的變更範本。

  5. 選擇 Next (下一步)。

  6. 對於 Name (名稱),輸入可輕鬆識別用途的變更請求名稱,例如 UpdateEC2LinuxAMI-us-east-2

  7. 對於 Runbook (Runbook),選取您要用來進行請求的變更的 Runbook。

    注意

    如果選取 Runbook 的選項不可用,則變更範本作者已指定必須使用的 Runbook。

  8. 對於 Change request information (變更請求資訊),請使用 Markdown 提供有關變更請求的其他資訊,以協助檢閱者決定是否要核准或拒絕變更請求。您使用的範本作者可能已提供指示或供您回答的問題。

    注意

    Markdown 是一種標示語言,可讓您新增維基樣式的描述至文件內,以及在文件內新增個別步驟。如需使用 Markdown 的相關資訊,請參閱在 AWS 中使用 Markdown

  9. Workflow start time (工作流程開始時間) 區段,選擇以下其中一項:

    • 在排定的時間執行作業 – 對於 Requested start time (請求的開始時間),輸入您提議執行此請求之 Runbook 工作流程的日期和時間。對於 Estimated end time (預測結束時間),輸入您預期完成 Runbook 工作流程的日期和時間。(該時間只是您提供給檢閱者的預測值)。

      提示

      選擇 View Change Calendar (檢視變更行事曆),檢查您指定的時間是否有任何封鎖事件。

    • 在核准之後,僅可執行操作 – 如果已核准變更請求,Runbook 工作流程會在可進行變更的非限制時期內立即執行。

  10. Change request approvals (變更請求核准) 區段,執行下列動作:

    1. 如果出現 Approval type (核准類型),請選擇以下其中一個選項:

      • Automatic approval (自動核准) – 您選取的變更範本設定為允許自動執行變更請求,而不需經任何核准者檢閱。繼續步驟 11。

        注意

        控管您使用 Systems Manager 的 IAM 政策中指定的許可,不得限制您提交自動核准變更請求,以便自動執行。

      • Specify approvers (指定核准者) – 您必須新增一個或多個使用者、群組或 IAM 角色,才能檢閱並核准此變更請求。

        注意

        即使控管 Systems Manager 使用的 IAM 政策中指定的許可允許您執行自動核准變更請求,您也可以選擇指定檢閱者。

    2. 選擇 Add approver (新增核准者),然後從可用的檢閱者清單中選取一個或多個使用者、群組或 AWS Identity and Access Management (IAM) 角色。

      注意

      可能已經指定一個或多個核准者。這表示已在您選取的變更範本中指定強制核准者。無法從請求中移除這些核准者。如果無法使用新增核准者按鈕,則表示您選擇的範本不允許將其他檢閱者新增至請求。

      如需有關變更請求核准的詳細資訊,請參閱關於變更請求核准

    3. 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 主題

    4. 選擇 Add notification (新增通知)。

  11. 選擇 Next (下一步)。

  12. 對於 IAM role (IAM 角色),在您的目前帳戶中,選取 IAM 角色,而該角色具有執行為此變更請求指定的 Runbook 所需的許可。

    此角色也稱為自動化的服務角色,或擔任角色。如需有關此角色的詳細資訊,請參閱 設定自動化

  13. Deployment location (部署位置) 區段中,選擇下列其中一個選項:

    注意

    如果您僅搭配使用 Change Manager 與單一 AWS 帳戶,而不是使用組織在 AWS Organizations 設定,您不需要指定部署位置。

    • 將變更套用至此帳戶 – Runbook 工作流程僅在目前帳戶中執行。對於組織而言,這表示委派管理員帳戶。

    • Apply change to multiple organizational units (OUs) (將變更套用至多個組織單位 (OU)) – 執行下列動作:

      1. 對於 Accounts and organizational units (OUs) (帳戶和組織單位 (OU)),輸入組織中成員帳戶的 ID (格式為 123456789012),或組織單位的 ID (格式為 o-o96EXAMPLE)。

      2. (選用) Execution role name (執行角色名稱),在目標帳戶或具有執行為此變更要求指定的 Runbook 所需許可的 OU 中,輸入 IAM 角色的名稱。您指定之任何 OU 中的所有帳戶都應該對此角色使用相同的名稱。

      3. (選用) 為要指定的每個其他帳戶或 OU 選擇 Add another target location (新增另一個目標位置),然後重複步驟 a 和 b。

      4. 對於 Target AWS 區域 (目標 AWS 區域 區域),選取要進行變更的區域,例如美國東部 (俄亥俄) 區域的 Ohio (us-east-2)

      5. 展開 Rate control (速率控制)。

        對於 Concurrency (並行),輸入數字,然後從清單中選取這是否代表 Runbook 工作流程可同時執行的帳戶數目或百分比。

        對於 Error threshold (錯誤閾值),輸入數字,然後從清單中選取這是否代表 Runbook 工作流程在停止操作之前可能會失敗的帳戶數目或百分比。

  14. Deployment targets (部署目標) 區段中,執行下列動作:

    1. 選擇下列其中一項:

      • Single resource (單一資源) – 只針對一個資源進行變更。例如,單一節點或單一 Amazon Machine Image (AMI),視此變更請求的 Runbook 中定義的操作而定。

      • Multiple resources (多個資源) – 對於 Parameter (參數),從 Runbook 中為此變更請求選取可用參數。此選項會反映正在更新的資源類型。

        例如,如果此變更請求的 Runbook 是 AWS-RetartEC2Instance,您可能選擇 InstanceId,然後從下列選項中進行選取,定義要更新的執行個體:

        • Specify tags (指定標籤) – 輸入鍵值對,其要更新的所有資源都應使用此鍵值對標記。

        • Choose a resource group (選擇資源群組) – 選擇要更新之所有資源所屬的資源群組名稱。

        • Specify parameter values (指定參數值) – 識別要在 Runbook parameters (Runbook 參數) 區段中更新的資源。

        • Target all instances (將所有執行個體設為目標) – 對目標位置中的所有受管節點進行變更。

    2. 如果您選擇 Multiple resources (多個資源),展開 Rate control (速率控制)。

      對於 Concurrency (並行),輸入數字,然後從清單中選取這是否代表 Runbook 工作流程可同時更新的目標數目或百分比。

      對於 Error threshold (錯誤閾值),輸入數字,然後從清單中選取這是否代表更新在停止操作之前可能會失敗的目標數目或百分比。

  15. 如果您選擇 Specify parameter values (指定參數值) 來更新上一個步驟中的多個資源:在 Runbook parameters (Runbook 參數) 區段中,指定所需輸入參數的值。您必須提供的參數值是以與您選擇的變更範本關聯的 Automation Runbook 內容為基礎。

    例如,如果變更範本使用 AWS-RetartEC2Instance Runbook,則必須為 InstanceId 參數輸入一個或多個執行個體 ID。或者,選擇 Show interactive instance picker (顯示互動式執行個體選擇器),然後逐一選取可用的執行個體。

  16. 選擇 Next (下一步)。

  17. 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)
  1. 如果您尚未安裝並設定 AWS CLI 或 AWS Tools for PowerShell,請進行相應的操作。

    如需相關資訊,請參閱安裝或更新 AWS CLI 的最新版本安裝 AWS Tools for PowerShell

  2. 在您的本機電腦建立名稱如 MyChangeRequest.json 的 JSON 檔案,然後將以下內容貼至其中。

    預留位置取代為變更請求的值。

    注意

    此範例 JSON 會使用 AWS-HelloWorldChangeTemplate 變更範本和 AWS-HelloWorld Runbook 建立變更請求。若要針對自己的變更請求調整此範例,請參閱《AWS Systems Manager API 參考》中的 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" }
  3. 在您建立 JSON 檔案的目錄裡執行下列命令。

    aws ssm start-change-request-execution --cli-input-json file://MyChangeRequest.json

    系統會傳回相關資訊,如下所示。

    {
        "AutomationExecutionId": "b3c1357a-5756-4839-8617-2d2a4EXAMPLE"
    }