セッションアクティビティのログ記録 - AWS Systems Manager

セッションアクティビティのログ記録

Session Manager は、Systems Manager コンソールで現在のセッションと完了したセッションに関する情報を提供するだけでなく、 でのセッションアクティビティのログ記録についてのオプションも提供します AWS アカウント これにより、次のことが可能になります。

  • アーカイブの目的でセッションログを作成し、保存する。

  • Session Manager を使用して、過去 30 日間にインスタンスに行われたすべての接続の詳細を示すレポートを生成する。

  • Amazon Simple Notification Service (Amazon SNS) 通知など、 AWS アカウント のセッションアクティビティの通知を生成します。

  • AWS Lambda 関数の実行、AWS CodePipeline パイプラインの開始、または AWS Systems Manager Run Command ドキュメントの実行など、セッションアクティビティの結果としての AWS リソース上の別のアクションを自動的に開始する。

重要

Session Manager の次の要件と制限事項に注意してください。

  • Session Manager は、セッション設定に応じて、セッション中に入力したコマンドとその出力をログに記録します。パスワードなどの機密データがセッションログに表示されないようにするには、セッション中に機密データを入力するときに次のコマンドを使用することをお勧めします。

    Linux & macOS
    stty -echo; read passwd; stty echo;
    Windows
    $Passwd = Read-Host -AsSecureString
  • Windows Server 2012 またはそれ以前を使用している場合、ログ内のデータが最適にフォーマットされていない可能性があります。最適なログ形式のために、Windows Server 2012 R2 以降の使用をお勧めします。

  • Linux または macOS インスタンスを使用している場合は、スクリーンユーティリティがインストールされていることを確認します。インストールされていない場合、ログデータが切り捨てられることがあります。Amazon Linux、Amazon Linux 2、および Ubuntu Server では、スクリーンユーティリティがデフォルトでインストールされます。スクリーンを手動でインストールするには、Linux のバージョンに応じて、sudo yum install screen または sudo apt-get install screen のいずれかを実行します。

  • ログ記録は、ポート転送または SSH を介して接続する Session Manager セッションでは使用できません。これは、SSH はすべてのセッションデータを暗号化し、Session Manager は SSH 接続のトンネルとしてのみ機能するためです。

セッションデータのログ記録に Amazon S3 または Amazon CloudWatch Logs を使用するために必要なアクセス許可の詳細については、「Session Manager および Amazon S3 および CloudWatch Logs のアクセス許可を持つインスタンスプロファイルを作成する (コンソール)」を参照してください。

Session Manager のログ記録のオプションの詳細については、次のトピックを参照してください。

Amazon CloudWatch Logs を使用してセッションデータをストリーミングする (コンソール)

セッションデータログの連続ストリームを Amazon CloudWatch Logs に送信できます。セッションデータのストリーミングには、ユーザーがセッションで実行したコマンド、コマンドを実行したユーザーの ID、セッションデータが CloudWatch Logs にストリーミングされた時のタイムスタンプなど、重要な詳細情報が含まれます。セッションデータをストリーミングする場合、ログは JSON 形式で、既存のログソリューションとの統合に役立ちます。対話型コマンドでは、セッションデータのストリーミングはサポートされていません。

注記

Windows Server インスタンスからセッションデータをストリーミングするには、PowerShell 5.1 以降がインストールされている必要があります。デフォルトでは、Windows Server 2016 以降には必要な PowerShell バージョンがインストールされています。ただし、Windows Server 2012 と 2012 R2 には、デフォルトで必要な PowerShell バージョンがインストールされていません。Windows Server 2012 または 2012 の R2 インスタンスで PowerShell をまだ更新していない場合は、Run Command を使用して更新できます。Run Command を使用した PowerShell の更新については、「Run Command を使って PowerShell を更新する」を参照してください。

重要

Windows Server インスタンスで PowerShell トランスクリプションポリシー設定が構成されている場合、セッションデータをストリーミングすることはできません。

Amazon CloudWatch Logs を使用してセッションデータをストリーミングするには (コンソール)

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Session Manager] を選択します。

  3. [Preferences (設定)] タブを選択してから、[Edit (編集)] を選択します。

  4. CloudWatch のログ記録で [有効にする] の横にあるチェックボックスをオンにします。

  5. [Stream session logs (セッションログのストリーム)] オプションを選択します。

  6. (推奨) [Allow only encrypted CloudWatch log groups (暗号化された CloudWatch ロググループのみを許可する)] の横にあるチェックボックスをオンにします。このオプションが有効になっている場合、ログデータはロググループに指定されたサーバー側の暗号化キーを使用して暗号化されます。CloudWatch Logs に送信されるログデータを暗号化しない場合は、このチェックボックスをオフにします。ロググループで暗号化が有効になっていない場合も、このチェックボックスをオフにする必要があります。

  7. [CloudWatch Logs] の場合、セッションログのアップロード先である AWS アカウント の既存の CloudWatch Logs ロググループを指定するには、次のいずれかを選択します。

    • セッションログデータを保存するためにアカウントにすでに作成されているテキストボックスにロググループの名前を入力します。

    • ロググループを参照: セッションログデータを保存するためにアカウントですでに作成されているロググループを選択します。

  8. [Save] を選択します。

Amazon S3 を使用してセッションデータをログ記録する (コンソール)

デバッグおよびトラブルシューティングの目的で、指定した Amazon Simple Storage Service (Amazon S3) バケットにセッションログデータを保存することができます。デフォルトのオプションでは、ログは暗号化された Amazon S3 バケットに送信されます。暗号化は、AWS KMS key または Amazon S3 サーバー側暗号化 (SSE) キー (AES-256) のいずれかで、バケットに指定されたキーを使用して実行されます。

重要

