使用委託管理執行自動化 - AWS Systems Manager

使用委託管理執行自動化

執行自動化時,根據預設,自動化會在啟動自動化的 AWS Identity and Access Management (IAM) 使用者內容中執行。這表示,如果您的 IAM 使用者帳戶具有管理員許可,則自動化會以管理員許可執行,並能完全存取由自動化設定的資源。做為安全最佳實務,我們建議您在執行自動化時,使用以 AmazonSSMAutomationRole 受管政策設定的 IAM 服務角色 (也稱為擔任角色)。使用 IAM 服務角色執行自動化稱為委託管理

在您使用服務角色時,自動化允許對 AWS 資源執行,但執行自動化的使用者限制了對這些資源的存取 (或無存取)。例如,您可以設定服務角色並搭配 Automation 使用,以重新啟動一個或多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。自動化是 AWS Systems Manager 的功能。自動化會重新啟動執行個體,但服務角色不會提供存取這些執行個體的使用者許可。

您可以在執行自動化時指定執行時間的服務角色,或者您可以建立自訂 Runbook 並直接在 Runbook 中指定服務角色。如果您指定服務角色 (在執行時間或在 Runbook 中),則服務會在指定服務角色的內容中執行。如果您不指定服務角色,則系統會在使用者的內容中建立暫時工作階段並執行自動化。

注意

針對預期要執行超過 12 小時的自動化,您必須指定服務角色。如果您在使用者的內容中啟動長期執行自動化,使用者的暫時工作階段會在 12 小時後過期。

委派管理可確保您的 AWS 資源有更高層級的安全和控制。它也能夠強化稽核體驗,因為動作是由中央服務角色,而非多個 IAM 帳戶針對您的資源執行的。

為了適當說明委託管理在組織中如何運作,此主題說明完成以下任務,而這些任務是由組織中三種不同的人員執行:

  • 建立測試 IAM 使用者帳戶,名稱為 AutomationRestrictedOperator (管理員)。

  • 建立自動化的 IAM 服務角色 (管理員)。

  • 建立簡單的 Runbook (根據既有的 Runbook),以指定服務角色 (Runbook 撰寫者)。

  • 以測試使用者的身分執行自動化 (受限制的操作員)。

在某些組織中,這三種任務都是由同一個人執行,但在此識別出不同的角色能顯示委託管理如何在複雜的組織中提升安全。

重要

做為安全最佳實務,我們建議您一律使用服務角色來執行自動化,即使您是執行所有任務的管理員。

本節中的程序會連結至其他 AWS 指南中的主題或其他 Systems Manager 主題。建議您在 Web 瀏覽器中以新分頁開啟其他主題的連結,以免錯過您在此主題中的位置。

建立測試使用者帳戶

本節描述如何以限制的許可建立 IAM 測試使用者帳戶。許可集合允許使用者執行自動化,但使用者無法存取由自動化設為目標的 AWS 資源。操作員也可以檢視自動化的結果。首先您要建立自訂 IAM 許可政策,接著建立使用者帳戶並對其指派許可。

建立 IAM 測試使用者

  1. 建立名為 OperatorRestrictedPermissions 的許可政策。如需如何建立新 IAM 許可政策的詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台)。在 JSON 索引標籤建立政策,並指定以下的許可集合。

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:DescribeAutomationExecutions", "ssm:DescribeAutomationStepExecutions", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:GetDocument", "ssm:ListDocuments", "ssm:ListDocumentVersions", "ssm:StartAutomationExecution" ], "Resource":"*" } ] }
  2. 建立名為 AutomationRestrictedOperator 的新 IAM 使用者帳戶。如需如何建立新 IAM 使用者的詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 使用者 (主控台)。出現提示時,選擇 Attach existing policies directly (直接連接現有政策),接著選擇您剛建立的政策。

  3. 記下使用者名稱、密碼和 Console login link (主控台登入連結)。您會在本主題稍後登入此帳戶。

建立自動化的 IAM 服務角色

以下程序連結至其他主題,可協助您建立服務角色並設定自動化以信任此角色。

建立服務角色並使自動化信任此角色

  1. 建立自動化服務角色。如需相關資訊,請參閱 任務 1:建立自動化的服務角色

  2. 記下服務角色的 Amazon Resource Name (ARN)。您要在接下來的程序中指定此 ARN。

建立自訂 Runbook

本節說明如何建立可重新啟動 EC2 執行個體的自訂 Runbook。AWS 提供用於重新啟動名為 AWS-RestartEC2Instance 之執行個體的 Runbook。以下程序會複製該 Runbook 的內容,以示範如何在您建立自己的文件時將服務角色輸入 Runbook。藉由在 Runbook 中直接指定服務角色,使用者使用 Runbook 時不需要 iam:PassRole 許可。少了 iam:PassRole 許可,使用者就無法在 AWS 中其他地方使用服務角色。

建立自訂 Runbook

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Documents (文件)

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後在導覽窗格中,選擇 Documents (文件)。

  3. 選擇 Create document (建立文件)

  4. Name (名稱) 欄位輸入 Runbook 的名稱,例如 Restart-EC2InstanceDemo。

  5. Document type (文件類型) 清單中,選擇 Automation document (自動化文件)

  6. Content (內容) 部分,選擇 JSON,接著貼上以下內容。以您在先前程序中建立的服務角色 ARN 取代 AssumeRoleARN

    { "description": "Restart EC2 instances(s)", "schemaVersion": "0.3", "assumeRole": "AssumeRoleARN", "parameters": { "InstanceId": { "type": "StringList", "description": "(Required) EC2 Instance to restart" } }, "mainSteps": [ { "name": "stopInstances", "action": "aws:changeInstanceState", "inputs": { "InstanceIds": "{{ InstanceId }}", "DesiredState": "stopped" } }, { "name": "startInstances", "action": "aws:changeInstanceState", "inputs": { "InstanceIds": "{{ InstanceId }}", "DesiredState": "running" } } ] }
  7. 選擇 Create document (建立文件)

執行自訂 Runbook

以下程序描述如何使用您先前在此主題中建立的受限制操作員角色來執行 Runbook。使用者可以執行您之前建立的 Runbook,因為 IAM 帳戶許可能夠讓他們查看和執行 Runbook。然而,使用者無法登入您要以此自動化重新啟動的執行個體。

  1. https://console.aws.amazon.com/ec2/ 中,使用以下自動化複製您想要重新啟動的一個或多個執行個體之執行個體 ID。

  2. 登出 AWS Management Console,然後使用先前複製的測試使用者帳戶主控台登入連結重新登入。

  3. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  4. 在導覽窗格中,選擇 Automation (自動化)。

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後選擇 Automation (自動化)。

  5. 選擇 Execute automation (執行自動化)

  6. 選擇您先前在此主題中建立的 Runbook。

  7. Document details (文件詳細資訊) 部分,確認 Document version (文件版本) 設為 1 (Default)

  8. 選擇 Next (下一步)。

  9. Execution Mode (執行模式) 部分,選擇 Simple execution (簡易執行)

  10. Input parameters (輸入參數) 部分,輸入一個或多個您想要重新啟動的執行個體 ID,接著選擇 Execute (執行)。

Execution details (執行詳細資訊) 會描述自動化的狀態。步驟 1 停止執行個體。步驟 2 開始執行個體。