AWS CloudTrail
ユーザーガイド (Version 1.0)

AWS Command Line Interface での証跡の作成と更新

注記

このトピックの AWS Command Line Interface (AWS CLI) コマンドを実行するには、AWS コマンドラインツールが必要です。詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。AWS CLI コマンドラインで CloudTrail コマンドのヘルプを表示するには、aws cloudtrail help と入力します。

証跡の作成と更新の 2 つのオプション

AWS CLI で証跡を作成または更新する際には、2 セットのオプションがあります。

  • create-trail および update-trail

  • create-subscription および update-subscription

create-trail および update-trail

create-trailupdate-trail コマンドは、create-subscription コマンドと update-subscription コマンドでは提供していない以下の機能を提供します。

  • リージョン間でログを受け取る証跡を作成するか、--is-multi-region-trail オプションで証跡を更新します。

  • --no-is-multi-region-trail オプションを使用して、マルチリージョンの証跡を単一リージョンの証跡に変換します。

  • --kms-key-id オプションを使用して、ログファイルの暗号化を有効または無効にします。このオプションは、すでに作成され、AWS KMS にログの暗号化を許可するポリシーをアタッチした CloudTrail キーを指定します。詳細については、「AWS CLI を使用して CloudTrail ログファイルの暗号化の有効と無効を切り替える」を参照してください。

  • --enable-log-file-validation オプションと --no-enable-log-file-validation オプションを使用してログファイルの検証を有効または無効にします。詳細については、「CloudTrail ログファイルの整合性の検証」を参照してください。

  • CloudWatch Logs ロググループとロールを指定して、CloudTrail が CloudWatch Logs ロググループにイベントを配信できるようにします。詳細については、「Amazon CloudWatch Logs を使用して CloudTrail のログファイルをモニタリングする」を参照してください。

create-subscription および update-subscription

create-subscription コマンドと update-subscription コマンドには、次のような利点があります。

  • CloudTrail で S3 バケットを作成することができます。create-trail コマンドを使用して、CloudTrail のバケットポリシーをすでに適用した既存のバケットを指定する必要があります。

  • create-subscription コマンドは、証跡のログ記録を開始します。create-trail コマンドを使用して、start-logging コマンドを実行する必要があります。

create-trail の使用

単一リージョンの証跡の作成

次のコマンドは、単一のリージョンの証跡を作成します。指定された Amazon S3 バケットがすでに存在し、適切な CloudTrail 権限が適用されている必要があります。詳細については、「CloudTrail の Amazon S3 バケットのポリシー」を参照してください。

aws cloudtrail create-trail --name my-trail --s3-bucket-name my-bucket

詳細については、「CloudTrail 証跡の命名要件」を参照してください。

サンプル出力:

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

デフォルトでは、create-trail コマンドは単一リージョンの証跡を作成し、その証跡はログファイルの検証を有効にしません。

証跡のログ記録の開始

create-trail コマンドが完了したら、start-logging コマンドを実行してその証跡のログ記録を開始します。

注記

CloudTrail コンソールまたは create-subscription コマンドで証跡を作成すると、ログ記録が自動的に有効になります。

次の例は、証跡のログ記録を開始します。

aws cloudtrail start-logging --name my-trail

このコマンドは出力を返しませんが、get-trail-status コマンドを使用すると、ログ記録が開始されたことを確認できます。

aws cloudtrail get-trail-status --name my-trail

証跡がログを記録していることを確認するために、出力の IsLogging 要素に true と表示されます。

{ "LatestDeliveryTime": 1441139757.497, "LatestDeliveryAttemptTime": "2015-09-01T20:35:57Z", "LatestNotificationAttemptSucceeded": "2015-09-01T20:35:57Z", "LatestDeliveryAttemptSucceeded": "2015-09-01T20:35:57Z", "IsLogging": true, "TimeLoggingStarted": "2015-09-01T00:54:02Z", "StartLoggingTime": 1441068842.76, "LatestDigestDeliveryTime": 1441140723.629, "LatestNotificationAttemptTime": "2015-09-01T20:35:57Z", "TimeLoggingStopped": "" }

すべてのリージョンに適用される証跡の作成

すべてのリージョンに適用される証跡を作成するには、--is-multi-region-trail オプションを使用します。

