使用預設主機管理組態設定 - AWS Systems Manager

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

使用預設主機管理組態設定

預設主機管理組態設定可讓您 AWS Systems Manager 以受管執行個體的形式自動管理 Amazon EC2 執行個體。代管執行個EC2體是設定為搭配 Systems Manager 使用的執行個體。

使用 Systems Manager 管理執行個體的好處包含:

  • 使用安全地 Connect 到您的EC2執行個體Session Manager。

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

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

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

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

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

預設主機管理組態可讓您管理EC2執行個體,而不必手動建立 AWS Identity and Access Management (IAM) 執行個體設定檔。相反 AWS 區域 地,「預設主機管理組態」會建立並套用預設IAM角色,以確保 Systems Manager 擁有管理所有執行個體的權限,以 AWS 帳戶 及啟動該執行個體的位置。

如果提供的權限不足以滿足您的使用案例,您也可以將原則新增至「預設主機管理組態」建立的預設IAM角色。或者,如果您不需要預設IAM角色提供的所有權能的權限,您可以建立自己的自訂角色和原則。對您為預設主機管理組態選擇的IAM角色所做的任何變更都會套用至該區域和帳戶中的所有受管 Amazon EC2 執行個體。

如需有關預設主機管理組態所使用之政策的詳細資訊,請參閱 AWS 受管政策:A mazonSSMManaged EC2InstanceDefaultPolicy

實作最低權限存取

此主題所描述的程序僅供管理員執行。因此,建議您實作最低權限存取原則,以防止非管理使用者設定或修改預設主機管理組態。若要檢視限制存取預設主機管理組態的範例政策,請參閱本主題稍後的 預設主機管理組態的最低權限政策範例 一節。

重要

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

必要條件

若要在啟動設定的 AWS 區域 及 AWS 帳戶 其中使用「預設主機管理組態」,必須符合下列需求。

  • 要管理的執行個體必須使用執行個體中繼資料服務版本 2 (IMDSv2)。

    預設主機管理組態不支援執行個體中繼資料服務第 1 版。如需轉換至的相關資訊IMDSv2,請參閱 Amazon 使用EC2者指南中的「轉換為使用執行個體中繼資料服務版本 2

  • 要管理的執行個體上必須安裝 SSM Agent 3.2.582.0 版或更新版本。

    如需有關檢查執行個體上已安裝之 SSM Agent 版本的詳細資訊,請參閱 檢查 SSM Agent 版本編號

    如需有關更新 SSM Agent 的資訊,請參閱 自動更新 SSM Agent

  • 您身為執行本主題中工作的管理員,必須具有GetServiceSettingResetServiceSetting、和UpdateServiceSettingAPI作業的權限。此外,您必須具有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" ] } } } ] }
  • 如果IAM執行個體設定檔已附加至要使用 Systems Manager 管理的EC2執行個體,您必須移除該執行個體設定檔允許該ssm:UpdateInstanceInformation作業的任何權限。 SSM Agent在使用預設主機管理組態權限之前,會嘗試使用執行個體設定檔權限。如果您允許在自己的執行個體設定檔中IAM執行此ssm:UpdateInstanceInformation作業,則執行個體將不會使用「預設主機管理組態」權限。

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

您可以從主Fleet Manager控台啟動「預設主機管理組態」,或使用 AWS Command Line Interface 或 AWS Tools for Windows PowerShell。

您必須在希望透過此設定管理 Amazon EC2 執行個體的每個區域逐一開啟預設主機管理組態。

開啟「預設主機管理組態」之後,執行處理最多可能需要 30 分鐘才能使用您在下列程序步驟 5 中選擇之角色的證明資料。

啟用預設主機管理組態 (主控台)
  1. 在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

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

  3. 依次選擇帳戶管理、設定預設主機管理組態

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

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

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

