步驟 4:建立 Systems Manager 的 IAM 執行個體描述檔 - AWS Systems Manager

步驟 4:建立 Systems Manager 的 IAM 執行個體描述檔

在預設情況下,AWS Systems Manager 沒有在您執行個體上執行動作的許可。透過使用 AWS Identity and Access Management (IAM) 執行個體描述檔來授予存取權。執行個體描述檔是在啟動時將 IAM 角色資訊傳遞到 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的容器。透過將定義所需許可的一個或多個 IAM 政策連接到新角色或您已建立的角色,可建立 Systems Manager 的執行個體描述檔。

注意

您可以使用 Quick Setup (AWS Systems Manager 的一個功能),在您的 AWS 帳戶 中的所有執行個體上快速設定執行個體描述檔。Quick Setup 也可以建立 IAM 服務角色 (或擔任角色),讓 Systems Manager 可以代表您在您的執行個體上安全地執行命令。透過使用 Quick Setup,您可以跳過此步驟 (步驟 4) 和步驟 5。如需更多詳細資訊,請參閱 AWS Systems ManagerQuick Setup

請記下建立 IAM 執行個體描述檔的下列詳細資訊:

  • 如果您正在 Systems Manager 混合環境中設定伺服器或虛擬機器 (VM),您不需要為它們建立執行個體描述檔。反之,將伺服器和虛擬機器設定為使用 IAM 服務角色。如需詳細資訊,請參閱為混合環境建立 IAM 服務角色

  • 如果您變更 IAM 執行個體描述檔,執行個體憑證重新整理可能需要花費一些時間。SSM Agent 在此狀況發生前都不會處理請求。若要加速重新整理程序,您可以重新啟動 SSM Agent 或重新啟動執行個體。

關於 Systems Manager 執行個體描述檔的政策

本節會說明可以新增到 Systems Manager 的 EC2 執行個體描述檔的政策。若要提供執行個體和 Systems Manager API 間通訊的許可,我們建議考慮您系統需求和安全需求的自訂政策。但是,您可以使用以下一個或多個政策作為起點,為 Systems Manager 授予許可以和您的執行個體進行互動。第一個政策 AmazonSSMManagedInstanceCore 可讓執行個體使用 AWS Systems Manager 服務核心功能。根據您的操作計劃,您可能需要其他三個政策中的一或多個政策所呈現的許可。

政策:AmazonSSMManagedInstanceCore

必要許可。

此 AWS 受管政策允許執行個體使用 Systems Manager 服務的核心功能。

政策:S3 儲存貯體存取的自訂政策