次の例では、すべてのリージョンから my-bucket という既存のバケットにログを配信する証跡を作成します。

aws cloudtrail create-trail --name my-trail --s3-bucket-name my-bucket --is-multi-region-trail

証跡がすべてのリージョンに存在することを確認するために、出力の IsMultiRegionTrail 要素に true と表示されます。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

注記

証跡のログ記録を開始するには start-logging コマンドを使用します。

すべてのリージョンに適用され、ログファイルの検証が有効にされている証跡の作成

create-trail を使用しているときにログファイルの検証を有効にするには、--enable-log-file-validation オプションを使用します。

ログファイルの検証については、「CloudTrail ログファイルの整合性の検証」を参照してください。

次の例では、すべてのリージョンから指定したバケットにログを配信する証跡を作成します。このコマンドでは、--enable-log-file-validation オプションを使用します。

aws cloudtrail create-trail --name my-trail --s3-bucket-name my-bucket --is-multi-region-trail --enable-log-file-validation

ログファイルの検証が有効になっていることを確認するために、出力の LogFileValidationEnabled 要素に true と表示されます。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": true, "IsMultiRegionTrail": true, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

update-trail の使用

update-trail コマンドを使用して、証跡の設定を変更できます。

注記

AWS CLI またはいずれかの AWS SDK を使用して証跡を変更する場合は、証跡のバケットポリシーが最新の状態に保たれていることを確認します。バケットが新しい AWS リージョンからイベントを自動的に受信するには、ポリシーに完全なサービス名 cloudtrail.amazonaws.com が含まれている必要があります。詳細については、「CloudTrail の Amazon S3 バケットのポリシー」を参照してください。

注記

update-trail コマンドは、証跡が作成されたリージョンからのみ実行できます。

1 つのリージョンに適用される証跡を変換してすべてのリージョンに適用

既存の証跡を変更し、すべてのリージョンに適用されるようにするには、--is-multi-region-trail オプションを使用します。

aws cloudtrail update-trail --name my-trail --is-multi-region-trail

証跡がすべてのリージョンに適用されるようになったことを確認するために、出力の IsMultiRegionTrail 要素に true と表示されます。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

マルチリージョンの証跡から単一リージョンの証跡への変換

作成元のリージョンにのみ適用されるように既存のマルチリージョンの証跡を変更するには、--no-is-multi-region-trail オプションを使用します。

aws cloudtrail update-trail --name my-trail --no-is-multi-region-trail

証跡が単一リージョンに適用されるようになったことを確認するために、出力の IsMultiRegionTrail 要素に false と表示されます。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

グローバルサービスイベントのログ記録の有効化と無効化

証跡を変更し、グローバルサービスイベントをログに記録しないようにするには、--no-include-global-service-events オプションを使用します。

aws cloudtrail update-trail --name my-trail --no-include-global-service-events

証跡がグローバルサービスイベントをログに記録しなくなったことを確認するために、出力の IncludeGlobalServiceEvents 要素に false と表示されます。