啟用預設主機管理組態 (命令列)
  1. 在您的本機電JSON腦上建立包含下列信任關係原則的檔案。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  2. 開啟 AWS CLI 或 Windows 工具, PowerShell 然後根據本機電腦的作業系統類型,執行下列其中一個命令,以在您的帳戶中建立服務角色。替換每個 example resource placeholder 使用您自己的信息。

    Linux & macOS
    aws iam create-role \ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole \ --path /service-role/ \ --assume-role-policy-document file://trust-policy.json
    Windows
    aws iam create-role ^ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole ^ --path /service-role/ ^ --assume-role-policy-document file://trust-policy.json
    PowerShell
    New-IAMRole ` -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole" ` -Path "/service-role/" ` -AssumeRolePolicyDocument "file://trust-policy.json"
  3. 執行以下命令以將 AmazonSSMManagedEC2InstanceDefaultPolicy 受管政策連接到您新建立的角色。替換每個 example resource placeholder 使用您自己的信息。

    Linux & macOS
    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy \ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
    Windows
    aws iam attach-role-policy ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy ^ --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
    PowerShell
    Register-IAMRolePolicy ` -PolicyArn "arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy" ` -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole"
  4. 開啟 AWS CLI 或 Windows 工具, PowerShell 然後執行下列命令。替換每個 example resource placeholder 使用您自己的信息。

    Linux & macOS
    aws ssm update-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role \ --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
    Windows
    aws ssm update-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role ^ --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
    PowerShell
    Update-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" ` -SettingValue "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole"

    如果命令成功,則無輸出訊息。

  5. 執行下列命令,以檢視目前 AWS 帳戶 和中「預設主機管理組態」的目前服務設定值 AWS 區域。

    Linux & macOS
    aws ssm get-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    Windows
    aws ssm get-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    PowerShell
    Get-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"

    該命令會傳回相關資訊,如以下所示。

    {
        "ServiceSetting": {
            "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
            "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
            "LastModifiedDate": "2022-11-28T08:21:03.576000-08:00",
            "LastModifiedUser": "System",
            "ARN": "arn:aws:ssm:us-east-2:-123456789012:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
            "Status": "Custom"
        }
    }

停用預設主機管理組態設定

您可以從主Fleet Manager控台停用「預設主機管理組態」,或使用 AWS Command Line Interface 或 AWS Tools for Windows PowerShell。

您必須在不想再由此組態管理 Amazon EC2 執行個體的每個區域中逐一關閉「預設主機管理組態」設定。在一個區域中停用並不會導致在所有區域中停用。

如果您停用預設主機管理組態,且尚未將執行個體設定檔附加到允許存取系統管理員的 Amazon EC2 執行個體,則系統管理員將不再管 Systems Manager 這些執行個體設定檔。

停用預設主機管理組態 (主控台)
  1. 在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

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

  3. 依次選擇帳戶管理、預設主機管理組態

  4. 關閉啟用預設主機管理組態

  5. 選擇設定以停用預設主機管理組態。

停用預設主機管理組態 (命令列)
  • 開啟 AWS CLI 或 Windows 工具, PowerShell 然後執行下列命令。替換每個 example resource placeholder 使用您自己的信息。

    Linux & macOS
    aws ssm reset-service-setting \ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    Windows
    aws ssm reset-service-setting ^ --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
    PowerShell
    Reset-SSMServiceSetting ` -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"

預設主機管理組態的最低權限政策範例

下列範例政策示範如何防止您的組織成員變更您帳戶中的[預設主機管理組態設定。

AWS Organizations的服務控制政策

下列原則示範如何防止您中的非系統管理成員更新您 AWS Organizations 的預設主機管理組態設定。替換每個 example resource placeholder 使用您自己的信息。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":[ "ssm:UpdateServiceSetting", "ssm:ResetServiceSetting" ], "Resource":"arn:aws:ssm:*:*:servicesetting/ssm/managed-instance/default-ec2-instance-management-role", "Condition":{ "StringNotEqualsIgnoreCase":{ "aws:PrincipalTag/job-function":[ "administrator" ] } } }, { "Effect":"Deny", "Action":[ "iam:PassRole" ], "Resource":"arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Condition":{ "StringEquals":{ "iam:PassedToService":"ssm.amazonaws.com" }, "StringNotEqualsIgnoreCase":{ "aws:PrincipalTag/job-function":[ "administrator" ] } } }, { "Effect":"Deny", "Resource":"arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole", "Action":[ "iam:AttachRolePolicy", "iam:DeleteRole" ], "Condition":{ "StringNotEqualsIgnoreCase":{ "aws:PrincipalTag/job-function":[ "administrator" ] } } } ] }

IAM校長政策

下列原則示範如何防止您 AWS Organizations 中的IAM群組、角色或使用者更新「預設主機管理組態」設定。替換每個 example resource placeholder 使用您自己的信息。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:UpdateServiceSetting", "ssm:ResetServiceSetting" ], "Resource": "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" }, { "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole" } ] }