本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
利用主控台設定維護時段許可
下列程序說明如何使用 AWS Systems Manager 主控台來建立維護時段所需的角色與許可。
主題
任務 1:為自訂維護時段服務角色制定政策
您可以 JSON 格式透過以下政策來制定用於維護時段角色的政策。您可以將此政策附加至稍後在 任務 2:為維護時段建立自訂服務角色 (主控台) 建立的角色。
重要
根據維護時段執行的任務及任務類型,您可能不需要此政策中的所有許可,而您可能需要包含其他的許可。
為自訂維護時段服務角色制定策略
在 https://console.aws.amazon.com/iam/
中開啟 IAM 主控台。 -
在導覽窗格中,選擇 Policies (政策),然後選擇 Create Policy (建立政策)。
-
請選擇 JSON 標籤。
-
將預設內容取代為以下內容:
{ "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" ] } } } ] }
-
根據您在帳户中執行的維護任務及其需要來修改 JSON 內容。您所做的變更專為您的操作而規劃。
例如:
-
您可以為特定功能及狀態機器提供 Amazon Resource Names (ARNs),而不是使用萬用字圓 (*) 限定詞。
-
如果您不打算執行 AWS Step Functions 任務,您可以移除
states
許可及 (ARN)。 -
如果您不打算執行 AWS Lambda 任務,您可以移除
lambda
許可及 ARN。 -
如果您不打算執行自動化任務,您可以移除
ssm:GetAutomationExecution
及ssm:StartAutomationExecution
許可。 -
新增執行任務可能需要的其他許可。例如,有些自動化動作搭配 AWS CloudFormation 堆疊運作。因此,
cloudformation:CreateStack
、cloudformation:DescribeStacks
以及cloudformation:DeleteStack
許可是必要的。另一個例子:Automation Runbook
AWS-CopySnapshot
需建立 Amazon Elastic Block Store (Amazon EBS) 快照的權限。因此,服務角色需要ec2:CreateSnapshot
許可。如需 Automation Runbook 所需的角色權限資訊,請參閱 AWS Systems Manager Automation Runbook 參考資料中的 Runbook 描述。
-
-
完成政策修訂後,請選擇 Next: Tags (下一步:標籤)。
-
(選用) 新增一個或多個標籤鍵值組來組織、追蹤或控制存取此政策,然後選擇 Next: Review (下一步:檢閱)。
-
在 Name (名稱),請輸入名稱,作為您建立的 Maintenance Windows 服務角色所使用的政策。例如:
my-maintenance-window-role-policy
。 -
選擇 Create policy (制定政策),並記下您為政策指定的名稱。您可以在接下來的程序 任務 2:為維護時段建立自訂服務角色 (主控台) 加以引用。
任務 2:為維護時段建立自訂服務角色 (主控台)
請使用下列步驟來為 Maintenance Windows 建立自訂服務角色,讓 Systems Manager 能代表您執行 Maintenance Windows 任務。您需要將您在前一任務中建立的政策連接到您建立的自訂服務角色。
重要
先前,Systems Manager 主控台可讓您選擇 AWS 管理的 IAM 服務連結角色 AWSServiceRoleForAmazonSSM
用作任務的維護角色。不再建議將此角色及其關聯政策 AmazonSSMServiceRolePolicy
,用於維護時段任務。如果您現在將此角色用於維護時段任務,我們建議您停止使用。相反,請建立您自己的 IAM 角色,以便在執行維護時段任務時,Systems Manager 可跟其他 AWS 服務 溝通。
建立自訂服務角色 (主控台)
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
對於 Select trusted entity (選擇信任的實體),請執行以下選項:
-
針對 Trusted entity type (信任的實體類型),請選擇 AWS service ( 服務)
-
在其他 AWS 服務的使用案例中,選擇 Systems Manager
-
選擇 Systems Manager,如下圖所示。
-
-
選擇 Next (下一步)。
-
在搜尋方塊中,輸入在 任務 1:為自訂維護時段服務角色制定政策 建立的政策名稱,選取其名稱旁邊的方塊,然後選擇 Next (下一步)。
-
在 Role name (角色名稱) 中,輸入識別此角色為 Maintenance Windows 角色的名稱。例如:
my-maintenance-window-role
。 -
(選用) 變更預設的角色描述以反映此角色的用途。例如:
Performs maintenance window tasks on your behalf
。 -
(選用) 新增一或多個標籤鍵/值對來組織、追蹤或控制存取此角色,然後選擇 Next: Review (下一步:檢視)。
-
選擇 Create role (建立角色)。系統會讓您回到 Roles (角色) 頁面。
-
選擇剛建立之角色的名稱。
-
選擇 Trust relationships (信任關係) 索引標籤,然後驗證下列政策是否顯示於 Trusted entities(信任實體) 方塊。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
複製或記下角色名稱及摘要區的 ARN 值。您帳户的使用者在建立維護時段時指定此訊息。
任務 3:設定允許註冊維護時段任務的使用者權限 (主控台)
當您使用維護時段註冊任務時,您需要指定自訂服務角色或 Systems Manager 服務連結角色來執行實際的任務操作。這是服務代您執行任務時所擔任的角色。在此之前,若要註冊任務本身,請將 IAM PassRole 政策指派給 IAM 實體 (例如使用者或群組)。這可讓 IAM 實體 (使用者或群組) 指定執行任務時應使用的角色,以便在維護時段中註冊這些任務。如需相關資訊,請參閱 IAM 使用者指南中的授予使用者將角色傳遞至 AWS 服務 的許可。
為允許註冊維護時段任務的使用者設定許可
如果 IAM 實體 (使用者、角色或群組) 設定為具有管理員許可,則該使用者或角色可以存取維護時段。對於沒有管理員許可的 IAM 實體,管理員必須將以下許可授予給 IAM 實體。以下是在維護時段中註冊任務所需的最低許可:
-
AmazonSSMFullAccess
受管政策或提供相當許可的政策。 -
以下是
iam:PassRole
和iam: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::
的許可,可讓使用者在建立維護時段任務時,在主控台中選擇 Systems Manager 服務連結的角色。account-id
:role/aws-service-role/ssm.amazonaws.com/若要提供存取權,請新增許可到您的使用者、群組或角色:
-
AWS IAM Identity Center 中的使用者和群組:
建立許可集合。請遵循《AWS IAM Identity Center 使用者指南》的建立許可集合中的指示。
-
透過身分提供者在 IAM 中管理的使用者:
建立聯合身分的角色。請遵循《IAM 使用者指南》的為第三方身分提供者 (聯合) 建立角色中的指示。
-
IAM 使用者:
-
建立您的使用者可擔任的角色。請遵循《IAM 使用者指南》的為 IAM 使用者建立角色中的指示。
-
(不建議) 將政策直接連接至使用者,或將使用者新增至使用者群組。請遵循《IAM 使用者指南》的新增許可到使用者 (主控台)中的指示。
-
-
設定允許註冊維護時段任務之群組的許可 (主控台)
前往網址 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇 User groups (使用者群組)。
-
在群組清單中,選取您要為其指派
iam:PassRole
許可的群組的名稱。 -
在 Permissions (許可) 索引標籤上,選擇 Add permissions, Create Inline Policy (新增許可、建立內嵌政策),然後選擇 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::
的許可,可讓使用者在建立維護時段任務時,在主控台中選擇 Systems Manager 服務連結的角色。account-id
:role/aws-service-role/ssm.amazonaws.com/ -
選擇 Review policy (檢閱政策)。
-
在 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": "*" } ] }
設定允許註冊維護時段任務之群組的許可 (主控台)
前往網址 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇 User groups (使用者群組)。
-
在群組清單中,選取您要為其拒絕
ssm:RegisterTaskWithMaintenanceWindow
許可的群組名稱。 -
在 Permissions (許可) 索引標籤上,選擇 Add permissions, Create inline policy (新增許可、建立內嵌政策)。
-
選擇 JSON (JSON) 標籤,並將方塊中的預設內容取代為下列內容。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:RegisterTaskWithMaintenanceWindow", "Resource": "*" } ] }
-
選擇 Review policy (檢閱政策)。
-
在 Review policy (檢閱政策) 頁面,在 Name (名稱) 中輸入名稱以識別
my-groups-deny-mw-tasks-policy
之類的此政策,然後選擇 Create policy (建立政策)。