{ "IncludeGlobalServiceEvents": false, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

証跡を変更し、グローバルサービスイベントをログに記録するには、--include-global-service-events オプションを使用します。

ログファイルの検証の有効化

証跡のログファイルの検証を有効にするには、--enable-log-file-validation オプションを使用します。ダイジェストファイルは、その証跡の Amazon S3 バケットに配信されます。

aws cloudtrail update-trail --name my-trail --enable-log-file-validation

ログファイルの検証が有効になっていることを確認するために、出力の LogFileValidationEnabled 要素に true と表示されます。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": true, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

ログファイルの検証の無効化

証跡のログファイルの検証を無効にするには、--no-enable-log-file-validation オプションを使用します。

aws cloudtrail update-trail --name my-trail-name --no-enable-log-file-validation

ログファイルの検証が無効になっていることを確認するために、出力の LogFileValidationEnabled 要素に false と表示されます。

{ "IncludeGlobalServiceEvents": true, "Name": "my-trail", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "S3BucketName": "my-bucket" }

AWS CLI を使用してログファイルを検証するには、「AWS CLI による CloudTrail ログファイルの整合性の検証」を参照してください。

create-subscription の使用

create-subscription コマンドは、証跡情報を作成します。このコマンドを使用して、ログファイルの配信用の Amazon S3 バケットと通知用の Amazon SNS トピックを作成することもできます。create-subscription コマンドは、作成する証跡のログ記録も開始します。

create-subscription コマンドには、以下のオプションがあります。

  • --name は、証跡の名前を指定します。このオプションは必須です。詳細については、「CloudTrail 証跡の命名要件」を参照してください。

  • --s3-use-bucket は、ログファイルのストレージ用の既存の Amazon S3 バケットを指定します。

  • --s3-new-bucket は、コマンドの実行時に作成される新しいバケットの名前を指定します。バケットの名前はグローバルで一意であることが必要です。詳細については、「Amazon S3 バケットの命名要件」を参照してください。

  • --s3-prefix は、ログファイルの配信パスのプレフィックスを指定します (オプション)。最大長は 200 文字です。

    注記

    既存のバケットに新しいログファイルプレフィックスを使用する場合は、まずプレフィックスをバケットポリシーに追加します。詳細については、「既存のバケットのプレフィックスを変更する」を参照してください。

  • --sns-new-topic は、バケットへのログファイル配信の通知を受信登録できる Amazon SNS トピックの名前を指定します (オプション)。

注記

オプションのリストを表示するには aws cloudtrail create-subscription help と入力します。

次の例では、証跡、ログファイルの配信用の Amazon S3 バケット、S3 バケットプレフィックス、および SNS トピックを作成します。

aws cloudtrail create-subscription --name=awscloudtrail-example --s3-new-bucket=awscloudtrail-new-bucket-example --s3-prefix=prefix-example --sns-new-topic=awscloudtrail-example-log-deliverytopic

コマンドが正常に実行された場合は、次のような出力が表示されます。

Setting up new S3 bucket awscloudtrail-new-bucket-example... Setting up new SNS topic awscloudtrail-example-log-deliverytopic... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "awscloudtrail-example", "S3KeyPrefix": "prefix-example", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/awscloudtrail-example", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "HasCustomEventSelectors": false, "S3BucketName": "awscloudtrail-new-bucket-example" "SnsTopicName": "awscloudtrail-example-log-deliverytopic", "HomeRegion": "us-east-2" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "4c55c744-a0ea-4aea-b3b9-eb63dfe68383" } } Starting CloudTrail service... Logs will be delivered to awscloudtrail-new-bucket-example:prefix-example

update-subscription の使用

update-subscription コマンドを使用し、オプションを新しい値に設定することで、証跡を更新できます。次の例では、--s3-use-bucket オプションを使用して、別の既存の Amazon S3 バケットを指定します。別の名前の証跡が必要な場合は、delete-trail コマンドを使用して証跡を削除してから、create-subscription コマンドを実行します。

aws cloudtrail update-subscription --name=awscloudtrail-example --s3-use-bucket=awscloudtrail-new-bucket-example2 --s3-prefix=prefix-example

コマンドが正常に実行されると、S3BucketName の値が awscloudtrail-new-bucket-example2 に更新されます。

CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "awscloudtrail-example", "S3KeyPrefix": "prefix-example", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/awscloudtrail-example", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "HasCustomEventSelectors": false, "S3BucketName": "awscloudtrail-new-bucket-example2" "SnsTopicName": "awscloudtrail-example-log-deliverytopic", "HomeRegion": "us-east-2" } ] }

注記

既存の Amazon S3 バケットを指定し、そのバケットが CloudTrail で作成されていない場合は、適切なポリシーをアタッチする必要があります。「CloudTrail の Amazon S3 バケットのポリシー」を参照してください。

証跡の管理

CloudTrail CLI には、証跡の管理に役立つ他のコマンドがいくつか含まれています。

証跡の設定と証跡のステータスの取得

証跡の設定を取得するには describe-trails コマンドを使用します。

aws cloudtrail describe-trails

コマンドが正常に完了した場合は、次のような出力が表示されます。

{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "my-trail", "S3KeyPrefix": "my-prefix", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "IsOrganizationTrail": false, "HasCustomEventSelectors": false, "S3BucketName": "my-bucket" "SnsTopicName": "my-topic", "HomeRegion": "us-east-2" } ] }

証跡のステータスを取得するには get-trail-status コマンドを実行します。

注記

