「CloudWatch Logs へのイベントの送信」 - AWS CloudTrail

「CloudWatch Logs へのイベントの送信」

イベントを CloudWatch Logs に送信するように証跡を設定すると、CloudTrail は証跡設定に一致するイベントのみを送信します。たとえば、データイベントのみを送信するように設定した場合、証跡はデータイベントのみを CloudWatch Logs ロググループに送信します。CloudTrail は、CloudWatch Logs へのデータ、インサイト、および管理イベントの送信をサポートします。詳細については、「CloudTrail ログファイルの使用」を参照してください。

注記

管理アカウントのみが、コンソールを使用して、組織の証跡用に CloudWatch Logs のロググループを設定できます。委任された管理者は、AWS CLI や CloudTrail の CreateTrail または UpdateTrail API オペレーションを使用して CloudWatch Logs のロググループを設定できます。

CloudWatch Logs のロググループにイベントを送信するには

  • IAM ロールを作成または指定するための十分なアクセス許可があることを確認してください。詳細については、「CloudTrail コンソールで Amazon CloudWatch Logs 情報を表示および設定するアクセス許可を付与する」を参照してください。

  • AWS CLI を使用して CloudWatch Logs ロググループを設定する場合は、指定したロググループに CloudWatch Logs ログストリームを作成し、そのログストリームに CloudTrail イベントを配信するための十分なアクセス許可がアタッチされていることを確認します。詳細については、「ポリシードキュメントを作成する」を参照してください。

  • 新しい証跡を作成するか、既存の証跡を指定します。詳細については、「コンソールで証跡を作成および更新する」を参照してください。

  • ロググループを作成するか、既存のロググループを指定します。

  • IAM ロールを指定します。組織の証跡の既存の IAM ロールを変更する場合は、組織の証跡のログ記録を許可するように手動でポリシーを更新する必要があります。詳細については、このポリシー例と「組織の証跡の作成」を参照してください。

  • ロールポリシーをアタッチするか、デフォルトを使用します。

コンソールを使用して CloudWatch Logs のモニタリングを設定する

AWS Management Console を使用して、証跡から CloudWatch Logs にモニタリング用のイベントを送信するよう設定できます。

ロググループを作成するか、既存のロググループを指定する

CloudTrail では、ログイベントの配信エンドポイントとして、CloudWatch Logs ロググループが使用されます。ユーザーは、ロググループを作成するか、既存のロググループを指定することができます。