下列任一案例中的必要許可:

  • 案例 1:您使用 VPC 端點將 VPC 私下連線到支援的 AWS 服務和採用 AWS PrivateLink 技術的 VPC 端點服務。

    SSM Agent 是安裝在執行個體上並執行 Systems Manager 任務的 Amazon 軟體。此代理程式需要存取 Amazon 擁有的特定 Amazon Simple Storage Service (Amazon S3) 儲存貯體。這些儲存貯體可公開存取。

    不過,在私有 VPC 端點環境中,應明確提供這些儲存貯體的存取權:

    arn:aws:s3:::patch-baseline-snapshot-region/* arn:aws:s3:::aws-ssm-region/*

    如需詳細資訊,請參閱 Amazon VPC 使用者指南中的 步驟 6:(選用) 建立 Virtual Private Cloud 端點SSM Agent 與 AWS 受管 S3 儲存貯體通訊VPC 端點

  • 案例 2:您計劃在 Systems Manager 操作過程中使用您建立的 Amazon S3 儲存貯體。

    Systems Manager 的 Amazon EC2 執行個體描述檔必須授予對您擁有的 Amazon S3 儲存貯體的存取權限,以執行下列任務:

    • 存取您儲存在 S3 儲存貯體中的指令碼,以用於您執行的命令。

    • 儲存 Run Command 命令或 Session Manager 工作階段的完整輸出。

    • 在修補您的執行個體時存取自訂修補程式清單。

注意

您可以選擇是否在 S3 儲存貯體中儲存輸出日誌資料,但如果您已決定使用,則建議在 Systems Manager 組態程序開始時進行設定。如需詳細資訊,請參閱 Amazon Simple Storage Service 入門指南.中的建立儲存貯體

政策:AmazonSSMDirectoryServiceAccess

唯有在您計劃將 Windows Server 的 Amazon EC2 執行個體加入 Microsoft AD 目錄時,才需要這項政策。

此 AWS 受管政策可讓 SSM Agent 代表您存取 AWS Directory Service,以請求透過受管執行個體加入網域。如需詳細資訊,請參閱《AWS Directory Service 管理指南》中的無縫加入 Windows EC2 執行個體

政策:CloudWatchAgentServerPolicy

唯有在您計劃在執行個體上安裝並執行 CloudWatch 代理程式,以讀取執行個體上的指標和日誌資料,並將其寫入 Amazon CloudWatch 時,才需要這項政策。這可協助您監控、分析,以及快速回應問題或 AWS 資源的變更。

唯有在您將使用諸如 Amazon EventBridge 或 CloudWatch Logs 等功能時,您的執行個體描述檔才需要此政策。(您也可以建立更嚴格的政策,例如,限制特定 CloudWatch Logs 日誌串流的寫入存取)。

注意

您可以選擇是否使用 Eventbridge 或 CloudWatch Logs 功能,但如果您決定使用,則建議在 Systems Manager 組態程序開始時進行設定。如需詳細資訊,請參閲《Amazon EventBridge 使用者指南》和《Amazon CloudWatch Logs 使用者指南》。

若要建立具有其他 Systems Manager 服務許可的執行個體描述檔,請參閱下列資源。

任務 1:(選用) 建立 S3 儲存貯體存取的自訂原則

唯有在 Systems Manager 操作中使用 VPC 端點或自有 S3 儲存貯體時,才需要為 Amazon S3 存取建立自訂政策。

如需您在下列政策中提供存取權限的 AWS 受管 S3 儲存貯體的相關資訊,請參閱 SSM Agent 與 AWS 受管 S3 儲存貯體通訊

  1. https://console.aws.amazon.com/iam/ 中開啟 IAM 主控台。

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

  3. 選擇「JSON」標籤,並預設文字取代為下列內容:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::aws-ssm-region/*", "arn:aws:s3:::aws-windows-downloads-region/*", "arn:aws:s3:::amazon-ssm-region/*", "arn:aws:s3:::amazon-ssm-packages-region/*", "arn:aws:s3:::region-birdwatcher-prod/*", "arn:aws:s3:::aws-ssm-distributor-file-region/*", "arn:aws:s3:::aws-ssm-document-attachments-region/*", "arn:aws:s3:::patch-baseline-snapshot-region/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl", "s3:GetEncryptionConfiguration" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] } ] }

    1 唯有在您使用 VPC 端點時,才需要第一個 Statement 元素。

    2 唯有在 Systems Manager 操作中使用您建立的 S3 儲存貯體時,才需要第二個 Statement 元素。

    3 唯有在您計劃在其他帳戶中支援跨帳戶存取 S3 儲存貯體時,才需要 PutObjectAcl 存取控制清單許可。

    4 如果您的 S3 儲存貯體設定為使用加密,則需要 GetEncryptionConfiguration 元素。

    5 如果您的 S3 儲存貯體設定為使用加密,則 S3 儲存貯體根 (例如 arn:aws:s3:::DOC-EXAMPLE-BUCKET) 必須列在 Resource (資源) 區段中。您的 IAM 使用者、群組或角色必須設定為可存取根儲存貯體。

  4. 如果您在操作中使用 VPC 端點,請執行下列動作:

    在第一個 Statement 元素中,將每個區域預留位置取代為將使用此政策的 AWS 區域 的識別符。例如,對於美國東部 (俄亥俄) 區域,使用 us-east-2。如需 region 值的清單,請參閱《Amazon Web Services 一般參考》中 Systems Manager 服務端點中的 Region (區域) 資料欄。

    重要

    我們建議您避免在這個政策中的特定區域使用萬用字元 (*)。例如,使用 arn:aws:s3:::aws-ssm-us-east-2/* 而不使用 arn:aws:s3:::aws-ssm-*/*。使用萬用字元可能允許存取您不想授與存取權的 S3 儲存貯體。如果您要將執行個體描述檔用於多個區域,建議您為每個區域重複第一個 Statement 元素。

    -或-

    如果您在操作中不是使用 VPC 端點,您可以刪除第一個 Statement 元素。

  5. 如果您在 Systems Manager 操作中使用自有的 S3 儲存貯體,請執行下列動作:

    在第二個 Statement 元素中,將 DOC-EXAMPLE-BUCKET 取代為帳戶中 S3 儲存貯體的名稱。您將使用此儲存貯體來進行 Systems Manager 操作。它將使用 "arn:aws:s3:::my-bucket-name/*" 作為資源,為儲存貯體中的物件提供許可。如需有關對儲存貯體或儲存貯體中的物件提供許可的詳細資訊,請參閱《Amazon Simple Storage Service 開發人員指南》中的在政策中指定許可主題與 AWS 部落格文章 IAM 政策和儲存貯體政策以及 ACL!天啊!(控制 S3 資源的存取)

    注意

    如果您使用多個儲存貯體,請為每個儲存貯體提供 ARN。例如,對於儲存貯體的許可:

    "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" ]

    -或-

    如果您在 Systems Manager 操作中不是使用自有的 S3 儲存貯體,您可以刪除第二個 Statement 元素。

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

  7. Name (名稱) 中,輸入名稱來識別此政策,例如 SSMInstanceProfileS3Policy 或另一個您喜好的名稱。

  8. 選擇 Create policy (建立政策)

