設定 Systems Manager 所需的執行個體許可 - AWS Systems Manager

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

設定 Systems Manager 所需的執行個體許可

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

EC2 執行個體許可的建議組態

預設主機管理組態可讓 Systems Manager 自動管理您的 Amazon EC2執行個體。開啟此設定後, 和 中使用執行個體中繼資料服務第 2 版 (IMDSv2) AWS 區域 的所有執行個體都會 AWS 帳戶 與 搭配使用 SSM Agent 3.2.582.0 版或更新版本安裝 會自動成為受管執行個體。預設主機管理組態不支援執行個體中繼資料服務第 1 版。如需轉換為 的資訊IMDSv2,請參閱 Amazon 使用者指南 中的使用執行個體中繼資料服務第 2 版轉換為 EC2 如需檢查 版本的相關資訊 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 受管理策略:A mazonSSMManaged EC2InstanceDefaultPolicy。如需有關預設主機管理組態的詳細資訊,請參閱使用預設主機管理組態自動管理EC2執行個體

重要

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

注意

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

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

您可以從 開啟預設主機管理組態 Fleet Manager 主控台。若要使用 AWS Management Console 或偏好的命令列工具成功完成此程序,您必須具有 GetServiceSettingResetServiceSettingUpdateServiceSettingAPI操作的許可。此外,您必須具有AWSSystemsManagerDefaultEC2InstanceManagementRoleIAM角色許可的iam:PassRole許可。政策範例如下。取代每個 example resource placeholder 使用您自己的資訊。

{ "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.

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

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

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

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

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

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機器,則不需要為其建立執行個體設定檔。相反地,請將伺服器 和 VMs 設定為使用IAM服務角色。如需詳細資訊,請參閱在混合雲端和多雲端環境中建立 Systems Manager 所需的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. 使用案例 下,立即選擇 EC2,然後選擇下一步

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

    • 使用搜尋欄位來尋找 A mazonSSMManagedInstanceCore政策。選取其名稱旁的核取方塊,如下圖所示。

      在 AmazonSSMManagedInstanceCore 列中選取核取方塊。

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

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

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

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

  6. 選擇 Next (下一步)

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

    注意

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

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

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

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

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

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

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

    • 使用搜尋欄位來尋找 A mazonSSMManagedInstanceCore政策。選取其名稱旁的核取方塊。

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

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

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

  5. 選擇連接政策

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

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

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

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

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

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

  3. 選擇 JSON 索引標籤,並以下列內容取代預設文字。

    { "Version": "2012-10-17", "Statement": [ Footnote callout 1 to explain a line in a JSON policy{ "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 to explain a line in a JSON policy{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl", Footnote callout 3 to explain a line in a JSON policy "s3:GetEncryptionConfiguration" Footnote callout 4 to explain a line in a JSON policy ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::amzn-s3-demo-bucket" Footnote callout 5 to explain a line in a JSON policy ] } ] }

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

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

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

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

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

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

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

    重要

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

    -或-

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

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

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

    注意

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

    "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ]

    -或-

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

  6. 選擇下一步:標籤

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

  8. 選擇下一步:檢閱

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

  10. 選擇 建立政策

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

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

政策:AmazonSSMDirectoryServiceAccess

只有在您計劃加入 的 Amazon EC2執行個體時才需要 Windows Server 至 Microsoft AD 目錄。

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

政策:CloudWatchAgentServerPolicy

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

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

注意

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

若要建立具有其他 Systems Manager 功能許可IAM的政策,請參閱下列資源:

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

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

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

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

  4. 動作功能表中,選擇安全性 修改IAM角色

  5. 針對IAM角色 ,選取您使用 中的程序建立的執行個體設定檔EC2 執行個體許可的替代組態

  6. 選擇更新IAM角色

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

繼續進行使用 Systems Manager 的VPC端點來改善EC2執行個體的安全性