本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 5:(選用) 限制對工作階段中命令的存取
您可以限制使用者可以在 中執行的命令 AWS Systems Manager Session Manager 工作階段,方法是使用自訂Session
類型 AWS Systems Manager (SSM) 文件。在文件中,您可以定義當使用者啟動工作階段時所執行的命令,以及可以提供給命令的參數。Session
文件 schemaVersion
必須為 1.0,且文件的 sessionType
必須為 InteractiveCommands
。然後,您可以建立 AWS Identity and Access Management (IAM) 政策,讓使用者只能存取您定義的Session
文件。如需使用IAM政策限制對工作階段中命令的存取的詳細資訊,請參閱 互動式命令的 IAM 政策範例。
具有 sessionType
的 文件InteractiveCommands
僅支援從 AWS Command Line Interface () 啟動的工作階段AWS CLI。使用者提供自訂文件名稱做為 --document-name
參數值,並使用 --parameters
選項提供任何命令參數值。若要取得有關執行互動式命令的詳細資訊,請參閱啟動工作階段 (互動和非互動式命令)。
使用下列程序建立自訂Session
類型SSM文件,以定義允許使用者執行的命令。
限制對工作階段中命令的存取 (主控台)
若要限制使用者可在 中執行的命令 Session Manager 工作階段 (主控台)
在 開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 -
在導覽窗格中,選擇 Documents (文件)。
-
選擇 Create command or session (建立命令或工作階段)。
-
對於 Name (名稱),輸入文件的描述性名稱。
-
對於 Document type (文件類型),請選擇 Session document (工作階段文件)。
-
輸入您的文件內容,定義使用者可以在 中執行的命令 Session Manager 工作階段,JSONYAML如下列範例所示。
-
選擇 Create document (建立文件)。
限制對工作階段中命令的存取 (命令列)
開始之前
如果您尚未安裝,請安裝並設定 AWS Command Line Interface (AWS CLI) 或 AWS Tools for PowerShell。如需相關資訊,請參閱安裝或更新 AWS CLI的最新版本和安裝 AWS Tools for PowerShell。
若要限制使用者可在 中執行的命令 Session Manager 工作階段 (命令列)
-
為您的文件內容建立 JSON或 YAML 檔案,以定義使用者可在 中執行的命令 Session Manager 工作階段,如下列範例所示。
-
執行下列命令,以使用定義使用者可在 中執行之命令的內容來建立SSM文件 Session Manager 工作階段。
互動式命令參數和 AWS CLI
使用 AWS CLI時,您可以透過多種方式提供互動式命令參數。根據您用來使用 連線至受管節點的用戶端機器作業系統 (OS) AWS CLI,您為包含特殊或逸出字元的命令提供的語法可能會有所不同。下列範例顯示使用 時,您可以提供命令參數的一些不同方式 AWS CLI,以及如何處理特殊或逸出字元。
存放在 中的參數 Parameter Store 可以在 中參考命令參數 AWS CLI ,如下列範例所示。
以下範例示範如何搭配使用速記語法與 AWS CLI 來傳遞參數。
您也可以在 中提供參數JSON,如下列範例所示。
參數也可以儲存在 JSON 檔案中,並提供給 AWS CLI ,如下列範例所示。如需有關在檔案中使用 AWS CLI 參數的詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的從檔案中載入 AWS CLI 參數。
{ "command": [ "
my command
" ] }
您也可以從JSON輸入檔案產生 AWS CLI 骨架,如下列範例所示。如需從JSON輸入檔案產生骨 AWS CLI 架的詳細資訊,請參閱 AWS Command Line Interface 使用者指南 中的從 JSON或輸入檔案產生 AWS CLI 骨架和YAML輸入參數。
{ "Target": "
instance-id
", "DocumentName": "MyInteractiveCommandDocument
", "Parameters": { "command": [ "my command
" ] } }
若要逸出引號內的字元,您必須將其他反斜線新增至逸出字元,如下列範例所示。
如需有關在 AWS CLI中搭配使用引號與命令參數的詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的在 AWS CLI中搭配使用引號與字串。
互動式命令的 IAM 政策範例
您可以建立IAM政策,讓使用者只能存取您定義的Session
文件。這限制了使用者可在 中執行的命令 Session Manager 工作階段,僅傳送至自訂Session
類型SSM文件中定義的命令。
- 允許使用者在單一受管節點上執行互動式命令
-
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ssm:StartSession", "Resource":[ "arn:aws:ec2:
region
:987654321098
:instance/i-02573cafcfEXAMPLE
", "arn:aws:ssm:region
:987654321098
:document/exampleAllowedSessionDocument
" ] } ] } - 允許使用者在所有受管節點上執行互動式命令
-
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ssm:StartSession", "Resource":[ "arn:aws:ec2:
us-west-2
:987654321098
:instance/*", "arn:aws:ssm:us-west-2
:987654321098
:document/exampleAllowedSessionDocument
" ] } ] } - 允許使用者在所有受管節點上執行多個互動式命令
-
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ssm:StartSession", "Resource":[ "arn:aws:ec2:
us-west-2
:987654321098
:instance/*", "arn:aws:ssm:us-west-2
:987654321098
:document/exampleAllowedSessionDocument
", "arn:aws:ssm:us-west-2
:987654321098
:document/exampleAllowedSessionDocument2
" ] } ] }