使用主控台控制對維護時段的存取權 - AWS Systems Manager

使用主控台控制對維護時段的存取權

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

任務 1:使用主控台為維護時段服務角色建立自訂政策

維護時段任務需要 IAM 角色提供在目標資源上執行所需的許可。許可透過連接到角色的 IAM 政策提供。您執行的任務類型及其他的操作要求決定了此政策的內容。我們提供您可以根據需求調整的基本政策。根據維護時段執行的任務及任務類型,您可能不需要此政策中的所有許可,而您可能需要包含其他的許可。您可以將此政策附加至稍後在 任務 2:使用主控台為維護時段建立自訂服務角色 建立的角色。

使用主控台建立自訂政策
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/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. 完成政策修訂後,選擇下一步

  7. 政策名稱中輸入名稱,該名稱將政策標識為連接至所建立之服務角色的政策。例如:my-maintenance-window-role-policy

  8. (選用) 在新增標籤區段中,新增一個或多個標籤鍵值對來組織、追蹤或控制對此政策的存取。

  9. 選擇建立政策

    記下為政策指定的名稱。您可以在接下來的程序 任務 2:使用主控台為維護時段建立自訂服務角色 加以引用。

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

在先前任務中建立的政策會連接至您在此任務中建立的維護時段服務角色。使用者註冊維護時段任務時,他們將此 IAM 角色指定為任務組態的一部分。此角色的權限可讓 Systems Manager 代您在維護時段執行任務。

重要

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

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

使用主控台為維護時段建立自訂服務角色
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

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

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

    1. 針對信任的實體類型,請選擇 AWS 服務

    2. 對於使用案例,選擇 Systems Manager

    3. 選擇 Systems Manager

      下圖反白顯示了 Systems Manager 選項的位置

      Systems Manager 是使用案例的選項之一。
  4. 選擇 Next (下一步)。

  5. 許可政策區域的搜尋方塊中,輸入在 任務 1:使用主控台為維護時段服務角色建立自訂政策 中建立的政策名稱,選取其名稱旁邊的方塊,然後選擇下一步

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

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

  8. 對於步驟 1:選取信任的實體,確認下列政策顯示在信任的政策方塊中。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  9. 對於步驟 2:新增許可,確認您在 任務 1:使用主控台為維護時段服務角色建立自訂政策 中建立的政策存在。

  10. (選用) 在步驟 3:新增標籤中,新增一個或多個標籤鍵值對來組織、追蹤或控制對此角色的存取。

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

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

  13. 複製或記下角色名稱及摘要區的 ARN 值。您帳户的使用者在建立維護時段時指定此訊息。

任務 3:使用主控台向指定使用者授予註冊維護時段任務的許可

為使用者提供存取維護時段自訂服務角色的許可,可讓他們將其用於維護時段任務。這是對您已經授予他們將 Systems Manager API 命令用於 Maintenance Windows 功能的許可的補充。此 IAM 角色傳遞了執行維護時段任務所需的許可。因此,如果無法傳遞這些 IAM 許可,使用者就無法使用您的自訂服務角色向維護時段註冊任務。

在向維護時段註冊任務時,需要指定服務角色來執行實際的任務操作。這是服務代您執行任務時所擔任的角色。在此之前,若要註冊任務本身,請將 IAM PassRole 政策指派給 IAM 實體 (例如使用者或群組)。這樣便讓 IAM 實體可以指定執行任務時應使用的角色,而指定角色是向維護時段註冊這些任務的其中一步。如需相關資訊,請參閱《IAM 使用者指南》中的 Grant a user permissions to pass a role to an AWS 服務

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

如果 IAM 實體 (使用者、角色或群組) 設定為具有管理員許可,則該 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 (新增許可、建立內嵌政策)。

  5. 政策編輯器區域中,選擇 JSON 並使用列內容取代方塊中的預設內容。

    { "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. 選擇 Next (下一步)。

  7. 檢閱並建立頁面上,在政策名稱方塊中輸入名稱以識別此 PassRole 政策 (例如 my-group-iam-passrole-policy),然後選擇建立政策

任務 4:使用主控台防止指定的使用者註冊維護時段任務

對於您不想在維護時段註冊任務的 AWS 帳戶 使用者,您可以拒絕其 ssm:RegisterTaskWithMaintenanceWindow 權限。這針對不應註冊維護時段任務的使用者提供了額外的保護層。

使用主控台為無法註冊維護時段任務的群組設定許可
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

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

  3. 在群組清單中,選取要為其拒絕 ssm:RegisterTaskWithMaintenanceWindow 許可的群組名稱,或先建立新的群組 (如有必要)。

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

  5. 政策編輯器區域中,選擇 JSON,然後使用下列內容取代方塊中的預設內容。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
  6. 選擇 Next (下一步)。

  7. 檢閱和建立頁面上,在政策名稱中輸入名稱以識別此政策 (例如 my-groups-deny-mw-tasks-policy),然後選擇建立政策