步驟 1:設定 Systems Manager 的執行個體許可 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 1:設定 Systems Manager 的執行個體許可

根據預設, AWS Systems Manager 沒有對執行個體執行動作的權限。您可以使用 AWS Identity and Access Management (IAM) 角色在帳戶層級提供執行個體許可,或使用執行個體設定檔在執行個體層級提供執行個體許可。如果您的使用案例允許,建議您使用預設主機管理組態在帳戶層級授予存取權。

建議組態

預設主機管理組態允許 Systems Manager 自動管理 Amazon EC2 執行個體。開啟此設定之後,所有使用執行個體中繼資料服務版本 2 (IMDSv2) AWS 區域 且安裝 3.2.582.0 或更新SSM Agent版本 AWS 帳戶 的執行個體都會自動成為受管執行個體。預設主機管理組態不支援執行個體中繼資料服務第 1 版。如需有關轉換至 IMDSv2 的資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的轉換為使用執行個體中繼資料服務第 2 版。如需有關檢查執行個體上已安裝之 SSM Agent 版本的詳細資訊,請參閱檢查 SSM Agent 版本編號。如需有關更新 SSM Agent 的資訊,請參閱自動更新 SSM Agent。受管執行個體的優點包含:

  • 使用 Session Manager 安全地連線至執行個體。

  • 使用 Patch Manager 執行自動修補程式掃描。

  • 使用 Systems Manager 庫存檢視執行個體的詳細資訊。

  • 使用 Fleet Manager 追蹤和管理執行個體。

  • 自動將 SSM Agent 保持在最新狀態。

Fleet Manager、庫存Patch Manager、和Session Manager是的功能 AWS Systems Manager。

預設主機管理組態可無需使用執行個體設定檔就實現執行個體管理,並確保 Systems Manager 擁有管理區域和帳戶中所有執行個體的許可。如果提供的許可不足以滿足使用案例,您也可以將政策新增至預設主機管理組態建立的預設 IAM 角色。如果您不需要預設 IAM 角色提供的所有功能的許可,則可以建立自己的自訂角色和政策。對為預設主機管理組態選擇的 IAM 角色所做的任何變更都會套用到該區域和帳戶中的所有受管 Amazon EC2 執行個體。如需有關預設主機管理組態所使用之政策的詳細資訊,請參閱 AWS 管理策略:亞馬遜管理 2 InstanceDefaultPolicy。如需有關預設主機管理組態的詳細資訊,請參閱使用預設主機管理組態設定

重要

使用預設主機管理組態註冊的執行個體,會將註冊資訊儲存在本機 /lib/amazon/ssmC:\ProgramData\Amazon 目錄中。移除這些目錄或其檔案可防止執行個體取得使用預設主機管理組態連線至 Systems Manager 的必要憑證。在這些情況下,您必須使用執行個體設定檔來提供執行個體所需的許可,或重新建立執行個體。

注意

此程序僅供管理員執行。允許個人設定或修改預設主機管理組態時,實作最低權限存取。您必須在每個想要自動管理 Amazon EC2 執行個體的每個 AWS 區域 組態中開啟預設主機管理組態。

開啟預設主機管理組態設定

您可以從 Fleet Manager 主控台開啟預設主機管理組態。若要使用 AWS Management Console 或偏好的命令列工具順利完成此程序,您必須擁有GetServiceSettingResetServiceSetting、和 UpdateServiceSettingAPI 作業的權限。此外,您必須擁有 AWSSystemsManagerDefaultEC2InstanceManagementRole IAM 角色 iam:PassRole 許可的許可。政策範例如下。將每個範例資源預留位置取代為您自己的資訊。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetServiceSetting", "ssm:ResetServiceSetting", "ssm:UpdateServiceSetting" ], "Resource": "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Condition": { "StringEquals": { "iam:PassedToService": [ "ssm.amazonaws.com" ] } } } ] }