任務 2:將許可新增至 Systems Manager 執行個體描述檔 (主控台)

根據您是否將為執行個體描述檔建立新角色或將所需的許可新增到現有角色,來使用下列其中一個程序。

為 Systems Manager 受管執行個體建立執行個體描述檔 (主控台)

  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

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

  3. Select type of trusted entity (選擇可信任執行個體類型) 下,選擇 AWS service (AWS 服務)。

  4. 緊接在 Choose the service that will use this role (選擇將使用此角色的服務) 下,選擇 EC2,然後選擇 Next: Permissions (下一步:許可)

    
                                在 IAM 主控台中選擇 EC2 服務
  5. Attach permissions policies (連接許可政策) 頁面上,執行下列動作:

    • 使用 Search (搜尋) 欄位找出 AmazonSSMManagedInstanceCore。選取其名稱旁的方塊。

      
                                        在 IAM 主控台中選擇 EC2 服務

      即使您搜尋其他政策,主控台仍會保留您的選取項目。

    • 如果您在先前程序中已建立自訂 S3 儲存貯體政策,任務 1:(選用) 建立 S3 儲存貯體存取的自訂原則,請搜尋它並選取名稱旁的方塊。

    • 若您計劃將執行個體加入 AWS Directory Service 管理的 Active Directory,請搜尋 AmazonSSMDirectoryServiceAccess 並選取其名稱旁邊的方塊。

    • 若您計劃使用 Eventbridge 或 CloudWatch Logs 來管理或監控您的執行個體,請搜尋 CloudWatchAgentServerPolicy,然後選取其名稱旁邊的方塊。

  6. 選擇 Next: Tags (下一步:標籤)

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

  8. Role name (角色名稱) 中,輸入新執行個體描述檔的名稱,例如 SSMInstanceProfile 或另一個您喜好的名稱。

    注意

    請記下角色名稱。當您建立您想要使用 Systems Manager 管理的新執行個體時,將選擇此角色。

  9. (選用) 在 Role description (角色說明) 中,輸入此執行個體描述檔的說明。

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

若要將 Systems Manager 的執行個體描述檔許可新增到現有角色 (主控台)

  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色),然後選擇您想要針對 Systems Manager 操作與執行個體描述檔建立關聯的現有角色。

  3. Permissions (許可) 索引標籤上,選擇 Attach policies (連接政策)

  4. 連接許可政策 頁面上,執行下列動作:

    • 選取所需的 AmazonSSMManagedInstanceCore 受管政策旁的方塊。

    • 如果您已建立自訂 S3 儲存貯體政策,請選取名稱旁的方塊。如需為執行個體描述檔自訂 S3 儲存貯體政策的相關資訊,請參閱 任務 1:(選用) 建立 S3 儲存貯體存取的自訂原則

    • 如果您計劃將執行個體加入受 AWS Directory Service 管理之 Active Directory,選取 AmazonSSMDirectoryServiceAccess 旁的方塊

    • 若您計劃使用 Eventbridge 或 CloudWatch Logs 來管理或監控您的執行個體,請選取 CloudWatchAgentServerPolicy 旁邊的方塊。

  5. 選擇 Attach policy (連接政策)。

如需有關如何更新角色以包含信任實體或進一步限制存取的詳細資訊,請參閱 IAM 使用者指南中的修改角色

繼續進行步驟 5:將 IAM 執行個體描述檔連接至 Amazon EC2 執行個體