AWS Systems Manager Session Manager - AWS Systems Manager

AWS Systems Manager Session Manager

Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブなワンクリックブラウザベースのシェルや AWS Command Line Interface (AWS CLI) を介して Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、オンプレミスインスタンス、および仮想マシン (VM) を管理できます。Session Manager を使用すると、インバウンドポートを開いたり、踏み台ホストを維持したり、SSH キーを管理したりすることなく、監査可能なインスタンスを安全に管理できます。また、Session 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 ポリシーによって提供されるため、接続時間が大幅に短縮されます。

  • ポート転送

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

  • Windows と Linux の両方でクロスプラットフォームをサポート

    Session Manager は、単一のツールから Windows と Linux の両方にサポートを提供します。たとえば、Linux インスタンスには SSH クライアントを使用し、Windows Server インスタンスには RDP 接続を使用するということは必要ありません。

  • ログ記録と監査のセッションアクティビティ

    組織内の運用上またはセキュリティ上の要件を満たすために、インスタンスに対して行われた接続と、そのインスタンス上で実行されたコマンドの記録を提供する必要があります。組織内のユーザーがセッションアクティビティを開始または終了すると、通知を受け取ることもできます。

    ログ記録および監査機能は、次の AWS サービスとの統合によって提供されます。

    • AWS CloudTrail – AWS CloudTrail は、AWS アカウントで作成された Session Manager API コールに関する情報をキャプチャし、指定した S3 バケットに保存されているログファイルに書き込みます。アカウントのすべての CloudTrail ログに対して 1 つのバケットが使用されています。詳細については、「AWS CloudTrail による AWS Systems Manager API コールのログ記録」を参照してください。

    • Amazon Simple Storage Service – 監査のために選択した S3 バケットにセッションログデータを保存できます。ログデータは、AWS Key Management Service (AWS KMS) キーを使用した暗号化の有無にかかわらず、S3 バケットに送信できます。詳細については、「Amazon S3 を使用してセッションデータをログ記録する (コンソール)」を参照してください。

    • Amazon CloudWatch Logs – CloudWatch Logs を使用すると、さまざまな AWS のサービスのログファイルを監視、保存、およびアクセスできます。セッションログデータを監査のために CloudWatch Logs ロググループに送信できます。ログデータは、AWS 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 アドレスを持たないインスタンスへの接続の有効化を希望する情報セキュリティの専門家。

  • 単一の場所からアクセス権を付与および取り消したり、Windows および Linux インスタンス両方のユーザーに 1 つのソリューションを提供したい管理者。

  • SSH キーを提供せずに、ブラウザまたは AWS CLI からワンクリックでインスタンスに接続したいエンドユーザー。

Session Manager の主な特徴は何ですか。

  • Windows Server と Linux インスタンスの両方のサポート

    Session Manager を使用すると、Amazon Elastic Compute Cloud (EC2) インスタンス、オンプレミスインスタンス、および仮想マシン (VM) への安全な接続を確立できます。サポートされている Windows および Linux オペレーティングシステムのリストについては、「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 plugin をインストールしている必要があります。詳細については、(オプション) AWS CLI 用の Session Manager plugin をインストールする を参照してください。

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

  • IAM アクセスコントロール

    IAM ポリシーを使用することで、組織のどのメンバーがインスタンスに対してセッションを開始するか、またメンバーがどのインスタンスにアクセスできるかを割り当てることができます。インスタンスへの一時的なアクセス権を提供することもできます。たとえば、オンコールエンジニア (またはオンコールエンジニアのグループ) に、彼らのローテーション期間に限って本稼働サーバーへのアクセス権を与える場合があります。

  • ログ記録および監査機能のサポート

    Session Manager は、他の多くの AWS のサービスとの統合により、AWS アカウントのセッション履歴を監査してログに記録するためのオプションを提供します。詳細については、「セッションアクティビティのログ記録と監査」を参照してください。

  • 設定可能なシェルプロファイル

    Session Manager には、セッション内でプリファレンスを設定するためのオプションが用意されています。これらのカスタマイズ可能なプロファイルを使用すると、シェルの設定、環境変数、作業ディレクトリ、セッション開始時の複数のコマンドの実行など、セッション内の設定をカスタマイズできます。

  • お客様のキーデータ暗号化のサポート

    S3 バケットに送信する、または CloudWatch Logs ロググループにストリーミングするセッションデータログを暗号化するように Session Manager を設定できます。セッション中にクライアントマシンとインスタンス間で送信されるデータをさらに暗号化するように Session Manager を設定することもできます。詳細については、「セッションアクティビティのログ記録と監査」および「セッション設定を構成する」を参照してください。

  • パブリック IP アドレスのないインスタンスの AWS PrivateLink サポート

    また、AWS PrivateLink を使用して Systems Manager の VPC エンドポイントを設定し、セッションのセキュリティ保護を強化することもできます。AWS PrivateLink は、マネージドインスタンス、Systems Manager、および Amazon EC2 と Amazon ネットワーク間すべてのネットワークトラフィックを制限します。詳細については、「(オプション) 仮想プライベートクラウドのエンドポイントを作成する」を参照してください。

  • トンネリング

    セッションでは、セッションタイプ SSM ドキュメントを使用して、クライアントマシンのローカルポートとインスタンスのリモートポート間のトラフィック (http やカスタムプロトコルなど) をトンネルします。

  • インタラクティブコマンド

    セッションを使用して単一のコマンドをインタラクティブに実行するセッションタイプ SSM ドキュメントを作成します。これにより、インスタンスでユーザーが実行できる操作を管理する方法が得られます。

セッションとは何ですか。

セッションは、Session Manager を使用して確立されたインスタンスへの接続です。セッションは、クライアント (ユーザー) と、コマンドの入出力をストリーミングするリモートマネージドインスタンスとの間のセキュアな双方向通信チャネルに基づいています。クライアントとマネージドインスタンスとの間のトラフィックは TLS 1.2 を使用して暗号化され、接続の作成リクエストは Sigv4 を使用して署名されます。この双方向通信により、インスタンスへのインタラクティブバッシュと PowerShell アクセスが可能になります。AWS Key Management Service (AWS KMS) キーを使用して、デフォルトの TLS 暗号化よりも強力なデータの暗号化を行うこともできます。

たとえば、John が IT 部門のオンコールエンジニアであるとします。John は、トラブルシューティングが必要な障害や、インスタンスの単純な構成オプションを変更するディレクティブなど、インスタンスにリモート接続する必要がある問題についての通知を受け取ります。John は AWS Systems Manager コンソール、Amazon EC2 コンソール、または AWS CLI を使用してインスタンスに接続するセッションを開始し、タスクの完了に必要なインスタンス上でコマンドを実行してから、セッションを終了します。

John がセッションを開始するための最初のコマンドを送信すると、Session Manager サービスは ID を認証し、IAM ポリシーにより付与されたアクセス許可を検証して、設定 (セッションの許容限度の確認など) を確認します。それから、SSM エージェント にメッセージを送信して双方向接続を開きます。接続の確立後、John が次のコマンドを入力すると、SSM エージェント からのコマンド出力がこの通信チャネルにアップロードされ、ローカルマシンに送り返されます。