在混合多雲端環境中建立 Systems Manager 所需的 IAM 服務角色 - AWS Systems Manager

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

在混合多雲端環境中建立 Systems Manager 所需的 IAM 服務角色

混合多雲端環境中Non-EC2 (Amazon Elastic Compute Cloud) 機器需要 AWS Identity and Access Management (IAM) 服務角色才能與服務通訊 AWS Systems Manager 。該角色將 AWS Security Token Service (AWS STS) AssumeRole 信任授予給 Systems Manager 服務。您只需要為每個 AWS 帳戶建立一次適用於混合多雲端環境的服務角色。不過,如果混合多雲端環境中的機器需要不同的許可,則您可以選擇為不同的混合式啟用建立多個服務角色。

下列處理程序說明如何使用 Systems Manager 主控台或您慣用的命令列工具來建立所需的服務角色。

使用 AWS Management Console 為 Systems Manager 混合啟用建立 IAM 服務角色

按照下列程序為混合式啟用建立服務角色。此處理程序針對 Systems Manager 核心功能使用 AmazonSSMManagedInstanceCore 政策。根據您的使用案例,您可能需要將其他政策新增至您的服務角色,您的內部部署機器才能存取其他 Systems Manager 工具或 AWS 服務。例如,如果無法存取所需的 AWS 受管 Amazon Simple Storage Service (Amazon S3) 儲存貯體,Patch Manager修補操作會失敗。

建立 服務角色 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色,然後選擇建立角色

  3. 對於 Select trusted entity (選擇信任的實體),請執行以下選項:

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

    2. 對於其他 的使用案例 AWS 服務,選擇 Systems Manager

    3. 選擇 Systems Manager

      下圖反白顯示了 Systems Manager 選項的位置

      Systems Manager 是使用案例的選項之一。
  4. 選擇下一步

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

    • 使用 Search (搜尋) 欄位,找出 AmazonSSMManagedInstanceCore 政策。選取其名稱旁的核取方塊,如下圖所示。

      核取方塊是在 AmazonSSMManagedInstanceCore 資料列中選取。
      注意

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

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

    • 如果您計劃將non-EC2 機器加入由 管理的 Active Directory AWS Directory Service,請搜尋 AmazonSSMDirectoryServiceAccess,然後選取其名稱旁的核取方塊。

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

  6. 選擇下一步

  7. 針對角色名稱,為您的新 IAM 角色輸入名稱 (例如 SSMServerRole)。

    注意

    請記下角色名稱。當您註冊您想要使用 Systems Manager 管理的新機器時,將選擇此角色。

  8. (選用) 對於描述,更新此 IAM 服務角色的描述。

  9. (選用) 針對 Tags (標籤),新增一個或多個標籤鍵值組來組織、追蹤或控制對此角色的存取。

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

使用 AWS CLI 為 Systems Manager 混合啟用建立 IAM 服務角色

按照下列程序為混合式啟用建立服務角色。此處理程序針對 Systems Manager 核心功能使用 AmazonSSMManagedInstanceCore 政策。根據您的使用案例,您可能需要為混合多雲端環境中non-EC2 機器新增其他政策至服務角色,才能存取其他工具或 AWS 服務。

S3 儲存貯體政策要求

在下列任一案例中,您必須先為 Amazon Simple Storage Service (Amazon S3) 儲存貯體建立自訂 IAM 許可政策,才能完成此程序:

  • 案例 1 – 您使用 VPC 端點將 VPC 私下連線至支援的 AWS 服務 和 支援的 VPC 端點服務 AWS PrivateLink。

  • 案例 2 – 您計劃在 Systems Manager 操作過程中使用您建立的 Amazon S3 儲存貯體,例如將 Run Command 命令或 Session Manager 工作階段的輸出存放到 S3 儲存貯體。在繼續進行之前,請先遵循為執行個體設定檔建立一個自訂 S3 儲存貯體政策中的步驟。該主題中的 S3 儲存貯體政策相關資訊也適用於您的服務角色。

