步驟 8:(可選)允許和控制 SSH 連接的權限 Session Manager - AWS Systems Manager

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

步驟 8:(可選)允許和控制 SSH 連接的權限 Session Manager

您可以讓您 AWS 帳戶 中的使用者使用 AWS Command Line Interface (AWS CLI),透過 AWS Systems Manager Session Manager 建立與受管節點的 Secure Shell (SSH) 連線。使用 SSH 連線的使用者也可以在其本機電腦和受管節點,使用 Secure Copy Protocol (SCP) 來複製檔案。您可以使用此功能,不需開啟傳入連接埠或維持堡壘主機,即可連接至受管節點。

允許 SSH 連線後,您可以使用 AWS Identity and Access Management (IAM) 政策,以明確允許或拒絕使用者、群組或角色使用 Session Manager 進行 SSH 連線。

注意

透過連接埠轉送或 SSH 連線的 Session Manager 工作階段無法使用日誌記錄功能。這是因為 SSH 會加密所有工作階段資料,Session Manager 僅用作 SSH 連線的通道。

允許 Session Manager 的 SSH 連線

使用下列步驟透過 Session Manager 在受管節點上允許 SSH 連線。

允許 Session Manager 的 SSH 連線
  1. 在您要啟用 SSH 連線的受管節點,執行下列作業:

  2. 在您要使用 SSH 連接到受管節點的本機機器上,執行下列動作:

    • 確保已安裝 Session Manager 外掛程式的 1.1.23.0 版或更新版本。

      如需安裝 Session Manager 外掛程式的詳細資訊,請參閱 安裝Session Manager外掛程式 AWS CLI

    • 更新 SSH 設定檔可讓開始 Session Manager 工作階段的代理命令得以執行,並透過該連接傳輸所有資料。

      Linux 和 macOS

      提示

      SSH 組態檔案通常位於 ~/.ssh/config

      將以下內容新增至本機機器上的組態檔。

      # SSH over Session Manager host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

      Windows

      提示

      SSH 組態檔案通常位於 C:\Users\<username>\.ssh\config

      將以下內容新增至本機機器上的組態檔。

      # SSH over Session Manager host i-* mi-* ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p"
    • 建立或驗證您擁有隱私增強郵件 (PEM 檔案) 憑證,或至少擁有公有金鑰,可在建立與受管節點的連線時使用。這必須是已與受管節點相關聯的索引鍵。必須設定私有金鑰檔案的許可,確保只有您可以讀取此檔案。您可以使用下列命令來設定私有金鑰檔案的許可,確保只有您可以讀取此檔案。

      chmod 400 <my-key-pair>.pem

      例如,對於 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,則是您在建立執行個體時建立或選取的金鑰對檔案。(您可以將憑證或金鑰的路徑指定為啟動工作階段命令的一部分。如需有關使用 SSH 啟動工作階段的資訊,請參閱 啟動工作階段 (SSH)。)

透過 Session Manager 控制 SSH 連線的使用者許可

透過 Session Manager 在受管節點上啟用 SSH 連線後,您可以使用 IAM 政策來允許或拒絕使用者、群組或角色透過 Session Manager 進行 SSH 連線。

若要使用 IAM 政策允許透過 Session Manager 進行 SSH 連線
  • 使用下列其中一個選項:

    • 選項 1:在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

      在導覽窗格中,選擇 Policies (政策),然後更新您要允許透過 Session Manager 啟動 SSH 連線之使用者或角色的許可政策。

      例如,將下列元素新增至您在 Session Manager的最終使用者政策快速入門 中建立的 Quickstart 政策。將每個範例資源預留位置取代為您自己的資訊。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:region:account-id:instance/instance-id", "arn:aws:ssm:*:*:document/AWS-StartSSHSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } } ] }
    • 選項 2:使用 AWS Management Console、AWS CLI 或 AWS API 將內嵌政策連接到使用者政策。

      使用您選擇的方法,將選項 1 中的政策陳述式連接到 AWS 使用者、群組或角色的政策。

      如需相關資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

若要使用 IAM 政策拒絕透過 Session Manager 進行 SSH 連線
  • 使用下列其中一個選項:

    • 選項 1:在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/。在導覽窗格中,選擇 Policies (政策),然後更新使用者或角色的許可政策,以防止他們啟動 Session Manager 工作階段。

      例如,將下列元素新增至您在 Session Manager的最終使用者政策快速入門 中建立的 Quickstart 政策。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession" } ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }
    • 選項 2:使用 AWS Management Console、AWS CLI 或 AWS API 將內嵌政策連接到使用者政策。

      使用您選擇的方法,將選項 1 中的政策陳述式連接到 AWS 使用者、群組或角色的政策。

      如需相關資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可