ロググループを作成または既存のロググループを指定するには
  1. CloudWatch Logs 統合を設定するのに十分なアクセス許可を持つ管理ユーザーまたはロールを使用してログインしていることを確認してください。詳細については、「CloudTrail コンソールで Amazon CloudWatch Logs 情報を表示および設定するアクセス許可を付与する」を参照してください。

    注記

    管理アカウントのみが、コンソールを使用して、組織の証跡用に CloudWatch Logs のロググループを設定できます。委任された管理者は、AWS CLI や CloudTrail の CreateTrail または UpdateTrail API オペレーションを使用して CloudWatch Logs のロググループを設定できます。

  2. CloudTrail コンソール (https://console.aws.amazon.com/cloudtrail/) を開きます。

  3. 証跡名を選択します。すべてのリージョンに適用される証跡を選択した場合は、その証跡の作成元のリージョンにリダイレクトされます。ロググループを作成することもできますし、証跡と同じリージョン内の既存のロググループを選択することもできます。

    注記

    すべてのリージョンに適用される証跡では、すべてのリージョンのログファイルが、指定された CloudWatch Logs ロググループに送信されます。

  4. [CloudWatch Logs] で、[編集] を選択します。

  5. CloudWatch Logs で [有効] を選択します。

  6. [ロググループ名] で、[新規] を選択して新しいロググループを作成するか、[既存] を選択して既存のロググループを使用します。[New] を選択した場合、CloudTrail は新しいロググループの名前を指定します。または、自分で名前を入力できます。命名の詳細については、「CloudTrail の CloudWatch ロググループとログストリームの名前付け」を参照してください。

  7. [Existing] を選択した場合、ドロップダウンリストからロググループを選択します。

  8. [ロール名] で [新規] を選択して、CloudWatch Logs にログを送信するためのアクセス許可のための新しい IAM ロールを作成します。[Existing] を選択して、ドロップダウンリストから既存の IAM ロールを選択します。新しいロールまたは既存のロールのポリシーステートメントは、[ポリシードキュメント] を展開すると表示されます。このロールの詳細については、「CloudTrail がモニタリングに CloudWatch Logs を使用するためのロールポリシードキュメント」を参照してください。

    注記

    証跡を設定する際には、別のアカウントに属している S3 バケットや SNS トピックを選択することもできます。ただし、CloudTrail から CloudWatch Logs ロググループにイベントを配信する場合は、現在のアカウント内に存在するロググループを選択する必要があります。

  9. [Save changes] (変更の保存) をクリックします。

IAM ロールを指定する

ログストリームへのイベント配信のために CloudTrail に割り当てるロールを指定できます。

ロールを指定するには
  1. デフォルトでは、CloudTrail_CloudWatchLogs_Role が指定されます。デフォルトのロールポリシーには、指定したロググループ内に CloudWatch Logs ログストリームを作成し、そのログストリームに CloudTrail イベントを配信するための必要なアクセス許可がアタッチされています。

    注記

    組織の証跡のロググループにこのロールを使用する場合は、ロールを作成した後に手動でポリシーを変更する必要があります。詳細については、このポリシー例と「組織の証跡の作成」を参照してください。

    1. ロールを検証するには、AWS Identity and Access Management コンソールへ移動します (https://console.aws.amazon.com/iam/)。

    2. [Roles]、[CloudTrail_CloudWatchLogs_Role] の順に選択します。

    3. [アクセス許可] タブからポリシーを展開して、その内容が表示されます。

  2. 別のロールを指定することもできますが、そのロールを使用して CloudWatch Logs にイベントを送信する場合は、必要なロールポリシーを既存のロールにアタッチする必要があります。詳細については、「CloudTrail がモニタリングに CloudWatch Logs を使用するためのロールポリシードキュメント」を参照してください。

CloudWatch コンソールでのイベントの表示

CloudWatch Logs ロググループにイベントを送信するように証跡を設定したら、CloudWatch コンソールでイベントを表示することができます。CloudTrail は、通常、イベントを API コールからロググループへ平均 5 分以内に配信します。この時間は保証されません。詳細については、「AWS CloudTrail サービスレベルアグリーメント」をご覧ください。

CloudWatch コンソールでのイベントを表示するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[ログ][ロググループ] の順に選択します。

  3. 証跡用に指定したロググループを選択します。

  4. 表示するログストリームを選択します。

  5. 証跡によって記録されたイベントの詳細を表示するには、イベントを選択します。

注記

CloudWatch コンソールの [時刻 (UTC)] 列には、イベントがロググループに配信された時刻が表示されます。イベントが CloudTrail によってログに記録された実際の時刻を確認するには、eventTime フィールドを参照してください。

AWS CLI を使用して CloudWatch Logs のモニタリングを設定する

AWS CLI を使用して、CloudTrail から CloudWatch Logs にモニタリング用のイベントを送信するよう設定できます。

ロググループを作成する

  1. 既存のロググループがない場合は、CloudWatch Logs create-log-group コマンドを使用して、ログイベントの配信エンドポイントとしての CloudWatch Logs ロググループを作成します。

    aws logs create-log-group --log-group-name name

    次の例では、CloudTrail/logs という名前のロググループが作成されます。

    aws logs create-log-group --log-group-name CloudTrail/logs
  2. ロググループの Amazon リソースネーム (ARN) を取得します。

    aws logs describe-log-groups

ロールの作成

CloudWatch Logs ロググループにイベントを送信できるようにするための、CloudTrail 用のロールを作成します。IAM の create-role コマンドには、2 つのパラメータがあります。1 つはロール名で、もう 1 つは、JSON 形式のロールポリシー割り当てドキュメントへのファイルパスです。使用するポリシードキュメントによって、CloudTrail に AssumeRole アクセス許可が付与されます。create-role コマンドを実行すると、必要なアクセス許可を持ったロールが作成されます。

ポリシードキュメントを含んだ JSON ファイルを作成するには、テキストエディタを開き、assume_role_policy_document.json という名前のファイルに次のポリシーコンテンツを保存します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

次のコマンドを実行して、AssumeRole アクセス許可を使用した CloudTrail 用のロールを作成します。

aws iam create-role --role-name role_name --assume-role-policy-document file://<path to assume_role_policy_document>.json

コマンドが完了したら、出力内のロール ARN を書き留めておきます。

ポリシードキュメントを作成する

CloudTrail 用に、次のロールポリシードキュメントを作成します。指定したロググループ内に CloudWatch Logs ログストリームを作成し、そのログストリームに CloudTrail イベントを配信するための必要なアクセス許可は、このドキュメントによって CloudTrail に付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream2014110", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:region:accountID:log-group:log_group_name:log-stream:accountID_CloudTrail_region*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:accountID:log-group:log_group_name:log-stream:accountID_CloudTrail_region*" ] } ] }

role-policy-document.json という名前のファイルにポリシードキュメントを保存します。

組織の証跡にも使用される可能性があるポリシーを作成している場合は、少し異なる方法で構成する必要があります。例えば、以下のポリシーは、指定したロググループで CloudWatch Logs ログストリームを作成し、 AWS アカウント 111111111111、およびo-exampleorgid の ID を持つ AWS Organizations 組織に適用される、アカウント 111111111111 で作成された組織証跡の両方の CloudTrail イベントを配信するアクセス許可を CloudTrail に付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream20141101", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*", "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:o-exampleorgid_*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*", "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:o-exampleorgid_*" ] } ] }

組織の証跡の詳細については、「組織の証跡の作成」を参照してください。

次のマンドを実行して、ロールにポリシーを適用します。

aws iam put-role-policy --role-name role_name --policy-name cloudtrail-policy --policy-document file://<path to role-policy-document>.json

証跡を更新する

CloudTrail の update-trail コマンドを使用して、証跡のロググループとロール情報を更新します。

aws cloudtrail update-trail --name trail_name --cloud-watch-logs-log-group-arn log_group_arn --cloud-watch-logs-role-arn role_arn

AWS CLI コマンドの詳細については、「AWS CloudTrail Command Line Reference」を参照してください。

制限

CloudWatch Logs と EventBridge ごとに最大 256 KB のイベントサイズを許可します。ほとんどのサービスイベントの最大サイズは 256 KB ですが、一部のサービスにはまだこれより大きなイベントがあります。CloudTrail は、これらのイベントを CloudWatch Logs や EventBridge に送信しません。

CloudTrail イベントバージョン 1.05 で開始し、イベントの最大サイズは 256 KB です。これによって、悪意のある者による不正利用を防止し、イベントを他の AWS サービス (CloudWatch Logs や EventBridge など) で消費できるようにしています。