步驟 2:建立適用於混合環境的 IAM 服務角色 - AWS Systems Manager

步驟 2:建立適用於混合環境的 IAM 服務角色

混合環境中的伺服器和虛擬機器 (VM) 需要 AWS Identity and Access Management (IAM) 角色才能與 AWS Systems Manager 服務通訊。該角色將 AWS Security Token Service(AWS STS) AssumeRole 信任授予給 Systems Manager 服務。您只需要為每個 AWS 帳戶 建立一次適用於混合環境的服務角色。

注意

必須在 IAM 中為將在混合機器上使用 Systems Manager 的公司或組織使用者授予呼叫 Systems Manager API 的許可。如需詳細資訊,請參閱為 Systems Manager 建立非管理員 IAM 使用者和群組

S3 儲存貯體政策要求

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

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

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

    注意

    如果您使用內部部署防火牆並計劃使用 Patch Manager,則該防火牆也必須允許存取修補基準端點 arn:aws:s3:::patch-baseline-snapshot-region/*

    region 代表 AWS Systems Manager 支援之 AWS 區域 的識別符,例如 us-east-2 代表美國東部 (俄亥俄) 區域。如需支援的 region 值的清單,請參閱 Amazon Web Services 一般參考Systems Manager 服務端點中的 Region (區域) 資料欄。

AWS CLI

若要建立適用於混合環境的 IAM 服務角色 (AWS CLI)

  1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI),請進行相應的操作。

    如需相關資訊,請參閱安裝或升級 AWS 命令列工具

  2. 在您的本機電腦上,使用下列信任政策,建立名稱為 SSMService-Trust.json 的文字檔案。請務必將檔案儲存為 .json 副檔名。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  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 建立 IAM 執行個體描述檔

    (必要) 執行下列命令,以允許受管執行個體使用 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 Agent (SSM Agent) 存取您在政策中指定的儲存貯體。將 account-idmy-bucket-policy-name 取代為您的 AWS 帳戶 ID 和儲存貯體名稱。

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

    (選用) 執行下列命令以允許 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,請進行相應的操作。

    如需相關資訊,請參閱安裝或升級 AWS 命令列工具

  2. 在您的本機電腦上,使用下列信任政策,建立名稱為 SSMService-Trust.json 的文字檔案。請務必將檔案儲存為 .json 副檔名。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  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 建立 IAM 執行個體描述檔

    (必要) 執行下列命令,以允許受管執行個體使用 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
注意

必須在 IAM 中為將在混合機器上使用 Systems Manager 的公司或組織使用者授予呼叫 Systems Manager API 的許可。如需詳細資訊,請參閱建立使用者並指派許可

繼續進行步驟 3:在內部部署伺服器和 VM 上安裝 TLS 憑證