仮想ホスティング形式のバケットを Secure Sockets Layer (SSL) で使用する場合、SSL ワイルドカード証明書はピリオドを含まないバケットにのみ一致します。この問題を回避するには、HTTP を使用するか、または独自の証明書検証ロジックを記述します。仮想ホスティング形式のバケットを使用するときは、バケット名にピリオド (「.」) を使用しないことをお勧めします。

Amazon S3 バケットの暗号化

暗号化を使用して Amazon S3 バケットにログを送信するには、バケット上で暗号化を有効にする必要があります。S3 バケットの暗号化の詳細については、「Amazon S3 バケット用の Amazon S3 デフォルト暗号化」を参照してください。

カスタマー管理のキー

ユーザー自身が管理する KMS キーを使用してバケットを暗号化する場合、インスタンスにアタッチされた IAM インスタンスプロファイルには、キーを読み取るための明示的なアクセス許可が必要です。AWS 管理のキーを使用している場合は、インスタンスにこの明示的なアクセス権限は必要ありません。インスタンスプロファイルに CMK 使用のためのアクセスを提供する方法の詳細については、AWS Key Management Service デベロッパーガイドキーユーザーにキーの使用を許可するを参照してください。

Amazon S3 バケットにセッションログを保存するようにSession Manager を設定するには、次の手順に従います。

注記

AWS CLI を使用して、セッションデータ送信先の Amazon S3 バケットを指定したり変更したりすることもできます。詳細については、Session Manager の設定を更新する (コマンドライン) を参照してください。

Amazon S3 を使用してセッションデータをログに記録するには (コンソール)

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Session Manager] を選択します。

  3. [Preferences (設定)] タブを選択してから、[Edit (編集)] を選択します。

  4. [S3 ロギング] で [有効にする] チェックボックスをオンにします。

  5. (推奨) [Allow only encrypted S3 buckets (暗号化された S3 バケットのみを許可する)] の横にあるチェックボックスをオンにします。このオプションが有効になっている場合、ログデータはバケットに指定されたサーバー側の暗号化キーを使用して暗号化されます。Amazon S3 に送信されるログデータを暗号化しない場合は、このチェックボックスをオフにします。S3 バケットで暗号化が有効になっていない場合も、このチェックボックスをオフにする必要があります。

  6. [S3 bucket name (S3 バケット名)] には、次のいずれかを選択します。

    注記

    仮想ホスティング形式のバケットを使用するときは、バケット名にピリオド (「.」) を使用しないことをお勧めします。Amazon S3 バケット命名規則の詳細については、Amazon Simple Storage Service デベロッパーガイドの「バケットの制約と制限」を参照してください。

    • [Choose a bucket name from the list (リストからバケット名を選択)]: アカウントに既に作成された Amazon S3 バケットを選択してセッションログデータを保存します。

    • [Enter a bucket name in the text box (テキストボックスにバケット名を入力)]: セッションログデータを保存するためにアカウントに既に作成されている Amazon S3 バケットの名前を入力します。

  7. (オプション) [S3 key prefix (S3 キープレフィックス)] には、選択したバケットにログを保存する既存のフォルダまたは新しいフォルダの名前を入力します。

  8. [Save] を選択します。

Amazon S3 および Amazon S3 バケットの使用の詳細については、Amazon Simple Storage Service入門ガイドおよび Amazon Simple Storage Service コンソールユーザーガイドを参照してください。

Amazon CloudWatch Logs を使用してセッションデータをログ記録する (コンソール)

Amazon CloudWatch Logs を使用すると、さまざまな AWS のサービスからログファイルを監視、保存、アクセスすることができます。デバッグおよびトラブルシューティングの目的で、セッションログデータを CloudWatch Logs ロググループに送信できます。デフォルトのオプションでは、KMS キーを使用してログデータを暗号化して送信するように設定されていますが、暗号化の有無にかかわらずデータをロググループに送信できます。

セッションの最後にセッションログデータを CloudWatch Logs ロググループに送信するように AWS Systems Manager Session Manager を設定するには、以下の手順を実行します。

注記

AWS CLI を使用して、セッションデータの送信先の CloudWatch Logs ロググループを指定したり変更したりすることもできます。詳細については、Session Manager の設定を更新する (コマンドライン) を参照してください。

Amazon CloudWatch Logs を使用してセッションデータをログ記録するには (コンソール)

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Session Manager] を選択します。

  3. [Preferences (設定)] タブを選択してから、[Edit (編集)] を選択します。

  4. CloudWatch のログ記録で [有効にする] の横にあるチェックボックスをオンにします。

  5. [セッションログをアップロード] オプションを選択します。

  6. (推奨) [Allow only encrypted CloudWatch log groups (暗号化された CloudWatch ロググループのみを許可する)] の横にあるチェックボックスをオンにします。このオプションが有効になっている場合、ログデータはロググループに指定されたサーバー側の暗号化キーを使用して暗号化されます。CloudWatch Logs に送信されるログデータを暗号化しない場合は、このチェックボックスをオフにします。ロググループで暗号化が有効になっていない場合も、このチェックボックスをオフにする必要があります。

  7. [CloudWatch Logs] の場合、セッションログのアップロード先である AWS アカウント の既存の CloudWatch Logs ロググループを指定するには、次のいずれかを選択します。

    • [Choose a log group from the list (リストからロググループを選択する)]: アカウントに既に作成されたロググループを選択してセッションログデータを保存します。

    • [Enter a log group name in the text box (テキストボックスにロググループ名を入力)]: セッションログデータを保存するためにアカウントにすでに作成されているロググループの名前を入力します。

  8. [Save] を選択します。

CloudWatch Logs の使用の詳細については、Amazon CloudWatch Logs ユーザーガイドを参照してください。