

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# ステップ 8: (オプション) Session Manager を通して SSH 接続のアクセス許可を付与および制御する
<a name="session-manager-getting-started-enable-ssh-connections"></a>

AWS アカウント のユーザーに AWS Command Line Interface (AWS CLI) を使用する許可を付与して、AWS Systems Manager の Session Manager が適用されたマネージドノードに Secure Shell (SSH) 接続を確立できるようにします。SSH で接続するユーザーは Secure Copy Protocol (SCP) を使用して自分のローカルマシンとマネージドノード間でファイルをコピーすることもできます。この機能を使って、インバウンドポートを開いたり、踏み台ホストを維持したりすることなく、マネージドノードへ接続できます。

 Session Manager を介して SSH 接続を確立すると、AWS CLI と SSM Agent は TLS 経由で Session Manager エンドポイントへの安全な WebSocket 接続を作成します。SSH セッションは、この暗号化されたトンネル内で実行され、追加のセキュリティレイヤーが提供されます。マネージドノードでインバウンドポートを開く必要はありません。

SSH 接続を有効にした後、AWS Identity and Access Management (IAM) ポリシーを使用してユーザー、グループ、またはロールが Session Manager で SSH 接続を確立することを明示的に許可または拒否できます。

**注記**  
ログ記録は、ポート転送または SSH を介して接続する Session Manager セッションでは使用できません。これは、SSH が AWS CLI と Session Manager エンドポイントの間で確立された安全な TLS 接続内のすべてのセッションデータを暗号化し、Session Manager が SSH 接続のトンネルとしてのみ機能するためです。

**Topics**
+ [Session Manager で SSH 接続を有効にする手順](#ssh-connections-enable)
+ [Session Manager による SSH 接続のユーザーアクセス許可の制御](#ssh-connections-permissions)

## Session Manager で SSH 接続を有効にする手順
<a name="ssh-connections-enable"></a>

マネージドノードで Session Manager を通して SSH 接続を有効にする場合、次の手順を実行します。

**Session Managerで SSH 接続を有効にするには**

1. SSH 接続を有効にするマネージドノードに対して以下の手順を実行します:
   + SSH がマネージドノードに実行されていることを確認します。(ノードのインバウンドポートを閉じることができます)
   + SSM Agent のバージョン 2.3.672.0 以降がマネージドノードにインストールされていることを確認します。

     マネージドノードに SSM Agent のインストールまたは更新の詳細については、以下のトピックをご参照ください:
     + [Windows Server 用の EC2 インスタンスに SSM Agent を手動でインストールおよびアンインストールする](manually-install-ssm-agent-windows.md).
     +  [Linux 用 EC2 インスタンスに SSM Agent を手動でインストールおよびアンインストールする](manually-install-ssm-agent-linux.md) 
     +  [macOS 用の EC2 インスタンスに SSM Agent を手動でインストールおよびアンインストールする](manually-install-ssm-agent-macos.md) 
     +  [ハイブリッド Windows ノードで SSM Agent をインストールする方法](hybrid-multicloud-ssm-agent-install-windows.md) 
     +  [ハイブリッド Linux ノードで SSM Agent をインストールする方法](hybrid-multicloud-ssm-agent-install-linux.md) 
**注記**  
マネージドノードとしてアクティベートしたオンプレミスサーバー、エッジデバイス、仮想マシン (VM) に Session Manager を使用する場合、アドバンストインスタンス層を使用する必要があります。アドバンストインスタンスの詳細については、「[インスタンス層の設定](fleet-manager-configure-instance-tiers.md)」を参照してください。

1. SSH を使用したマネージドノードに接続するローカルマシンで、以下の手順を実行します:
   + Session Manager プラグイン 1.1.23.0 バージョン以降がインストールされていることを確認します。

     Session Manager プラグインのインストールについては、[AWS CLI 用の Session Manager プラグインをインストールする](session-manager-working-with-install-plugin.md) を参照してください。
   + 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'"
         User ec2-user
     ```

      ** 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 ファイル) または少なくとも公開キーを作成または確認します。これはマネージドノードにすでに関連付けされたキーでなければなりません。プライベートキーファイルへのアクセス許可を設定し、お客様のみが読み取りできるようにする必要があります 次のコマンドを使用してプライベートキーファイルのアクセス許可を設定することで、お客様以外のユーザーによる読み取りを拒否できます。

     ```
     chmod 400 {{<my-key-pair>}}.pem
     ```

     例えば、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの場合、インスタンスの作成時に作成または選択したキーペアファイルです。(セッションを開始するには、コマンドの一部として証明書またはキーへのパスを指定します。SSH を使用してセッションを開始する方法については、「[セッションの開始 (SSH)](session-manager-working-with-sessions-start.md#sessions-start-ssh)」を参照してください。）

## Session Manager による SSH 接続のユーザーアクセス許可の制御
<a name="ssh-connections-permissions"></a>

Session Manager で マネージドノードに SSH 接続を有効にしたら、IAM ポリシーでユーザー、グループ、ロールが Session Manager で SSH 接続を確立する権限を許可または拒否できます。

**IAM ポリシーを使用して Session Manager での SSH 接続を許可するには**
+ 以下のいずれかのオプションを使用します。
  + **オプション 1**: IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

    ナビゲーションペインで [**Policies (ポリシー)**] を選択し、Session Manager を介した SSH 接続の開始を許可するユーザーまたはロールのアクセス許可ポリシーを更新します。

    例えば、[クイックスタート Session Manager のエンドユーザーポリシー](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user) で作成したクイックスタートポリシーに次の要素を追加します。各{{リソースプレースホルダーの例}}をユーザー自身の情報に置き換えます。

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ssm:StartSession",
                "Resource": [
                    "arn:aws:ec2:{{us-east-1}}:{{111122223333}}:instance/{{instance-id}}",
                    "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
                ]
            },
            {
                "Effect": "Allow",
                "Action": "ssmmessages:OpenDataChannel",
                "Resource": "arn:aws:ssm:*:*:session/${aws:userid}-*"
            }
        ]
    }
    ```

------
  + **オプション 2**: AWS マネジメントコンソール、AWS CLI、または AWS API を使用して、インラインポリシーをユーザーポリシーにアタッチします。

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

    詳細については、*IAM ユーザーガイド* の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

**IAM ポリシーを使用して Session Manager での SSH 接続を拒否するには**
+ 以下のいずれかのオプションを使用します。
  + **オプション 1**: IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。ナビゲーションペインで [**ポリシー**] を選択し、ユーザーまたはロールのアクセス許可ポリシーを更新して、Session Manager セッションの開始をブロックします。

    例えば、[クイックスタート Session Manager のエンドユーザーポリシー](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user) で作成したクイックスタートポリシーに次の要素を追加します。

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Deny",
                "Action": "ssm:StartSession",
                "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
            },
            {
                "Effect": "Allow",
                "Action": "ssmmessages:OpenDataChannel",
                "Resource": "arn:aws:ssm:*:*:session/${aws:userid}-*"
            }
        ]
    }
    ```

------
  + **オプション 2**: AWS マネジメントコンソール、AWS CLI、または AWS API を使用して、インラインポリシーをユーザーポリシーにアタッチします。

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

    詳細については、*IAM ユーザーガイド* の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。