証跡での管理イベントの記録 - AWS CloudTrail

証跡での管理イベントの記録

デフォルトでは、証跡はすべての管理イベントを記録し、データイベントやインサイトイベントは記録しません。データイベントやインサイトイベントには追加料金が適用されます。詳細については、「AWS CloudTrail料金表」を参照してください。

管理イベント

管理イベントでは、AWS アカウントのリソースで実行される管理オペレーションについて知ることができます。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。管理イベントには、次のようなものがあります。

  • セキュリティの設定 (例: IAM AttachRolePolicy API オペレーション)。

  • デバイスの登録 (例: Amazon EC2 CreateDefaultVpc API オペレーション).

  • データをルーティングするルールの設定 (例: Amazon EC2 CreateSubnet API オペレーション).

  • ログ記録の設定 (例: AWS CloudTrail CreateTrail API オペレーション)

管理イベントは、アカウントで発生する非 API イベントを含む場合もあります。例えば、ユーザーがアカウントにログインすると、CloudTrail は ConsoleLogin イベントをログに記録します。詳細については、「CloudTrail によってキャプチャされる API 以外のイベント」を参照してください。CloudTrail が AWS のサービスについてログに記録するサポートされている管理イベントの一覧については、「CloudTrail のサポートされているサービスと統合」を参照してください。

デフォルトでは、証跡は管理イベントをログに記録するように設定されます。CloudTrail が AWS のサービスについてログに記録するサポートされている管理イベントの一覧については、「CloudTrail のサポートされているサービスと統合」を参照してください。

注記

CloudTrail の [イベント履歴] 機能では、管理イベントのみサポートされています。すべての管理イベントがイベント履歴に表示されるわけではありません。[イベント履歴] から AWS KMS または Amazon RDS Data API イベントを除外することはできません。証跡に適用する設定は [イベント履歴] に設定されています。詳細については、「CloudTrail Event 履歴でのイベントの表示」を参照してください。

AWS Management Console での管理イベントのログ記録

  1. CloudTrail コンソールの証跡ページを開き、証跡名を選択します。

  2. [管理イベント] で、[編集] を選択します。

    • 証跡で記録する対象を [読み取り] イベント、[書き込み] イベント、またはその両方を選択します。

    • [Exclude AWS KMS events] を選択して AWS Key Management Service (AWS KMS) イベントを、証跡から除外します。デフォルト設定では、すべての AWS KMS イベントが含まれています。

      AWS KMS イベントをログまたは除外するオプションは、証跡の管理イベントをログに記録する場合にのみ使用できます。管理イベントをログに記録しないように選択した場合は、AWS KMS イベントはログに記録されず、AWS KMS イベントログ設定は変更できません。

      通常、AWS KMS、EncryptDecrypt などの GenerateDataKey アクションは、大容量イベント (99% 以上) を生成します。これらのアクションは、[Read (読み取り)] イベントとしてログに記録されるようになりました。DisableDeleteScheduleKey などの少量の関連する AWS KMS アクション (通常は AWS KMS イベントボリュームの 0.5% 未満) は、[書き込み]イベントとしてログに記録されます。

      EncryptDecryptGenerateDataKey のようなボリュームの大きなイベントを除外し、DisableDeleteScheduleKey などの関連イベントを記録する場合は、[書き込み] 管理イベントを記録することを選択し、[Exclude AWS KMS events] チェックボックスをオフにします。

    • [Exclude Amazon RDS Data API events] を選択して、証跡から Amazon Relational Database Service データ API イベントを除外できます。デフォルト設定では、すべての Amazon RDS Data API イベントが含まれています。Amazon RDS Data API イベントの詳細については、Aurora の Amazon RDS Amazon RDS ユーザーガイドの「AWS CloudTrail による Data API コールのログ記録」を参照してください。

    完了したら、[Update trail] を選択します。

読み取りおよび書き込みイベント

管理イベントをログに記録するように証跡を設定するときは、読み取り専用イベントまたは書き込み専用イベントのどちらか一方のみまたは両方を指定できます。

  • Read

    読み取り専用イベントには、リソースの読み取りのみ行い、変更を行わない API オペレーションが含まれます。例えば、Amazon EC2 の DescribeSecurityGroups および DescribeSubnets API オペレーションは読み取り専用イベントです。これらのオペレーションは、Amazon EC2 リソースに関する情報のみを返し、設定は変更しません。

  • Write

    書き込み専用イベントには、リソースを変更する (または変更する可能性がある) API オペレーションが含まれます。例えば、Amazon EC2 の RunInstances および TerminateInstances API オペレーションはインスタンスを変更します。

例: 読み取りイベントと書き込みイベントを別の証跡に記録する

