本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 5:(選用) 限制對工作階段中命令的存取
您可以透過建立自訂 Session
類型 AWS Systems Manager (SSM) 文件來限制使用者可以在 AWS Systems Manager Session Manager 工作階段中執行的命令。在文件中,您可以定義當使用者啟動工作階段時所執行的命令,以及可以提供給命令的參數。Session
文件 schemaVersion
必須為 1.0,且文件的 sessionType
必須為 InteractiveCommands
。接著,您可以建立 AWS Identity and Access Management (IAM) 政策,只允許使用者存取您定義的 Session
文件。如需使用 IAM 政策來限制對工作階段中命令之存取權的詳細資訊,請參閱 互動式命令的 IAM 政策範例。
只有從 AWS Command Line Interface (AWS CLI) 啟動的工作階段才支援 sessionType
為 InteractiveCommands
的文件。使用者提供自訂文件名稱做為 --document-name
參數值,並使用 --parameters
選項提供任何命令參數值。若要取得有關執行互動式命令的詳細資訊,請參閱啟動工作階段 (互動和非互動式命令)。
使用以下程序建立自訂 Session
類型 SSM 文件,以定義允許使用者執行的命令。
限制對工作階段中命令的存取 (主控台)
限制使用者可以在 Session Manager 工作階段中執行的命令 (主控台)
開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的主控台。https://console.aws.amazon.com/systems-manager/
-
在導覽窗格中,選擇 Documents (文件)。
-
選擇 Create command or session (建立命令或工作階段)。
-
對於 Name (名稱),輸入文件的描述性名稱。
-
對於 Document type (文件類型),請選擇 Session document (工作階段文件)。
-
使用 JSON 或 YAML 輸入定義使用者可在 Session Manager 工作階段中執行之命令的文件內容,如下列範例所示。
-
選擇 Create document (建立文件)。
限制對工作階段中命令的存取 (命令列)
開始之前
如果您尚未準備就緒,請安裝並設定 AWS Command Line Interface (AWS CLI) 或 AWS Tools for PowerShell。如需相關資訊,請參閱安裝或更新 AWS CLI 的最新版本和安裝 AWS Tools for PowerShell。
限制使用者可以在 Session Manager 工作階段中執行的命令 (命令列)
-
為定義使用者可在 Session Manager 工作階段中執行之命令的文件內容建立 JSON 或 YAML 檔案,如下列範例所示。
-
執行下列命令,以使用定義使用者可在 Session Manager 工作階段中執行之命令的內容來建立 SSM 文件。
互動式命令參數和 AWS CLI
使用 AWS CLI 時,您可以透過多種方式提供互動式命令參數。視用於使用 AWS CLI 連線到受管節點的用戶端電腦的作業系統 (OS) 而定,您提供的包含特殊或逸出字元的命令語法可能會有所不同。以下範例說明在使用 AWS CLI 時您可提供命令參數的一些不同方式,以及如何處理特殊字元或逸出字元。
可在 AWS CLI 中為您的命令參數參考存放在 Parameter Store 中的參數,如以下範例所示。
以下範例示範如何搭配使用速記語法與 AWS CLI 來傳遞參數。
您也可以在 JSON 中提供參數,如以下範例所示。
參數也可以存放在 JSON 檔案中,並提供給 AWS CLI,如下列範例所示。如需有關在檔案中使用 AWS CLI 參數的詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的從檔案中載入 AWS CLI 參數。
{ "command": [ "
my command
" ] }
您也可以從 JSON 輸入檔案中產生 AWS CLI 骨架,如以下範例所示。如需關於從 JSON 輸入檔案產生 AWS CLI skeleton 的詳細資訊,請參閱 AWS Command Line Interface使用者指南中的從 JSON 或 YAML 輸入檔案產生 AWS CLI Skeleton 及輸入參數。
{ "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
" ] } ] }