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 リソース上の別のアクションを自動的に開始する。

注記

Windows Server 2012 またはそれ以前を使用している場合、ログ内のデータが最適にフォーマットされていない可能性があります。最適なログ形式のために、Windows Server 2012 R2 以降の使用をお勧めします。

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

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

AWS CloudTrail を使用してセッションデータを監査する

AWS CloudTrail は、Systems Manager コンソール、AWS CLI、および Systems Manager SDK を介して、セッションの API 呼び出しをキャプチャします。情報は、CloudTrail コンソールで表示したり、指定した Amazon S3 バケットに保存したりすることができます。アカウントのすべての CloudTrail ログに対して 1 つのバケットが使用されています。

詳細については、「AWS CloudTrail を使用した AWS Systems Manager API コールのログ記録」を参照してください。

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

監査の目的で指定した Amazon S3 バケットにセッションログデータを保存できます。デフォルトのオプションでは、ログは暗号化された S3 バケットに送信されます。暗号化は、AWS Key Management Service (AWS KMS) キーまたは Amazon S3 サーバー側暗号化 (SSE) キー (AES-256) のいずれかで、バケットに指定されたキーを使用して実行されます。

重要

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

S3 バケットの暗号化

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

カスタマー管理の CMK

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

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

注記

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

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

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

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

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

  4. [S3 bucket (S3 バケット)] の横にあるチェックボックスをオンにします。

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

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

    注記

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

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

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

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

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

Amazon S3 と S3 バケットの使用の詳細については、「Amazon Simple Storage Service Getting Started Guide」および「Amazon Simple Storage Service Console User Guide」を参照してください。

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

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

次の手順に従って、セッションログデータが CloudWatch Logs ロググループにストリーミングされるように Session Manager を設定します。

注記

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

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

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

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

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

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

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

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

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

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

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

CloudWatch Logs での作業の詳細については、「Amazon CloudWatch Logs User Guide」を参照してください。

Amazon CloudWatch Events を使用してセッションアクティビティを監視する (コンソール)

CloudWatch Events を使用すると、AWS リソースへの変更の発生を検出するルールを設定できます。組織内のユーザーがセッションを開始または終了したタイミングを検出し、たとえば、そのイベントに関する通知を Amazon SNS 経由で受信するなどのルールを作成できます。

Session Manager の CloudWatch Events サポートは、CloudTrail によって記録された API アクションの記録に依存しています。(CloudWatch Events と CloudTrail の統合を使用して、ほとんどの AWS Systems Manager イベントに応答することができます)。

次の手順では、StartSession など、Session Manager API イベントが発生したときに、Amazon Simple Notification Service (Amazon SNS) 経由で通知をトリガーする方法について説明します。

Amazon CloudWatch Events を使用してセッションアクティビティを監視するには (コンソール)

  1. 追跡する Session Manager イベントが発生したとき、通知を送信するために使用する Amazon SNS トピックを作成します。

    詳細については、Amazon Simple Notification Service Developer Guideの「トピックの作成」を参照してください。

  2. CloudWatch Events ルールを作成し、追跡する Session Manager イベントのタイプの Amazon SNS ターゲットを呼び出します。

    ルールの作成方法については、Amazon CloudWatch Events User Guide にある「イベントでトリガーする CloudWatch Events ルールの作成」を参照してください。

    ルールを作成するステップに従うときには、以下のように選択します。

    • [Service Name (サービス名)] で、[EC2 Simple Systems Manager (SSM)] を選択します。

    • [Event Type (イベントタイプ)] で、[CloudTrail 経由の AWS API 呼び出し] を選択します。

    • [Specific operation(s) (特定のオペレーション)] を選択し、通知を受け取る Session Manager のコマンド (一度に 1 つずつ) を入力します。StartSessionResumeSession、および TerminateSession を選択できます (CloudWatch Events は Get* List*、および Describe* コマンドをサポートしていません)。

    • [Targets (ターゲット)] で、[SNS topic (SNS トピック)] を選択します。[Topic (トピック)] で、ステップ 1 で作成した Amazon SNS トピックの名前を選択します。

詳細については、「Amazon CloudWatch Events User Guide」と「Amazon Simple Notification Service Getting Started Guide」を参照してください。