在開始之前,如果執行個體設定檔已連接至 Amazon EC2 執行個體,請移除允許該 ssm:UpdateInstanceInformation 操作的所有許可。在使用預設主機管理組態許可之前,SSM Agent 會嘗試使用執行個體設定檔許可。如果您允許執行個體設定檔中的 ssm:UpdateInstanceInformation 操作,執行個體將不會使用預設主機管理組態許可。

  1. 開啟主 AWS Systems Manager 控台,網址為 https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Fleet Manager

    -或-

    如果 AWS Systems Manager 首頁先開啟,請選擇功能表圖示 ( 
    The menu icon
  ) 以開啟導覽窗格,然後Fleet Manager在導覽窗格中選擇。

  3. 帳戶管理下拉式清單中,選擇設定預設主機管理組態

  4. 開啟開啟預設主機管理組態

  5. 選擇用於為執行個體啟用 Systems Manager 功能的 IAM 角色。建議使用預設主機管理組態提供的預設角色。其中包括使用 Systems Manager 管理 Amazon EC2 執行個體所需的最小許可集。如果您偏好使用自訂角色,角色的信任政策必須允許 Systems Manager 作為受信任實體。

  6. 選擇設定以完成設定。

開啟預設主機管理組態之後,執行個體可能需要 30 分鐘的時間才能使用您所選角色的憑證。您必須在想要實現 Amazon EC2 執行個體自動管理的每個區域中開啟預設主機管理組態。

替代組態

您可以使用 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,您可以跳過此步驟 (步驟 3) 和步驟 4。如需詳細資訊,請參閱 AWS Systems Manager Quick Setup

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

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

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

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

為 Systems Manager 受管執行個體建立執行個體設定檔 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

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

  3. 對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務

  4. Use case (使用案例) 下,隨即選擇 EC2,然後選擇 Next (下一步)。

  5. Add permissions (新增許可) 頁面上,執行以下作業:

    • 使用搜尋欄位來尋找亞馬遜 SS ManagedInstanceCore M 政策。選取其名稱旁的核取方塊。

      
										在 IAM 主控台中選擇 EC2 服務

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

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

    • 如果您打算將執行個體聯結至由管理的作用中目錄 AWS Directory Service,請搜尋 AmazonSSM DirectoryServiceAccess 並選取其名稱旁邊的核取方塊。

    • 如果您打算使用 EventBridge 或 CloudWatch Logs 來管理或監控執行個體,請搜尋CloudWatchAgentServerPolicy並選取其名稱旁的核取方塊。

  6. 選擇下一步

  7. Role name (角色名稱) 中,輸入新執行個體設定檔的名稱,如 SSMInstanceProfile

    注意

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

  8. (選用) 在 Description (說明),更新此執行個體設定檔的說明。

  9. (選用) 對於 Tags (標籤),新增一個或多個標籤鍵值組來整理、追蹤或控制存取此角色的存取權,然後選擇 Create role (建立角色)。系統會讓您回到 Roles (角色) 頁面。

若要將 Systems Manager 的執行個體設定檔許可新增到現有角色 (主控台)
  1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

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

  3. Permissions 索引標籤上,依序選擇 Add permissions, Attach policies (新增許可、連接政策)。

  4. Attach policy (連接政策) 頁面上,執行下列動作:

    • 使用搜尋欄位來尋找亞馬遜 SS ManagedInstanceCore M 政策。選取其名稱旁的核取方塊。

    • 如果您已建立自訂的 S3 儲存貯體政策,請加以搜尋並選取名稱旁的核取方塊。如需為執行個體設定檔自訂 S3 儲存貯體政策的相關資訊,請參閱 (選用) 建立 S3 儲存貯體存取的自訂政策

    • 如果您打算將執行個體聯結至由管理的作用中目錄 AWS Directory Service,請搜尋 AmazonSSM DirectoryServiceAccess 並選取其名稱旁邊的核取方塊。

    • 如果您打算使用 EventBridge 或 CloudWatch Logs 來管理或監控執行個體,請搜尋CloudWatchAgentServerPolicy並選取其名稱旁的核取方塊。

  5. 選擇連接政策

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

