利用主控台設定維護時段許可 - 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 功能) 建立自訂服務角色,讓 Systems Manager 能代您執行任務。在此任務中,您會將您在前一任務中制定的政策附加到您建立的角色。

重要

先前,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 (AWS 服務)

    2. 針對 Use cases for other AWS services (其他 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 使用者或 IAM 群組指定執行任務時應使用的角色,作為在維護時段中註冊這些任務的一部分。如需相關資訊,請參閱 IAM 使用者指南中的授予使用者將角色傳遞至 AWS 服務 的許可

無論您是根據個別使用者或群組來指派 iam:Passrole 許可,請使用下列其中一個程序,來提供向維護時段註冊任務所需的最低許可。

設定允許註冊維護時段任務的使用者許可 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 選擇 Users (使用者),接著選擇您想要更新的使用者帳戶名稱。

  3. Permissions (許可) 索引標籤的政策清單中,確認 AmazonSSMFullAccess 政策已列出,或是會有同等的政策給予 IAM 使用者呼叫 Systems Manager API 的許可。如果未含在內,則新增許可。如需相關資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

  4. 選擇 Add 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-iam-passrole-policy 之類的此 PassRole 政策,然後選擇 Create policy (建立政策)。

設定允許註冊維護時段任務之群組的許可 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/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 許可,請使用下列其中一個處理程序,來阻止使用者向維護時段註冊任務。

設定允許註冊維護時段任務的使用者許可 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 選擇 Users (使用者),接著選擇您想要更新的使用者帳戶名稱。

  3. 選擇 Add inline policy (新增內嵌政策),然後選擇 JSON 標籤。

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

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

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

設定允許註冊維護時段任務之群組的許可 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/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 (建立政策)。