利用主控台設定維護時段許可 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

利用主控台設定維護時段許可

下列程序說明如何使用 AWS Systems Manager 主控台來建立維護時段所需的角色與許可。

任務 1:為自訂維護時段服務角色制定政策

您可以 JSON 格式透過以下政策來制定用於維護時段角色的政策。您可以將此政策附加至稍後在 任務 2:為維護時段建立自訂服務角色 (主控台) 建立的角色。

重要

根據維護時段執行的任務及任務類型,您可能不需要此政策中的所有許可,而您可能需要包含其他的許可。

為自訂維護時段服務角色制定策略
  1. https://console.aws.amazon.com/iam/ 中開啟 IAM 主控台。

  2. 在導覽窗格中,選擇 Policies (政策),然後選擇 Create Policy (建立政策)

  3. 請選擇 JSON 標籤。

  4. 將預設內容取代為以下內容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:SendCommand", "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations", "ssm:GetCommandInvocation", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:ListTagsForResource", "ssm:GetParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StartExecution" ], "Resource": [ "arn:aws:states:*:*:execution:*:*", "arn:aws:states:*:*:stateMachine:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*" ] }, { "Effect": "Allow", "Action": [ "resource-groups:ListGroups", "resource-groups:ListGroupResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }
  5. 根據您在帳户中執行的維護任務及其需要來修改 JSON 內容。您所做的變更專為您的操作而規劃。

    例如:

    • 您可以為特定功能及狀態機器提供 Amazon Resource Names (ARNs),而不是使用萬用字圓 (*) 限定詞。

    • 如果您不打算執行 AWS Step Functions 任務,您可以移除 states 許可及 (ARN)。

    • 如果您不打算執行 AWS Lambda 任務,您可以移除 lambda 許可及 ARN。

    • 如果您不打算執行自動化任務,您可以移除 ssm:GetAutomationExecutionssm:StartAutomationExecution 許可。

    • 新增執行任務可能需要的其他許可。例如,有些自動化動作搭配 AWS CloudFormation 堆疊運作。因此,cloudformation:CreateStackcloudformation:DescribeStacks 以及 cloudformation:DeleteStack 許可是必要的。

      另一個例子:Automation Runbook AWS-CopySnapshot 需建立 Amazon Elastic Block Store (Amazon EBS) 快照的權限。因此,服務角色需要 ec2:CreateSnapshot 許可。

      如需 Automation Runbook 所需的角色權限資訊,請參閱 AWS Systems Manager Automation Runbook 參考資料中的 Runbook 描述。

  6. 完成政策修訂後,請選擇 Next: Tags (下一步:標籤)。

  7. (選用) 新增一個或多個標籤鍵值組來組織、追蹤或控制存取此政策,然後選擇 Next: Review (下一步:檢閱)。

  8. Name (名稱),請輸入名稱,作為您建立的 Maintenance Windows 服務角色所使用的政策。例如:my-maintenance-window-role-policy

  9. 選擇 Create policy (制定政策),並記下您為政策指定的名稱。您可以在接下來的程序 任務 2:為維護時段建立自訂服務角色 (主控台) 加以引用。

任務 2:為維護時段建立自訂服務角色 (主控台)

請使用下列步驟來為 Maintenance Windows 建立自訂服務角色,讓 Systems Manager 能代表您執行 Maintenance Windows 任務。您需要將您在前一任務中建立的政策連接到您建立的自訂服務角色。

重要

先前,Systems Manager 主控台可讓您選擇 AWS 管理的 IAM 服務連結角色 AWSServiceRoleForAmazonSSM 用作任務的維護角色。不再建議將此角色及其關聯政策 AmazonSSMServiceRolePolicy,用於維護時段任務。如果您現在將此角色用於維護時段任務,我們建議您停止使用。相反,請建立您自己的 IAM 角色,以便在執行維護時段任務時,Systems Manager 可跟其他 AWS 服務 溝通。

建立自訂服務角色 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)

  3. 對於 Select trusted entity (選擇信任的實體),請執行以下選項:

    1. 針對 Trusted entity type (信任的實體類型),請選擇 AWS service ( 服務)

    2. 其他 AWS 服務的使用案例中,選擇 Systems Manager

    3. 選擇 Systems Manager,如下圖所示

      螢幕擷取畫面說明選擇了 Systems Manager 選項作為使用案例。
  4. 選擇 Next (下一步)

  5. 在搜尋方塊中,輸入在 任務 1:為自訂維護時段服務角色制定政策 建立的政策名稱,選取其名稱旁邊的方塊,然後選擇 Next (下一步)。

  6. Role name (角色名稱) 中,輸入識別此角色為 Maintenance Windows 角色的名稱。例如:my-maintenance-window-role

  7. (選用) 變更預設的角色描述以反映此角色的用途。例如:Performs maintenance window tasks on your behalf

  8. (選用) 新增一或多個標籤鍵/值對來組織、追蹤或控制存取此角色,然後選擇 Next: Review (下一步:檢視)

  9. 選擇 Create role (建立角色)。系統會讓您回到 Roles (角色) 頁面。

  10. 選擇剛建立之角色的名稱。

  11. 選擇 Trust relationships (信任關係) 索引標籤,然後驗證下列政策是否顯示於 Trusted entities(信任實體) 方塊。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  12. 複製或記下角色名稱及摘要區的 ARN 值。您帳户的使用者在建立維護時段時指定此訊息。

任務 3:設定允許註冊維護時段任務的使用者權限 (主控台)

當您使用維護時段註冊任務時,您需要指定自訂服務角色或 Systems Manager 服務連結角色來執行實際的任務操作。這是服務代您執行任務時所擔任的角色。在此之前,若要註冊任務本身,請將 IAM PassRole 政策指派給 IAM 實體 (例如使用者或群組)。這可讓 IAM 實體 (使用者或群組) 指定執行任務時應使用的角色,以便在維護時段中註冊這些任務。如需相關資訊,請參閱 IAM 使用者指南中的授予使用者將角色傳遞至 AWS 服務 的許可

為允許註冊維護時段任務的使用者設定許可

如果 IAM 實體 (使用者、角色或群組) 設定為具有管理員許可,則該使用者或角色可以存取維護時段。對於沒有管理員許可的 IAM 實體,管理員必須將以下許可授予給 IAM 實體。以下是在維護時段中註冊任務所需的最低許可:

  • AmazonSSMFullAccess 受管政策或提供相當許可的政策。

  • 以下是 iam:PassRoleiam:ListRoles 許可。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role 代表您先前建立之自訂維護時段角色的名稱。

    account-id 代表您的 AWS 帳戶 ID。新增此資源 arn:aws:iam::account-id:role/ 的許可,可讓使用者在建立維護時段任務時,檢視主控台中的客戶角色,並從中選擇客戶角色。新增 arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ 的許可,可讓使用者在建立維護時段任務時,在主控台中選擇 Systems Manager 服務連結的角色。

    若要提供存取權,請新增許可到您的使用者、群組或角色:

    • AWS IAM Identity Center 中的使用者和群組:

      建立許可集合。請遵循《AWS IAM Identity Center 使用者指南》建立許可集合中的指示。

    • 透過身分提供者在 IAM 中管理的使用者:

      建立聯合身分的角色。請遵循《IAM 使用者指南》為第三方身分提供者 (聯合) 建立角色中的指示。

    • IAM 使用者:

設定允許註冊維護時段任務之群組的許可 (主控台)
  1. 前往網址 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在導覽窗格中,選擇 User groups (使用者群組)。

  3. 在群組清單中,選取您要為其指派iam:PassRole 許可的群組的名稱。

  4. Permissions (許可) 索引標籤上,選擇 Add permissions, Create Inline Policy (新增許可、建立內嵌政策),然後選擇 JSON 索引標籤。

  5. 將方塊中的預設內容取代為:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/my-maintenance-window-role" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/" }, { "Effect": "Allow", "Action": "iam:ListRoles", "Resource": "arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/" } ] }

    my-maintenance-window-role 代表您先前建立之自訂維護時段角色的名稱。

    account-id 代表您的 AWS 帳戶 ID。新增此資源 arn:aws:iam::account-id:role/ 的許可,可讓使用者在建立維護時段任務時,檢視主控台中的客戶角色,並從中選擇客戶角色。新增 arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/ 的許可,可讓使用者在建立維護時段任務時,在主控台中選擇 Systems Manager 服務連結的角色。

  6. 選擇 Review policy (檢閱政策)。

  7. Review policy (檢閱政策) 頁面,在 Name (名稱) 方塊中輸入名稱以識別 my-group-iam-passrole-policy 之類的此 PassRole 政策,然後選擇 Create policy (建立政策)。

任務 4:為不允許註冊維護時段任務的使用者設定許可

無論您是根據個別使用者還是群組來拒絕 ssm:RegisterTaskWithMaintenanceWindow 許可,請使用下列其中一個處理程序,來阻止使用者向維護時段註冊任務。

為不允許註冊維護時段任務的使用者設定許可
  • 管理員必須將下列限制新增至 IAM 實體。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
設定允許註冊維護時段任務之群組的許可 (主控台)
  1. 前往網址 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在導覽窗格中,選擇 User groups (使用者群組)。

  3. 在群組清單中,選取您要為其拒絕 ssm:RegisterTaskWithMaintenanceWindow 許可的群組名稱。

  4. Permissions (許可) 索引標籤上,選擇 Add permissions, Create inline policy (新增許可、建立內嵌政策)。

  5. 選擇 JSON (JSON) 標籤,並將方塊中的預設內容取代為下列內容。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  6. 選擇 Review policy (檢閱政策)。

  7. Review policy (檢閱政策) 頁面,在 Name (名稱) 中輸入名稱以識別 my-groups-deny-mw-tasks-policy 之類的此政策,然後選擇 Create policy (建立政策)。