次の例では、アカウントに対するログアクティビティを異なる S3 バケットに分けるように証跡を設定する方法を示します。1 つのバケットは読み取り専用イベントを受け取り、もう 1 つのバケットは書き込み専用イベントを受け取ります。

  1. 証跡を作成し、ログファイルを受け取る read-only-bucket という名前の S3 バケットを選択します。次に、証跡を更新し、[読み取り] 管理イベントを記録するように指定します。

  2. 第 2 の証跡を作成し、ログファイルを受け取る write-only-bucket という名前の S3 バケットを選択します。次に、証跡を更新し、書き込み管理イベントを記録するように指定します。

  3. Amazon EC2 の DescribeInstances および TerminateInstances API オペレーションがアカウントで発生します。

  4. DescribeInstances API オペレーションは読み取り専用イベントであり、1 番目の証跡の設定と一致します。証跡は、イベントをログに記録して read-only-bucket に配信します。

  5. TerminateInstances API オペレーションは書き込み専用イベントであり、2 番目の証跡の設定と一致します。証跡は、イベントをログに記録して write-only-bucket に配信します。

AWS Command Line Interface を使用してイベントのログを記録する

AWS CLI を使用して、管理イベントのログを記録するように証跡を設定できます。

証跡が管理イベントをログに記録しているかどうかを確認するには、get-event-selectors コマンドを実行します。

aws cloudtrail get-event-selectors --trail-name TrailName

次の例では、証跡のデフォルト設定が返されます。デフォルトでは、証跡はすべての管理イベントをログに記録して、すべてのイベントソースからイベントをログに記録し、データイベントはログに記録しません。

{ "EventSelectors": [ { "ExcludeManagementEventSources": [], "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

管理イベントをログに記録するように証跡を設定するには、put-event-selectors コマンドを実行します。次の例では、2 つの S3 オブジェクトに対するすべての管理イベントを含めるように証跡を設定する方法を示します。1 つの証跡に 1~5 個のイベントセレクタを指定できます。1 つの証跡に 1~250 個のデータリソースを指定できます。

注記

イベントセレクタの数にかかわらず、S3 データリソースの最大数は 250 個です。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2"] }] }]'

次の例は、証跡に対して設定されているイベントセレクタを返します。

{ "EventSelectors": [ { "ExcludeManagementEventSources": [], "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2", ], "Type": "AWS::S3::Object" } ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

証跡のログから AWS Key Management Service (AWS KMS) イベントを除外するには、put-event-selectors コマンドを実行し、値が ExcludeManagementEventSources の属性 kms.amazonaws.com を追加します。次の例では、TrailName という名前の証跡のイベントセレクタを作成し、読み取り専用管理イベントと書き込み専用管理イベントを含めますが、AWS KMS イベントを除外します。AWS KMS では大量のイベントが生成される場合があるため、この例のユーザーは、証跡のコストを管理するためにイベントを制限できます。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["kms.amazonaws.com"],"IncludeManagementEvents": true]}]'

例では、証跡に対して設定されているイベントセレクタを返します。

{ "EventSelectors": [ { "ExcludeManagementEventSources": [ "kms.amazonaws.com" ], "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

証跡のログから Amazon RDS Data API イベントを除外するには、put-event-selectors コマンドを実行し、値が rdsdata.amazonaws.com の属性 ExcludeManagementEventSources を追加します。次の例では、TrailName という名前の証跡のイベントセレクタを作成し、読み取り専用管理イベントと書き込み専用管理イベントを含めますが、Amazon RDS Data API イベントを除外します。Amazon RDS Data API では大量のイベントが生成される場合があるため、この例のユーザーは、証跡のコストを管理するためにイベントを制限できます。

{ "EventSelectors": [ { "ExcludeManagementEventSources": [ "rdsdata.amazonaws.com" ], "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

AWS KMS または Amazon RDS Data API イベントの記録を再び開始するには、次のコマンドに示すように ExcludeManagementEventSources の値として空の文字列を渡します。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

AWS KMS、DisableDelete などの関連 ScheduleKey イベントを証跡に記録するが、AWS KMS、EncryptDecrypt などの大容量 GenerateDataKey イベントを除外するには、次の例に示すように、書き込み専用管理イベントをログに記録し、デフォルト設定のまま AWS KMS イベントをログに記録します。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "WriteOnly","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

AWS SDK を使用してイベントのログを記録する

証跡が管理イベントをログに記録しているかどうかを確認するには、GetEventSelectors オペレーションを使用します。管理イベントをログに記録するように証跡を設定するには、PutEventSelectors オペレーションを使用します。詳細については、「AWS CloudTrail API リファレンス」を参照してください。

Amazon CloudWatch Logs へのイベントの送信

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