追加のアカウントで CloudTrail を有効にする - AWS CloudTrail

追加のアカウントで CloudTrail を有効にする

コンソールまたはコマンドラインインターフェイスを使用して、追加の AWS アカウントで CloudTrail を有効にできます。

コンソールを使用して追加の AWS アカウントで CloudTrail を有効にする

CloudTrail コンソールを使用して、追加のアカウントで CloudTrail を有効にできます。

  1. アカウント 222222222222 の認証情報を使用して AWS マネジメントコンソールにサインインし、AWS CloudTrail コンソールを開きます。ナビゲーションバーで、CloudTrail を有効にするリージョンを選択します。

  2. CloudTrail サービスのホームページでは、[証跡] ページ、または [ダッシュボード] ページの [証跡] セクションで、[証跡の作成] を選択します。

  3. [Create Trail] (証跡の作成) ページの [Trail name] (証跡名) に証跡の名前を入力します。詳細については、「CloudTrail 証跡の命名要件 」を参照してください。

  4. これが AWS Organizations 組織証跡で、組織内のすべてのアカウントに対して証跡を有効にするよう選択できます。管理アカウントの IAM ユーザーまたはロールでコンソールにサインインしている場合にのみ、このオプションが表示されます。組織の証跡を正しく作成するには、ユーザーまたはロールに十分なアクセス許可があることを確認してください。詳細については、「組織の証跡の作成 」を参照してください。

  5. ストレージの場所で、既存の S3 バケットを使用を選択します。アカウント 111111111111 の認証情報でサインインした際にログファイルの保存用として以前に作成したバケットの名前を、テキストボックスに入力します。別のアカウントの S3 バケットを指定してもよいかどうか尋ねる警告が CloudTrail に表示されます。入力したバケットの名前を確認します。

    注記

    バケットポリシーでは、バケットへの書き込み権限を CloudTrail に付与する必要があります。バケットポリシーを手動で編集する方法については、CloudTrail の Amazon S3 バケットポリシー を参照してください。

    ログを見つけやすくするために、新しいフォルダ (プレフィックスとも呼ばれます) を既存のバケットに作成して CloudTrail ログを保存します。プレフィックスを [プレフィックス] に入力します。

  6. アカウント 111111111111 の認証情報を使用して CloudTrail をオンにする際にログファイルの保存用として入力したのと同じプレフィックスを、[Prefix] に入力します。最初のアカウントで CloudTrail をオンにした際に入力したものとは異なるプレフィックスを使用する場合は、送信先バケットでバケットポリシーを編集して、CloudTrail がこの新しいプレフィックスを使用してバケットにログファイルを書き込めるようにする必要があります。

  7. [Log file SSE-KMS encryption] で、SSE-S3 を使用する代わりに SSE-KMS を使用してログファイルを暗号化する場合は、[Enabled] を選択します。デフォルトは [Enabled] です。この暗号化タイプの詳細については、「Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護」を参照してください。

    SSE-KMS 暗号化を有効にする場合は、[New] または [Existing] AWS KMS key を選択します。[AWS KMS Alias] で、alias/ MyAliasName フォーマットのエイリアスを指定します。詳細については、「KMS キーを使用するために証跡を更新する 」を参照してください。CloudTrail は、AWS KMS マルチリージョンキーもサポートしています。マルチリージョンキーの詳細については、AWS Key Management Service デベロッパーガイドの「マルチリージョンキーを使用する」を参照してください。

    注記

    別のアカウントのキーの ARN を入力することもできます。このキーポリシーは、CloudTrail がキーを使用してログファイルを暗号化し、指定したユーザーが暗号化されていない形式でログファイルを読み取れるようにする必要があります。キーポリシーを手動で編集する方法については、CloudTrail の AWS KMS キーポリシーの設定 を参照してください。

  8. [Additional settings] で、次の操作を行います。

    1. [ログファイル検証を有効にする] で [Enabled] を選択して、S3 バケットにログダイジェストが配信されるようにします。ダイジェストファイルは、ログファイルが CloudTrail に配信された後に変更されていないことを確認するために使用できます。詳細については、「CloudTrail ログファイルの整合性の検証」を参照してください。

    2. バケットにログが配信されるたびに通知を受け取る場合は、[SNS notification delivery] で [Enabled] を選択します。CloudTrail は、1 つのログファイルに複数のイベントを保存します。SNS 通知は、ログファイルごとに送信されます (イベントごとではありません)。詳細については、「CloudTrail の Amazon SNS 通知の設定」を参照してください。

      SNS 通知を有効にすると、[Create a new SNS topic] で、[New] を選択してトピックを作成するか、[Existing] を選択して既存のトピックを使用します。すべてのリージョンに適用される証跡を作成した場合、すべてのリージョンからのログファイル配信を知らせる SNS 通知は、ユーザーが作成した単一の SNS トピックに送信されます。

      [New] を選択した場合、CloudTrail は新しいトピックの名前を指定します。または、自分で名前を入力できます。[Existing] を選択した場合、ドロップダウンリストから SNS トピックを選択します。別のリージョンにあるトピックの ARN を入力したり、適切なアクセス許可を持ったアカウントにあるトピックの ARN を入力することもできます。詳細については、「CloudTrail の Amazon SNS トピックポリシー」を参照してください。

      トピックを作成する場合は、ログファイル配信の通知を受けるトピックを受信登録する必要があります。受信登録は Amazon SNS コンソールから行うことができます。通知頻度の都合上、受信登録については、Amazon SQS キューを使用して通知をプログラムで処理するように設定することをお勧めします。詳細については、Amazon Simple Notification Service 入門ガイドを参照してください。

  9. オプションで、CloudTrail がログファイルを CloudWatch Logs に送信するように CloudTrail を設定するには、[CloudWatch Logs] の [Enabled] を選択します。詳細については、「CloudWatch Logs へのイベントの送信」を参照してください。

    1. CloudWatch Logs との統合を有効にする場合は、[New] を選択して新しいロググループを作成するか、[Existing] を選択して既存のものを使用します。[New] を選択した場合、CloudTrail は新しいロググループの名前を指定します。または、自分で名前を入力できます。

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

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

      注記

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

  10. [タグ] で、1 つまたは複数のカスタムタグ (キーと値のペア) を証跡に追加します。CloudTrail 証跡と CloudTrail ログファイルを含む Amazon S3 バケットの両方を識別するのにタグが役立ちます。その後、CloudTrail リソースのリソースグループを使用できます。詳細については、「AWS Resource Groups」および「証跡タグを使用する理由とは」を参照してください。

  11. [Choose log events] ページで、ログに記録するイベントタイプを選択します。[管理イベント] で、次の操作を行います。

    1. [API activity] で、証跡で記録する対象を [読み取り] イベント、[書き込み] イベント、またはその両方を選択します。詳細については、「管理イベント」を参照してください。

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

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

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

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

    3. [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 コールのログ記録」を参照してください。

  12. [Data events] で、Amazon S3 バケットのログデータイベント、AWS Lambda 関数、Amazon DynamoDB テーブル、またはこれらのリソースタイプの組み合わせを指定できます。デフォルトでは、証跡はデータイベントを記録しません。データイベントのログ記録には追加料金が適用されます。詳細については、「データイベント」を参照してください。CloudTrail の料金については、「AWS CloudTrail 料金」を参照してください。アドバンストイベントセレクタを使用すると、より多くのデータイベントタイプを使用できます。詳細については、このトピックの「コンソールでの証跡の作成 (アドバンストイベントセレクタ)」を参照してください。

    Amazon S3 バケットの場合

    1. [Data source] で、[S3] を選択します。

    2. すべての現在および将来の S3 バケットを記録することを選択するか、バケットまたは関数を個々に指定することができます。デフォルトでは、現在および将来のすべての S3 バケットのデータイベントが記録されます。

      注記

      デフォルトの [すべての現在および将来の S3 バケット] オプションを維持すると、現在の AWS アカウント内のすべてのバケットや、証跡作成後に作成する任意のバケットで、データイベントのログ記録を行うことができるようになります。このアクティビティが、別の AWS アカウントに属するバケットで実行されている場合でも、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も行うことができます。

      証跡が 1 つのリージョンのみで作成される場合 (AWS CLI を使用して作成)、[現在および将来のすべての S3 バケット] を選択すると、同じリージョン内のすべてのバケット、およびそのリージョンで後に作成するバケットに対して、データイベントのログ記録が有効になります。AWS アカウント内の他のリージョンの Amazon S3 バケットのデータイベントは記録されません。

    3. デフォルトの [All current and future S3 buckets] で、[読み取り] イベント、[書き込み] イベント、またはその両方をログ記録することを選択します。

    4. 個々のバケットを選択するには、[All current and future S3 buckets] の [読み取り] および [書き込み] のチェックボックスをオフにします。[Individual bucket selection] で、データイベントをログ記録するバケットを参照します。目的のバケットのバケットプレフィックスを入力して、特定のバケットを検索します。このウィンドウで、複数のバケットを選択できます。[Add bucket] を選択してより多くのバケットのデータイベントをログ記録します。[読み取り] イベント (例: GetObject) か、[書き込み] イベント (例: PutObject)、または両方を選択します。

      この設定は、個別のバケットに設定した個々の設定よりも優先されます。たとえば、すべての S3 バケットにログ記録 [読み取り] イベントを指定し、データイベントログ記録に特定のバケットの追加を選択した場合、追加したバケットには既に [読み取り] が設定されています。選択を解除することはできません。[書き込み] のオプションしか設定することができません。

      ログ記録からバケットを削除するには、[X] を選択します。

  13. データイベントをログに記録する別のデータタイプを追加するには、[Add data event type] を選択します。

  14. Lambda 関数の場合

    1. [Data source] で、[Lambda] を選択します。

    2. [Lambda 関数] で、[All regions] を選択してすべての Lambda 関数をログ記録するか、[Input function as ARN] を使用して、特定の関数のデータイベントをログ記録します。

      AWS アカウントのすべての Lambda 関数に対するデータイベントを記録するには、[現在および将来の関数をすべて記録する] を選択します。この設定は、関数に個々に設定した各設定よりも優先されます。すべての関数が表示されていなくても、関数はすべてログ記録されます。

      注記

      すべてのリージョンで証跡を作成している場合は、この選択によって、AWS アカウントの現時点のすべての関数や、証跡作成後に任意のリージョンに作成する可能性のある Lambda 関数のデータイベントのログ記録が有効になります。単一リージョンで証跡を作成している場合は (AWS CLI を使用して作成)、この選択によって、AWS アカウントの対象リージョンの現時点のすべての関数や、証跡作成後に対象リージョンに作成する可能性のある Lambda 関数のデータイベントのログ記録が有効になります。他のリージョンで作成された Lambda 関数のデータイベントのログ記録は有効になりません。

      このアクティビティが、その他の AWS アカウントに属する関数で実行されている場合でも、すべての関数のデータイベントのログ記録を行うと、AWS アカウントのユーザーまたはロールによって実行されるデータイベントのアクティビティのログ記録も有効になります。

    3. [Input function as ARN] を選択した場合、Lambda 関数の ARN を入力します。

      注記

      15,000 を超える Lambda 関数がアカウントに存在する場合は、証跡作成時に CloudTrail コンソールですべての関数を表示または選択することはできません。表示されていない場合でも、すべての関数をログ記録するオプションを選択することができます。特定の関数のデータイベントをログ記録する場合、ARN が分かれば、関数を手動で追加することができます。コンソールで証跡を作成したら、AWS CLI や put-event-selectors コマンドを使用して、特定の Lambda 関数のデータイベントのログ記録を設定することもできます。詳細については、「AWS CLI を使用して証跡を管理する」を参照してください。

  15. DynamoDB テーブルの場合

    1. [Data event source] で、[DynamoDB] を選択します。

    2. [DynamoDB table selection] で、[Browse] を選択してテーブルを選択するか、アクセス許可を持つ DynamoDB テーブルの ARN に貼り付けます。DynamoDB テーブルの ARN は次の形式です。

      arn:partition:dynamodb:region:account_ID:table/table_name

      別のテーブルを追加するには、[Add row] を選択し、テーブルを参照するか、アクセス許可のあるテーブルの ARN に貼り付けます。

  16. 証跡に CloudTrail Insights イベントをログに記録させたい場合は、[Insights イベント] を選択します。

    [Event type] で、[Insights events] を選択します。Insights イベントで、API コールレートAPI エラーレート、または両方を選択します。[Write] 管理イベントをログ記録して、Insights イベントをログに記録している必要があります。

    CloudTrail Insights が異常なアクティビティの管理イベントを分析し、異常が検出されたときにイベントをログに記録します。デフォルトでは、証跡は Insights イベントを記録しません。Insights トイベントの詳細については、「証跡の Insights イベントの記録」を参照してください。Insights イベントの記録には追加料金が適用されます。CloudTrail の料金については、「AWS CloudTrail 料金」を参照してください。

    Insights イベントは、証跡詳細ページの [ストレージの場所] 領域で指定されている同じ S3 バケットの、/CloudTrail-Insight という名前の異なるフォルダへ配信されます。CloudTrail によって新しいプレフィックスが作成されます。たとえば、現在の送信先 S3 バケットの名前が S3bucketName/AWSLogs/CloudTrail/ の場合、新しいプレフィックスが付いた S3 バケットの名前は S3bucketName/AWSLogs/CloudTrail-Insight/ になります。

  17. ログに記録するイベントタイプの選択が終了したら、[Next] を選択します。

  18. [Review and create] ページで選択内容を確認します。[Edit] を選択して、そのセクションに表示される証跡設定を変更します。証跡を作成する準備ができたら、[Create trail] を選択します。

  19. 新しい証跡が [Trails] (証跡) ページに表示されます。[Trails (証跡)] ページでは、すべてのリージョンを対象に、アカウント内の証跡が表示されます。約 15 分で CloudTrail によってログファイルが発行され、アカウント内で実行された AWS API コールが表示されます。ユーザーは、指定した S3 バケット内のログファイルを確認することができます。Insights イベントログを有効にしていて、異常なアクティビティが検出された場合、CloudTrail が最初の Insights イベントを配信するまでに最大 36 時間かかることがあります。

CloudTrail はこのリージョンのアカウントで行われた AWS コールを表示するログファイルの発行を開始します。CloudTrail は、通常、API コールから平均 15 分以内にログを配信します。この時間は保証されません。詳細については、「AWS CloudTrail サービスレベルアグリーメント」をご覧ください。

CLI を使用して追加 AWS アカウントで CloudTrail を有効にする

AWS コマンドラインツールを使用して、追加のアカウントで CloudTrail を有効にし、ログファイルを 1 つの Amazon S3 バケットに集約できます。これらのツールに関する詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

create-trail コマンドを使用して、追加のアカウントで CloudTrail を有効にし、以下を指定します。

  • --name は、証跡の名前を指定します。

  • --s3-bucket-name は、最初のアカウント (この例では 111111111111) で CloudTrail を有効にしたときに作成された、既存の Amazon S3 バケットを指定します。

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

  • --is-multi-region-trail は、この証跡がすべての AWS リージョンでイベントをログに記録するように指定します。

コンソールを使用して作成する証跡とは異なり、AWS CLI を使用して作成するすべての証跡には、名前を付ける必要があります。アカウントが AWS リソースを実行しているリージョンごとに、1 つの証跡を作成できます。

次のコマンド例は、AWS CLI を使用して追加のアカウントの証跡を作成する方法を示しています。これらのアカウントのログファイルが、最初のアカウント (この例では 111111111111) で作成したバケットに配信されるようにするには、--s3-bucket-name オプションでバケット名を指定します。Amazon S3 バケット名は、グローバルに一意です。

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

コマンドを実行すると、以下のような出力が表示されます。

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

AWS コマンドラインツールから CloudTrail を使用する方法の詳細については、「CloudTrail コマンドラインリファレンス」を参照してください。