ステップ 8: (オプション) Session Manager を通して SSH 接続を有効にする
AWS アカウントのユーザーが Session Manager を使用して、AWS Command Line Interface (AWS CLI) を使用しているインスタンスへの Secure Shell (SSH) 接続を確立できるようにすることができます。SSH を使用して接続するユーザーは、Secure Copy Protocol (SCP) を使用してローカルマシンとマネージドインスタンス間でファイルをコピーすることもできます。この機能を使用すると、インバウンドポートを開いたり、要塞ホストを維持したりせずにインスタンスに接続できます。Session Manager を介してインスタンスへの SSH 接続を明示的に無効にすることもできます。
ログ記録は、ポートフォワーディングまたは SSH を介して接続する Session Manager セッションでは使用できません。これは、SSH はすべてのセッションデータを暗号化し、Session Manager は SSH 接続のトンネルとしてのみ機能するためです。
Session Managerを通して SSH 接続を有効にする
-
SSH 接続を有効にするマネージドインスタンスで、次の手順を実行します。
-
インスタンスで SSH が実行されていることを確認します。(インスタンスのインバウンドポートを閉じることができます。)
-
SSM エージェント バージョン 2.3.672.0 以降がインスタンスにインストールされていることを確認します。
インスタンスへの SSM エージェント のインストールまたは更新については、以下のトピックを参照してください。
注記 マネージドインスタンスとしてアクティブ化したオンプレミスサーバーおよび仮想マシン (VM) で Session Manager を使用するには、アドバンストインスタンス層を使用する必要があります。アドバンストインスタンスの詳細については、「アドバンストインスタンス層の有効化」を参照してください。
-
-
SSH を使用してマネージドインスタンスに接続するローカルマシンで、次の手順を実行します。
-
Session Manager プラグイン 1.1.23.0 バージョン以降がインストールされていることを確認します。
Session Manager プラグインのインストールについては、(オプション) AWS CLI 用の Session Manager plugin をインストールする を参照してください。
-
SSH 設定ファイルを更新して、Session Manager セッションを開始し、接続を介してすべてのデータを転送するプロキシコマンドを実行できるようにします。
Linuxと macOS
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 ファイル) または少なくともパブリックキーを作成または確認します。これは、インスタンスにすでに関連付けられているキーでなければなりません。たとえば、Amazon EC2 (Amazon Elastic Compute Cloud) インスタンスの場合、インスタンスを作成したときに作成または選択したキーペアファイル。(セッションを開始するには、コマンドの一部として証明書またはキーへのパスを指定します。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:
region
:987654321098
:instance/i-02573cafcfEXAMPLE
", "arn:aws:ssm:*:*:document/AWS-StartSSHSession" ] } ] }オプション 2: AWS マネジメントコンソール、AWS CLI、または AWS API を使用して、インラインポリシーをユーザーポリシーにアタッチします。
任意の方法を使用して、オプション 1 のポリシーステートメントを AWS ユーザー、グループ、またはロールのポリシーにアタッチします。
詳細については、IAM ユーザーガイド の「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 マネジメントコンソール、AWS CLI、または AWS API を使用して、インラインポリシーをユーザーポリシーにアタッチします。
任意の方法を使用して、オプション 1 のポリシーステートメントを AWS ユーザー、グループ、またはロールのポリシーにアタッチします。
詳細については、IAM ユーザーガイド の「IAM ID アクセス許可の追加と削除」を参照してください。