本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立混合式與多雲端環境中 Systems Manager 所需的IAM服務角色
混合式和多雲端環境中的非 EC2 (Amazon 彈性運算雲端) 機器需要 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
政策。視您的使用案例而定,您可能需要將其他政策新增至服務角色,讓內部部署機器能夠存取其他功能或 AWS 服務。例如,如果沒有存取所需的 AWS
受管 Amazon Simple Storage Service (Amazon S3) 儲存貯體,則 Patch Manager 修補操作會失敗。
建立 服務角色 (主控台)
在開啟IAM主控台https://console.aws.amazon.com/iam/。
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
對於 Select trusted entity (選擇信任的實體),請執行以下選項:
-
對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務。
-
對於其他使用案例 AWS 服務,請選擇 Systems Manager。
-
選擇 Systems Manager,如下圖所示。
-
選擇 Next (下一步)。
-
在 Add permissions (新增許可) 頁面上,執行以下作業:
-
使用搜尋欄位來尋找 A mazonSSMManaged InstanceCore 原則。選取其名稱旁的核取方塊。
-
即使您搜尋其他政策,主控台仍會保留您的選取項目。
-
如果您在程序 (選用) 建立 S3 儲存貯體存取的自訂政策 中已建立自訂 S3 儲存貯體政策,請搜尋它並選取名稱旁的核取方塊。
-
如果您打算將非EC2機器加入由管理的 Active Directory AWS Directory Service,請搜尋 A mazonSSMDirectory ServiceAccess 並選取其名稱旁邊的核取方塊。
-
如果您打算使用 EventBridge 或 CloudWatch Logs 來管理或監視受管理的節點,請搜尋CloudWatchAgentServerPolicy並選取其名稱旁邊的核取方塊。
-
選擇 Next (下一步)。
-
在 [角色名稱] 中,輸入新IAM伺服器角色的名稱,例如SSMServerRole
。
請記下角色名稱。當您註冊您想要使用 Systems Manager 管理的新機器時,將選擇此角色。
-
(選擇性) 對於說明,請更新此IAM伺服器角色的說明。
-
(選用) 針對 Tags (標籤),新增一個或多個標籤鍵值組來組織、追蹤或控制對此角色的存取。
-
選擇 Create role (建立角色)。系統會讓您回到 Roles (角色) 頁面。
使用建 AWS CLI 立 Systems Manager 混合啟動的IAM服務角色
使用以下處理程序為混合式啟用建立服務角色。此處理程序針對 Systems Manager 核心功能使用 AmazonSSMManagedInstanceCore
政策。視您的使用案例而定,您可能需要為混合式和多雲端環境中的非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
安裝和配置 AWS Command Line Interface (AWS CLI),如果你還沒有。
如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI。
-
在您的本機機器上,使用下列信任政策,建立名稱為 SSMService-Trust.json
的文字檔案。請務必將檔案儲存為 .json
副檔名。請務必指定您的 AWS 帳戶 AWS 區域 和您建立混合式啟動的ARN位置。
{
"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
:*"
}
}
}
]
}
-
開啟 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
-
執行下列attach-role-policy命令,以允許您剛建立的服務角色來建立工作階段權杖。工作階段字符可讓受管節點具有使用 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 Agent (SSM Agent) 存取您在政策中指定的儲存貯體。Replace (取代) account-id
以及 amzn-s3-demo-bucket
帶有您的 AWS 帳戶 ID 和存儲桶名稱。
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 日誌等服務時,您的服務設定檔才需要此政策。
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
安裝和配置 AWS Tools for PowerShell (Windows 工具 PowerShell),如果你還沒有。
如需相關資訊,請參閱安裝 AWS Tools for PowerShell。
-
在您的本機機器上,使用下列信任政策,建立名稱為 SSMService-Trust.json
的文字檔案。請務必將檔案儲存為 .json
副檔名。請務必指定您的 AWS 帳戶 AWS 區域 和您建立混合式啟動的ARN位置。
{
"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
:*"
}
}
}
]
}
-
以管理模 PowerShell 式開啟,然後在建立JSON檔案的目錄中執行「新建」-,IAMRole如下所示建立服務角色。此範例會建立名稱為 SSMServiceRole
的角色。如果您想要的話,可以選擇其他名稱。
New-IAMRole `
-RoleName SSMServiceRole `
-AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
-
使用註冊-IAMRolePolicy 如下所示,允許您建立的服務角色建立工作階段權杖。工作階段字符可讓受管節點具有使用 Systems Manager 執行命令的許可。
(必要) 執行下列命令,以允許受管理節點使用 AWS Systems Manager 服務核心功能。
Register-IAMRolePolicy `
-RoleName SSMServiceRole `
-PolicyArn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
若您為服務角色建立自訂 S3 儲存貯體政策,請執行下列命令以允許 SSM Agent 存取您在政策中指定的儲存貯體。Replace (取代) account-id
以及 my-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 日誌等服務時,您的服務設定檔才需要此政策。
Register-IAMRolePolicy `
-RoleName SSMServiceRole `
-PolicyArn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
繼續進行建立混合啟動以向 Systems Manager 註冊節點。