証跡が組織の証跡であり、お客様が AWS Organizations の組織のメンバーアカウントである場合は、名前だけでなく、その証跡の完全な ARN を提供する必要があります。

aws cloudtrail get-trail-status --name awscloudtrail-example

コマンドが正常に完了した場合は、次のような出力が表示されます。

{ "LatestDeliveryTime": 1441139757.497, "LatestDeliveryAttemptTime": "2015-09-01T20:35:57Z", "LatestNotificationAttemptSucceeded": "2015-09-01T20:35:57Z", "LatestDeliveryAttemptSucceeded": "2015-09-01T20:35:57Z", "IsLogging": true, "TimeLoggingStarted": "2015-09-01T00:54:02Z", "StartLoggingTime": 1441068842.76, "LatestDigestDeliveryTime": 1441140723.629, "LatestNotificationAttemptTime": "2015-09-01T20:35:57Z", "TimeLoggingStopped": "" }

前述の JSON コードに表示されているフィールドに加えて、Amazon SNS または Amazon S3 エラーがある場合はステータスに以下のフィールドが含まれます。

  • LatestNotificationError。トピックのサブスクリプションに失敗した場合に、Amazon SNS によって出力されたエラーが含まれています。

  • LatestDeliveryError。CloudTrail がバケットにログファイルを配信できない場合に、Amazon S3 によって出力されたエラーが含まれています。

イベントセレクタの設定

証跡のイベントセレクタの設定を表示するには、get-event-selectors コマンドを実行します。

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

注記

証跡が組織の証跡であり、お客様が AWS Organizations の組織のメンバーアカウントである場合は、名前だけでなく、その証跡の完全な ARN を提供する必要があります。

次の例は、証跡のイベントセレクタのデフォルト設定を返します。

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

イベントセレクタを作成するには、put-event-selectors コマンドを実行します。アカウントでイベントが発生すると、CloudTrail によって証跡の設定が評価されます。イベントが証跡のいずれかのイベントセレクタとと一致する場合は、証跡がイベントを処理し、ログに記録します。証跡あたり最大 5 つのイベントセレクタと、証跡あたり最大 250 の データリソースを設定できます。詳細については、「証跡のデータイベントと管理イベントのログ記録」を参照してください。

例: 特定のイベントセレクタを使用した証跡

以下の例では、読み取り専用管理イベントと書き込み専用管理イベント、2 つの Amazon S3 バケット/プレフィックスの組み合わせのデータイベント、AWS Lambda 関数 (hello-world-python-function) のデータイベントを含めるように、TrailName という名前の証跡を作成します。

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"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'

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

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda:us-west-2:123456789012:function:hello-world-python-function" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

例: すべてのイベントをログに記録する証跡

次の例では、すべてのイベントを含む、TrailName2 という名前の証跡のイベントセレクタを作成します。これには、読み取り専用および書き込み専用の管理イベント、およびAWS アカウント内のすべての Amazon S3 バケットおよび AWS Lambda 関数のすべてのデータイベントが含まれます。

注記

証跡が 1 つのリージョンにのみ適用される場合、イベントセレクタのパラメータですべての Amazon S3 バケットと Lambda 関数が指定されていても、そのリージョン内のイベントのみがログに記録されます。イベントセレクタは、証跡が作成されたリージョンにのみ適用されます。

aws cloudtrail put-event-selectors --trail-name TrailName2 --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]}]}]'

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

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }

証跡のログ記録の停止と開始

次のコマンドは、CloudTrail のログ記録を開始および停止します。

aws cloudtrail start-logging --name awscloudtrail-example
aws cloudtrail stop-logging --name awscloudtrail-example

注記

バケットを削除する前に、stop-logging コマンドを実行してバケットへのイベントの配信を停止します。ログ記録を停止しない場合、CloudTrail は限られた期間、同じ名前のバケットにログファイルを配信しようとします。

証跡の削除

次のコマンドを使用して証跡を削除することができます。証跡は、それが作成されたリージョンでのみ削除できます。

aws cloudtrail delete-trail --name awscloudtrail-example

証跡を削除しても、Amazon S3 バケットまたはそれに関連付けられている Amazon SNS トピックは削除されません。AWS マネジメントコンソール、AWS CLI、またはサービス API を使用して、これらのリソースを個別に削除します。