(選用) 建立 S3 儲存貯體存取的自訂政策

唯有在 Systems Manager 操作中使用 VPC 端點或自有 S3 儲存貯體時,才需要為 Amazon Simple Storage Service (Amazon S3) 存取建立自訂政策。您可以將此政策連接至由預設主機管理組態所建立的預設 IAM 角色,或是您在上一個程序中建立的執行個體設定檔。

如需您提供存取權的 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": [ 
                                    Footnote callout 1
                                { "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/*" ] }, 
                                    Footnote callout 2
                                { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl", 
                                    Footnote callout 3
                                "s3:GetEncryptionConfiguration" 
                                    Footnote callout 4
                                ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" 
                                    Footnote callout 5
                                ] } ] }

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

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

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

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

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

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

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

    重要

    我們建議您避免在這個政策中的特定區域使用萬用字元 (*)。例如,使用 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 使用者指南》中的 Amazon Simple Storage Service (Amazon S3) 動作主題與 AWS 部落格文章 IAM 政策和儲存貯體政策以及 ACL!天啊!(控制 S3 資源的存取權)

    注意

    如果您使用多個儲存貯體,請為每個儲存貯體提供 ARN。請參閱下列範例,了解儲存貯體的許可。

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

    -或-

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

  6. 選擇下一步:標籤

  7. (選用) 透過選擇 Add tag (新增標籤),然後輸入政策的首選標籤來新增標籤。

  8. 選擇下一步:檢閱

  9. 對於 ​Name (名稱),輸入識別此政策的名稱,例如 SSMInstanceProfileS3Policy

  10. 選擇建立政策

受管執行個體的其他政策考量

本節介紹一些政策,您可以將這些政策新增至由預設主機管理組態所建立的預設 IAM 角色,或新增至 AWS Systems Manager的執行個體設定檔。若要提供執行個體和 Systems Manager API 間通訊的許可,建議考慮您系統需求和安全需求的自訂政策。視您的操作計劃而定,您可能需要其他一或多個政策所呈現的許可。

政策:AmazonSSMDirectoryServiceAccess

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

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

政策:CloudWatchAgentServerPolicy

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

預設主機管理組態或執行個體設定檔建立的預設 IAM 角色,只有在您使用 Amazon EventBridge 或 Amazon CloudWatch 日誌等功能時,才需要此政策。您也可以建立更嚴格的政策,例如,限制對特定 CloudWatch 記錄檔資料流的寫入存取。)

注意

使用 EventBridge 和 CloudWatch 記錄功能是選擇性的。然後,如果您已決定使用,則建議在 Systems Manager 組態程序開始時進行設定。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南Amazon CloudWatch 日誌使用者指南

若要建立提供對其他 Systems Manager 功能存取權的 IAM 政策,請參閱:

將 Systems Manager 執行個體設定檔連接至執行個體 (主控台)

  1. 登入 AWS Management Console 並開啟 Amazon EC2 主控台,網址為 https://console.aws.amazon.com/ec2/

  2. 在導覽窗格的 Instances (執行個體) 下方,選擇 Instances (執行個體)

  3. 導覽並從清單選擇您的 EC2 執行個體。

  4. Actions (動作) 選單中,選擇 Security (安全性),然後選擇 Modify IAM role (修改 IAM 角色)。

  5. 針對 IAM role (IAM 角色),選取您使用替代組態中程序所建立的執行個體設定檔。

  6. 選擇 Update IAM role (更新 IAM 角色)。

如需有關將 IAM 角色連接至執行個體的詳細資訊,請根據您所選的作業系統類型,選擇下列其中一項:

繼續進行步驟 2:建立 VPC 端點