AWS Systems Manager Session Manager - AWS Systems Manager

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 はどのように組織にとってメリットになりますか?

Session Manager は、以下の利点を提供します。

  • IAM ポリシーを使用してマネージドノードの一元化アクセス制御

    管理者はマネージドノードのアクセスを許可および取り消す場所は1カ所あります。AWS Identity and Access Management (IAM) ポリシーのみを使用して、Session Manager の使用とアクセス可能なマネージドノードにおいて、組織内で対象となる個々のユーザーまたはグループを管理することができます。

  • インバウンドポートを開いたり、踏み台ホストや SSH キーを管理したりする必要はありません

    マネージドノードのインバウンド SSH ポートとリモート・パワーシェル ポートを開いたままにした場合、エンティティが未許可または悪意のあるコマンドをマネージドノード上で実行するリスクが大幅に増加します。Session Manager はこれらのインバウンド ポートを塞ぎ、SSH キーと証明書の管理、踏み台ホスト、ジャンプボックスの管理からユーザーを解放して、セキュリティ体制の向上に役立ちます。

  • コンソールと CLI からワンクリックでマネージドノードへアクセス

    AWS Systems Manager コンソール、または Amazon EC2 コンソールを使用すると、ワンクリックでセッションを開始できます。AWS CLI を使用して、1 つのコマンドまたは一連のコマンドを実行するセッションを開始することもできます。マネージドノードへのアクセス権限はSSH キーやその他メカニズムではなく、IAM ポリシーによって付与されるため、接続時間が大幅に短縮されます。

  • ポート転送

    マネージドノード内の任意のポートをクライアントのローカルポートにリダイレクトします。その後、ローカルポートに接続してノード内で実行されているサーバーアプリケーションにアクセスします。

  • 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 EventBridgeAmazon 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 プラグインをインストールする を参照してください。

    Session Manager SDK は、アプリケーションデベロッパーがフロントエンドアプリケーションの構築を可能にするライブラリとサンプルコードで構成されています。このアプリケーションには、マネージドノードへの接続に地元の Session Manager を使用する内部ユーザー用のカスタムシェルやセルフサービスポータルが含まれています。開発者およびパートナーは、Session Manager API を使用して、Session Manager をクライアントサイドのツールまたは Automation ワークフローに統合できます。カスタムソリューションを構築することもできます。

  • 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 ネットワーク間すべてのネットワークトラフィックを制限します。詳細については、「(オプション) インターフェイス VPC エンドポイントポリシーの作成」を参照してください。

  • トンネリング

    セッションの際、セッションタイプ 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 からのコマンド出力がこの通信チャネルにアップロードされ、ローカルマシンに送り返されます。