AWS CLI
建立適用於混合多雲端環境的 IAM 服務角色 (AWS CLI)
  1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI),請執行此作業。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 在您的本機機器上,使用下列信任政策,建立名稱為 SSMService-Trust.json 的文字檔案。請務必將檔案儲存為 .json 副檔名。請務必在您建立混合啟用的 ARN AWS 區域 中指定 AWS 帳戶 和 。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:us-east-2:123456789012:*" } } } ] }
  3. 開啟 AWS CLI,並在您建立 JSON 檔案的目錄中執行 create-role 命令來建立服務角色。此範例會建立名稱為 SSMServiceRole 的角色。如果您想要的話,可以選擇其他名稱。

    Linux & macOSWindows
    Linux & macOS
    aws iam create-role \ --role-name SSMServiceRole \ --assume-role-policy-document file://SSMService-Trust.json
    Windows
    aws iam create-role ^ --role-name SSMServiceRole ^ --assume-role-policy-document file://SSMService-Trust.json
  4. 如下執行 attach-role-policy 命令,以允許您剛建立的服務角色建立工作階段字符。工作階段字符可讓受管節點具有使用 Systems Manager 執行命令的許可。

    注意

    您在混合多雲端環境中為受管節點的服務描述檔新增的政策,與用於為 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體建立執行個體設定檔的政策相同。如需有關下列命令中所用 AWS 政策的詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可

    (必要) 執行下列命令,以允許受管節點使用 AWS Systems Manager 服務核心功能。

    Linux & macOSWindows
    Linux & macOS
    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
    Windows
    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    如果您為服務角色建立自訂 S3 儲存貯體政策,請執行下列命令,以允許 AWS Systems Manager 客服人員 (SSM Agent) 存取您在政策中指定的儲存貯體。使用您的 AWS 帳戶 ID 和儲存貯體名稱取代 account-idamzn-s3-demo-bucket

    Linux & macOSWindows
    Linux & macOS
    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::account-id:policy/amzn-s3-demo-bucket
    Windows
    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::account-id:policy/amzn-s3-demo-bucket

    (選用) 執行下列命令,SSM Agent以允許 AWS Directory Service 代表您存取 ,請求由受管節點加入網域。只有在您將節點加入 Microsoft AD 目錄時,服務角色才需要此政策。

    Linux & macOSWindows
    Linux & macOS
    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess
    Windows
    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (選用) 執行以下命令,以允許 CloudWatch 代理程式在您的受管節點上執行。此命令可讓您讀取節點的資訊,並將資訊寫入 CloudWatch。只有在使用諸如 Amazon EventBridge 或 Amazon CloudWatch Logs 等服務時,您的服務設定檔才需要此政策。

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Tools for PowerShell
建立適用於混合多雲端環境的 IAM 服務角色 (AWS Tools for Windows PowerShell)
  1. 如果您尚未安裝並設定 AWS Tools for PowerShell (Tools for Windows PowerShell)。

    如需相關資訊,請參閱安裝 AWS Tools for PowerShell

  2. 在您的本機機器上,使用下列信任政策,建立名稱為 SSMService-Trust.json 的文字檔案。請務必將檔案儲存為 .json 副檔名。請務必在您建立混合啟用的 ARN AWS 區域 中指定 AWS 帳戶 和 。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:region:123456789012:*" } } } ] }
  3. 在管理模式下開啟 PowerShell,並在您建立 JSON 檔案的目錄中如下所示執行 New-IAMRole,以建立服務角色。此範例會建立名稱為 SSMServiceRole 的角色。如果您想要的話,可以選擇其他名稱。

    New-IAMRole ` -RoleName SSMServiceRole ` -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
  4. 如下使用 Register-IAMRolePolicy,以允許您建立的服務角色建立工作階段字符。工作階段字符可讓受管節點具有使用 Systems Manager 執行命令的許可。

    注意

    您在混合多雲端環境中為受管節點的服務描述檔新增的政策,與用於為 EC2 執行個體建立執行個體設定檔的政策相同。如需下列命令中使用的 AWS 政策的詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可

    (必要) 執行下列命令,以允許受管節點使用 AWS Systems Manager 服務核心功能。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    若您為服務角色建立自訂 S3 儲存貯體政策,請執行下列命令以允許 SSM Agent 存取您在政策中指定的儲存貯體。將 account-idmy-bucket-policy-name 取代為您的 AWS 帳戶 ID 和儲存貯體名稱。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::account-id:policy/my-bucket-policy-name

    (選用) 執行下列命令,SSM Agent以允許 AWS Directory Service 代表您存取 ,請求由受管節點加入網域。只有在您將節點加入 Microsoft AD 目錄時,服務角色才需要此政策。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (選用) 執行以下命令,以允許 CloudWatch 代理程式在您的受管節點上執行。此命令可讓您讀取節點的資訊,並將資訊寫入 CloudWatch。只有在使用諸如 Amazon EventBridge 或 Amazon CloudWatch Logs 等服務時,您的服務設定檔才需要此政策。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

繼續進行建立混合啟用,以向 Systems Manager 註冊節點