ステップ 8: (オプション) Session Manager を通して SSH 接続を有効にする - AWS Systems Manager

ステップ 8: (オプション) Session Manager を通して SSH 接続を有効にする

AWS アカウントのユーザーが AWS CLI を使用して、Session Manager を使用しているインスタンスへの Secure Shell (SSH) 接続を確立できるようにすることができます。SSH を使用して接続するユーザーは、Secure Copy Protocol (SCP) を使用してローカルマシンとマネージドインスタンス間でファイルをコピーすることもできます。この機能を使用すると、インバウンドポートを開いたり、要塞ホストを維持したりせずにインスタンスに接続できます。Session Manager を介してインスタンスへの SSH 接続を明示的に無効にすることもできます。

注記

Logging and auditing are not available for Session Manager sessions that connect through port forwarding or SSH. This is because SSH encrypts all session data, and Session Manager only serves as a tunnel for SSH connections.

Session Managerを通して SSH 接続を有効にする

  1. SSH 接続を有効にするマネージドインスタンスで、次の手順を実行します。

  2. SSH を使用してマネージドインスタンスに接続するローカルマシンで、次の手順を実行します。

    • Session Manager プラグイン 1.1.23.0 バージョン以降がインストールされていることを確認します。

      Session Manager プラグインのインストールについては、(オプション) AWS CLI 用の Session Manager Plugin をインストールする を参照してください。

    • SSH 設定ファイルを更新して、Session Manager セッションを開始し、接続を介してすべてのデータを転送するプロキシコマンドを実行できるようにします。

      Linux

      ヒント

      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"
    • マネージドインスタンスへの接続を確立するときに使用する Privacy Enhanced Mail 証明書 (PEM ファイル) または少なくともパブリックキーを作成または確認します。これは、インスタンスにすでに関連付けられているキーでなければなりません。たとえば、EC2 インスタンスの場合、インスタンスを作成したときに作成または選択したキーペアファイル。(セッションを開始するには、コマンドの一部として証明書またはキーへのパスを指定します。SSH を使用してセッションを開始する方法については、セッションの開始 (SSH) を参照してください。)

Session Managerを通して SSH 接続を有効にする

  • オプション 1: https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。ナビゲーションペインで [Policies (ポリシー)] を選択し、Session Manager を介した SSH 接続の開始を許可するユーザーまたはロールのアクセス許可ポリシーを更新します。たとえば、「クイックスタート Session Manager のエンドユーザーポリシー」で作成したユーザークイックスタートポリシーを変更する準備をします。以下の要素をポリシーに追加します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:*:*:instance/instance-id", "arn:aws:ssm:*:*:document/AWS-StartSSHSession" ] } ] }

    オプション 2: AWS Management Console、AWS CLI、または AWS API を使用して、インラインポリシーをユーザーポリシーにアタッチします。

    任意の方法を使用して、オプション 1 のポリシーステートメントを AWS ユーザー、グループ、またはロールのポリシーにアタッチします。

    詳細については、IAM User Guide の「IAM ID アクセス許可の追加と削除」を参照してください。

Session Manager を介して SSH 接続を無効にするには

  • オプション 1: https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。ナビゲーションペインで [ポリシー] を選択し、ユーザーまたはロールのアクセス許可ポリシーを更新して、Session Manager セッションの開始をブロックします。たとえば、「クイックスタート Session Manager のエンドユーザーポリシー」で作成したユーザークイックスタートポリシーを変更する準備をします。次の要素をポリシーに追加するか、ユーザーがセッションを開始するのを許可するアクセス許可を置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession" } ] }

    オプション 2: AWS Management Console、AWS CLI、または AWS API を使用して、インラインポリシーをユーザーポリシーにアタッチします。

    任意の方法を使用して、オプション 1 のポリシーステートメントを AWS ユーザー、グループ、またはロールのポリシーにアタッチします。

    詳細については、IAM User Guide の「IAM ID アクセス許可の追加と削除」を参照してください。