AWS Systems Manager Session Manager
Session Manager はフルマネージド AWS Systems Manager 機能です。Session Manager を使用すると、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、エッジデバイス、オンプレミスサーバー、仮想マシン (VM) を管理できます。ワンクリックのブラウザベースのインタラクティブシェルまたは AWS Command Line Interface (AWS CLI) を使用できます。Session Manager は安全なノード管理を実現し、インバウンドポートを開いたり、踏み台ホストを維持したり、SSH キーを管理したりする必要はありません。また Session Manager はマネージドノードの制御されたアクセス、厳格なセキュリティプラクティス、ノードアクセス詳細があるログを要件とする社内ポリシーの尊守を実現しつつ、エンドユーザーが簡単なワンクリックのクロスプラットフォームを使用してマネージドノードにアクセスできるようにします。Session Manager の使用を開始するには、Systems Manager コンソール
Session Manager はどのように組織にとってメリットになりますか?
Session Manager は、以下の利点を提供します。
-
IAM ポリシーを使用してマネージドノードの一元化アクセス制御
管理者はマネージドノードのアクセスを許可および取り消す場所は1カ所あります。AWS Identity and Access Management (IAM) ポリシーのみを使用して、Session Manager の使用とアクセス可能なマネージドノードにおいて、組織内で対象となる個々のユーザーまたはグループを管理することができます。
-
インバウンドポートを開いたり、踏み台ホストや SSH キーを管理したりする必要はありません
マネージドノードのインバウンド SSH ポートとリモート PowerShell ポートを開いたままにした場合、エンティティが未許可または悪意のあるコマンドをマネージドノード上で実行するリスクが大幅に増加します。Session Manager はこれらのインバウンドポートを塞ぎ、SSH キーと証明書の管理、踏み台ホスト、ジャンプボックスの管理からユーザーを解放して、セキュリティ体制の向上に役立ちます。
-
コンソールと CLI からワンクリックでマネージドノードへアクセス
AWS Systems Manager コンソール、または Amazon EC2 コンソールを使用すると、ワンクリックでセッションを開始できます。AWS CLI を使用して、1 つのコマンドまたは一連のコマンドを実行するセッションを開始することもできます。マネージドノードへのアクセス権限はSSH キーやその他メカニズムではなく、IAM ポリシーによって付与されるため、接続時間が大幅に短縮されます。
-
ハイブリッドおよびマルチクラウド環境で Amazon EC2 インスタンスと非 EC2 マネージドノードの両方に接続する
ハイブリッドおよびマルチクラウド環境では、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスと非 EC2 ノードの両方に接続できます。
Session Manager を使用して EC2 以外のノードに接続するには、最初にアドバンストインスタンス層をアクティブ化する必要があります。アドバンストインスタンス層の使用には料金が発生します。ただし、Session Manager を使用して EC2 インスタンスに接続するための追加料金はありません。詳細については、インスタンス層の設定 を参照してください。
-
ポート転送
マネージドノード内の任意のポートをクライアントのローカルポートにリダイレクトします。その後、ローカルポートに接続してノード内で実行されているサーバーアプリケーションにアクセスします。
-
Windows、Linux、および macOS のクロスプラットフォームサポート
Session Manager は、Windows、Linux、および macOS に対して単一のツールからサポートを提供します。例えば、Linux と macOS のマネージドノードには SSH クライアントを使用する必要はなく、Windows Server のマネージドノードには RDP 接続も不要です。
-
「セッションアクティビティのログ記録」
組織内で運用上またはセキュリティ上の要件を満たすため、マネージドノードへの接続記録と実行されたコマンドの記録を提出しなければならない場合があります。組織内のユーザーがセッションアクティビティを開始または終了すると、通知を受け取ることもできます。
ログ記録機能は、次の AWS のサービスとの統合によって提供されます。
-
AWS CloudTrail – AWS CloudTrail は、AWS アカウント で行われた Session Manager API コールに関する情報をキャプチャし、指定した Amazon Simple Storage Service (Amazon S3) バケットに保存されているログファイルに書き込みます。アカウントのすべての CloudTrail ログに対して 1 つのバケットが使用されています。詳細については、「AWS Systems Manager による AWS CloudTrail API コールのログ記録」を参照してください。
-
Amazon Simple Storage Service - デバッグおよびトラブルシューティングの目的で、選択した Amazon S3 バケットにセッションログデータを保存することができます。ログデータは、AWS KMS key を使用した暗号化の有無にかかわらず、Amazon S3 バケットに送信できます。詳しくは、「Amazon S3 を使用してセッションデータをログ記録する (コンソール)」を参照してください。
-
Amazon CloudWatch Logs – CloudWatch Logs を使用すると、さまざまな AWS のサービスのログファイルを監視、保存、およびアクセスできます。デバッグおよびトラブルシューティングの目的で、セッションログデータを CloudWatch Logs ロググループに送信できます。ログデータは、KMS キーを使用した AWS KMS 暗号化の有無にかかわらずロググループに送信できます。詳細については、「Amazon CloudWatch Logs を使用してセッションデータをログ記録する (コンソール)」を参照してください。
-
Amazon EventBridge と Amazon Simple Notification Service – EventBridge では、指定した AWS リソースに変更がいつ発生したかを検出するルールを設定できます。組織内のユーザーがセッションを開始または停止したタイミングを検出し、そのイベントに関する通知を Amazon SNS 経由で (テキストまたは E メールメッセージなど) 受信するルールを作成できます。CloudWatch イベントを設定して、他の応答を開始することもできます。詳細については、「Amazon EventBridge を使用してセッションアクティビティをモニタリングする (コンソール)」を参照してください。
注記
ログ記録は、ポート転送または SSH を介して接続する Session Manager セッションでは使用できません。これは、SSH はすべてのセッションデータを暗号化し、Session Manager は SSH 接続のトンネルとしてのみ機能するためです。
-
Session Manager はどのようなユーザーに適していますか?
-
セキュリティの体制を強化し、マネージドノードのアクセス制御を一元化することで運用のオーバーヘッドを削減し、インバウンドノードアクセスを削減することを目指すすべての AWS カスタマー。
-
マネージドノードのアクセスとアクティビティの監視と追跡、マネージドノードのインバウンド ポートの閉鎖、パブリック IP アドレスがないマネージドノードへの接続許可を希望する情報セキュリティの専門家。
-
単一の場所からアクセス権の付与と取り消しと、Linux、macOS および Windows Server のマネージドノードのユーザーに 1 つのソリューションの提供を希望する管理者。
-
ブラウザまたは AWS CLI からワンクリックかつSSH キーを提供せずにマネージドノードに接続を希望するユーザー。
Session Manager の主な特徴は何ですか。
-
Windows Server、Linux および macOS のマネージドノードを対象にしたサポート
Session Manager では Amazon Elastic Compute Cloud (EC2) インスタンス、エッジデバイス、オンプレミスサーバー、仮想マシン (VM) への安全な接続を確立できます。サポートされているオペレーティングシステムタイプのリストについては、「Session Manager を設定する」を参照してください。
注記
オンプレミスマシンの Session Manager サポートは、アドバンストインスタンス層に対してのみ提供されています。詳細については、アドバンストインスタンス層を有効にするには を参照してください。
-
コンソール、CLI、および SDK の Session Manager 機能へのアクセス
次の方法で Session Manager を使用できます。
AWS Systems Manager コンソールには、管理者とエンドユーザーの両方に向けたすべての Session Manager 機能へのアクセスが含まれています。セッションに関連するタスクは、すべて Systems Manager コンソールを使用して実行できます。
Amazon EC2 コンソールは、エンドユーザーがセッションアクセス許可を付与されている EC2 インスタンスに接続できるようにします。
AWS CLI には、エンドユーザー向けの Session Manager 機能へのアクセスが含まれています。AWS CLI を使用すると、セッションを開始したり、セッションのリストを表示したり、セッションを完全に終了させることができます。
注記
AWS CLI を使用してセッションコマンドを実行するには、CLI のバージョン 1.16.12 (またはそれ以降) を使用していて、ローカルマシンに Session Manager プラグインがインストールされている必要があります。詳細については、AWS CLI 用の Session Manager プラグインをインストールする を参照してください。GitHub でプラグインを表示するには、「session-manager-plugin
」を参照してください。 -
IAM アクセスコントロール
IAM ポリシーにより、組織のどのメンバーがマネージドノードにセッションを開始できるか、およびどのノードにアクセスできるかについて管理できます。マネージドノードへの一時的なアクセス権を付与することもできます。たとえば、オンコールエンジニア (またはオンコールエンジニアのグループ) に、彼らのローテーション期間に限って本稼働サーバーへのアクセス権を与える場合があります。
-
ログ記録のサポート
Session Manager は、他の多くの AWS のサービスとの統合により、AWS アカウント内のセッション履歴をログに記録するためのオプションを提供します。詳細については、「セッションアクティビティのログ記録」およびセッションロギングの有効化と無効化を参照してください。
-
設定可能なシェルプロファイル
Session Manager には、セッション内でプリファレンスを設定するためのオプションが用意されています。これらのカスタマイズ可能なプロファイルを使用すると、シェルの設定、環境変数、作業ディレクトリ、セッション開始時の複数のコマンドの実行など、セッション内の設定をカスタマイズできます。
-
お客様のキーデータ暗号化のサポート
Amazon Simple Storage Service (Amazon S3) バケットに送信する、または CloudWatch Logs ロググループにストリームするセッションデータログを暗号化するように、Session Manager を設定できます。セッション中にクライアントマシンとマネージドノード間で送信されるデータをさらに暗号化するように Session Manager を設定することもできます。詳細については、「セッションロギングの有効化と無効化」および「セッション設定を構成する」を参照してください。
-
パブリック IP アドレスのないマネージドノード用の AWS PrivateLink サポート
また、AWS PrivateLink を使用して Systems Manager の VPC エンドポイントを設定し、セッションのセキュリティ保護を強化することができます。AWS PrivateLink は、マネージドノード、Systems Manager、Amazon EC2 と Amazon ネットワーク間すべてのネットワークトラフィックを制限します。詳細については、「Systems Manager のために VPC エンドポイントを使用して EC2 インスタンスのセキュリティを強化する」を参照してください。
-
トンネリング
セッションの際、セッションタイプ AWS Systems Manager (SSM) ドキュメントを使用して、クライアントマシンのローカルポートとマネージドノードのリモートポート間のトラフィック (http またはカスタムプロトコルなど) をトンネルします。
-
インタラクティブコマンド
セッションを使用して単一のコマンドをインタラクティブに実行するセッションタイプ SSM ドキュメントを作成します。これにより、マネージドノードでユーザーができる操作を管理する手段が得られます。
セッションとは何ですか。
セッションは Session Manager を使用してマネージドノードに確立された接続です。セッションは、クライアント (お客様) とコマンドの入出力をストリーミングするリモートマネージドノードとの間の安全な双方向通信チャネルに基づいています。クライアントとマネージドノード間のトラフィックは TLS 1.2 を使用して暗号化され、接続の作成リクエストは Sigv4 を使用して署名されます。この双方向通信はマネージドノードへのインタラクティブ・バッシュとパワーシェル アクセスが可能になります。AWS Key Management Service (AWS KMS) キーを使用して、デフォルトの TLS 暗号化よりも強力なデータの暗号化を行うこともできます。
たとえば、John が IT 部門のオンコールエンジニアであるとします。彼はトラブルシューティングが必要な障害、またはノードへの簡単な構成オプションを変更するディレクティブなど、マネージドノードにリモート接続を必要とする問題について、通知を受けます。John は AWS Systems Manager コンソール、Amazon EC2 コンソール、または AWS CLI を使用しマネージドノードに接続するセッションを開始し、タスクの完了に必要なコマンドをノード上で実行したらセッションを終了します。
John がセッションを開始するための最初のコマンドを送信すると、Session Manager サービスは ID を認証し、IAM ポリシーにより付与されたアクセス権限を検証して、設定 (セッションの許容限度の確認など) を確認します。それから、SSM Agent にメッセージを送信して双方向接続を開きます。接続の確立後、John が次のコマンドを入力すると、SSM Agent からのコマンド出力がこの通信チャネルにアップロードされ、ローカルマシンに送り返されます。