コンソールで組織の証跡を作成する - AWS CloudTrail

コンソールで組織の証跡を作成する

CloudTrail コンソールから組織の証跡を作成するには、十分な権限を持つ管理者または委任された管理者アカウントのユーザーまたはロールとしてコンソールにサインインする必要があります。管理アカウントまたは委任された管理者アカウントでサインインしていない場合、CloudTrail コンソールで証跡を作成または編集するときに、組織に証跡を適用するオプションは表示されません。

組織の証跡をさまざまな方法で設定することができます。たとえば、組織の証跡については、次の詳細を設定することができます。

  • デフォルトでは、コンソールで証跡を作成すると、証跡によって、作業中の AWS パーティションのすべての AWS リージョン がログ記録されます。ベストプラクティスとして、AWS アカウント のすべてのリージョンでイベントを記録することを強くお勧めします。単一リージョンの証跡を作成するには、 AWS CLI を使用します。詳細については、「CloudTrail の仕組み」を参照してください。

  • 証跡を組織に適用するかどうかを指定します。デフォルトでは、証跡は組織には適用されません。組織の証跡を作成するには、このオプションを選択する必要があります。

  • 組織の証跡用のログファイルを受信する Amazon S3 バケットを指定します。既存の Amazon S3 バケットを選択するか、組織の証跡用に特別に作成することができます。

  • 管理イベントとデータイベントについて、ログ記録の対象を [読み取り] イベントにするか、[書き込み] イベントにするか、それともすべてのイベントにするかを指定する。CloudTrail Insights イベントは管理イベントでのみ記録されます。管理アカウントのリソースのログデータイベントを指定するには、コンソールのリストからそれらを選択します。データイベント記録を有効にする各リソースの ARM を指定した場合は、メンバーアカウントで指定できます。詳細については、「データイベント」を参照してください。

AWS Management Console で組織の証跡を作成するには
  1. AWS Management Console にサインインし、CloudTrail コンソールを開きます (https://console.aws.amazon.com/cloudtrail/)。

    組織の証跡を作成するには、十分な権限 を持つ管理アカウントまたは委任された管理者アカウントの IAM ID を使用してサインインする必要があります。

  2. [Trails] (証跡) を選択し、[Create trail] (証跡の作成) を選択します。

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

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

  5. [ストレージの場所] の [S3 バケットを作成する] を選択すると、新しいバケットが作成されます。新しいバケットを作成すると、CloudTrail によって必要なバケットポリシーが作成され、適用されます。

    注記

    [Use existing S3 bucket] を選択した場合、[Trail log bucket name] のバケットを指定するか、[Browse] を選択してバケットを選択します。任意のアカウントに属するバケットを選択できますが、バケットポリシーは書き込むための許可を CloudTrail に付与する必要があります。バケットポリシーを手動で編集する方法については、CloudTrail の Amazon S3 バケットポリシー を参照してください。

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

  6. [Log file SSE-KMS encryption] (ログファイルの SSE-KMS 暗号化) で、SSE-S3 暗号化を使用する代わりに SSE-KMS 暗号化を使用してログファイルを暗号化する場合は、[Enabled] (有効) を選択します。デフォルトは [Enabled] です。SSE-KMS 暗号化を有効にしない場合、ログは SSE-S3 暗号化を使用して暗号化されます。SSE-KMS 暗号化の詳細については、「AWS Key Management Service (SSE-KMS) によるサーバー側の暗号化の使用」を参照してください。SSE-S3 暗号化の詳細については、「Amazon S3 が管理する暗号化キーによるサーバー側の暗号化 (SSE−S3) の使用」を参照してください。

    SSE-KMS 暗号化を有効にする場合は、[New] または [Existing] AWS KMS key を選択します。[AWS KMS Alias] で、alias/ MyAliasName フォーマットのエイリアスを指定します。詳細については、「KMS キーを使用するようにリソースを更新する」を参照してください。

    注記

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

  7. [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 入門ガイドを参照してください。

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

    注記

    管理アカウントのみが、組織の証跡用の CloudWatch Logs ロググループを設定できます。

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

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

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

      注記

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

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

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

  11. データイベントをログに記録するには、[データイベント] を選択します。データイベントのログ記録には追加料金が適用されます。詳細については、「AWS CloudTrail の料金」を参照してください。

  12. 重要

    ステップ 12 ~ 16 は、デフォルトである高度なイベントセレクターを使用してデータイベントを設定するためのものです。高度なイベントセレクターでは、より多くのデータイベントタイプを設定し、証跡でキャプチャするデータイベントをきめ細かく制御できます。基本的なイベントセレクターを使用する場合は、基本的なイベントセレクターを使用してデータイベント設定を構成する のステップを完了してから、この手順のステップ 17 に戻ってください。

    [データイベントタイプ] で、データイベントをログ記録するリソースのタイプを選択します。使用可能なデータイベントタイプの詳細については、「データイベント」を参照してください。

    注記

    Lake Formation によって作成された AWS Glue テーブルのデータイベントをログ記録するには、[Lake Formation] を選択します。

  13. ログセレクタテンプレートを選択します。CloudTrail には、リソースタイプのすべてのデータイベントをログに記録する事前定義済みのテンプレートが含まれています。カスタムログセレクタテンプレートを構築するには、[Custom] を選択します。

    注記

    S3 バケットの事前定義済みテンプレートを選択すると、現在の AWS アカウント内のすべてのバケットや、証跡作成後に作成する任意のバケットで、データイベントログ記録を行うことができるようになります。これにより、アクティビティが別の AWS アカウントに属するバケットで実行されている場合も含め、AWS アカウント内のすべての IAM アイデンティティによって実行されるデータイベントのアクティビティのログ記録も行うことができます。

    証跡が 1 つのリージョンのみに適用される場合、すべての S3 バケットをログ記録する事前定義済みテンプレートを選択すると、同じリージョン内のすべてのバケット、およびそのリージョンで後に作成するバケットに対して、データイベントのログ記録が可能になります。AWS アカウント内の他のリージョンの Amazon S3 バケットのデータイベントは記録されません。

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

    すべての関数のデータイベントのログ記録を行うと、アクティビティが他の AWS アカウントに属する関数で実行されている場合も含め、AWS アカウント内のすべての IAM アイデンティティが実行するデータイベントのアクティビティのログ記録も有効になります。

  14. (オプション) [セレクタ名] に、セレクタを識別する名前を入力します。セレクタ名は、「2 つの S3 バケットだけのデータイベントを記録する」など、高度なイベントセレクタに関する説明的な名前です。セレクタ名は、拡張イベントセレクタに「Name」と表示され、[JSON ビュー] を展開すると表示されます。

  15. [Advanced event selectors] で、データイベントをログに記録する特定のリソースの式を作成します。事前定義済みのログテンプレートを使用している場合は、このステップをスキップできます。

    1. 次のフィールドから選択します。配列 (複数の値) を受け入れるフィールドの場合、CloudTrail は値の間に OR を追加します。

      • readOnly - readOnly は、true または false の値の [Equals] に設定できます。読み取り専用データイベントは、Get* または Describe* イベントなどのリソースの状態を変更しないイベントです。書き込みイベントは、Put*Delete*、または Write* イベントなどのリソース、属性、またはアーティファクトを追加、変更、または削除します。read および write イベントの両方を記録するには、readOnly セレクタを追加しないでください。

      • eventName - eventName は任意の演算子を使用できます。これを使用して、CloudTrail に記録されるデータイベント (PutBucketPutItem、または GetSnapshotBlock) を含めるまたは除外します。このフィールドには、カンマ区切りで複数の値を設定できます。

      • resources.ARN - resources.ARN には任意の演算子を使用することができますが、等号または不等号を使用する場合、値は、テンプレートで resources.type の値として指定したタイプの有効なリソースの ARN と正確に一致する必要があります。

        以下の表は、それぞれの resources.type に有効な ARN フォーマットを示しています。

        resources.type resources.ARN
        AWS::DynamoDB::Table
        arn:partition:dynamodb:region:account_ID:table/table_name
        AWS::Lambda::Function
        arn:partition:lambda:region:account_ID:function:function_name

        AWS::S3::Object1

        arn:partition:s3:::bucket_name/ arn:partition:s3:::bucket_name/object_or_file_name/
        AWS::CloudTrail::Channel
        arn:partition:cloudtrail:region:account_ID:channel/channel_UUID
        AWS::CodeWhisperer::Customization
        arn:partition:codewhisperer:region:account_ID:customization/customization_ID
        AWS::CodeWhisperer::Profile
        arn:partition:codewhisperer:region:account_ID:profile/profile_ID
        AWS::Cognito::IdentityPool
        arn:partition:cognito-identity:region:account_ID:identitypool/identity_pool_ID
        AWS::DynamoDB::Stream
        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time
        AWS::EC2::Snapshot
        arn:partition:ec2:region::snapshot/snapshot_ID
        AWS::EMRWAL::Workspace
        arn:partition:emrwal:region::workspace/workspace_name
        AWS::FinSpace::Environment
        arn:partition:finspace:region:account_ID:environment/environment_ID
        AWS::Glue::Table
        arn:partition:glue:region:account_ID:table/database_name/table_name
        AWS::GuardDuty::Detector
        arn:partition:guardduty:region:account_ID:detector/detector_ID
        AWS::KendraRanking::ExecutionPlan
        arn:partition:kendra-ranking:region:account_ID:rescore-execution-plan/rescore_execution_plan_ID
        AWS::KinesisVideo::Stream
        arn:partition:kinesisvideo:region:account_ID:stream/stream_name/creation_time
        AWS::ManagedBlockchain::Network
        arn:partition:managedblockchain:::networks/network_name
        AWS::ManagedBlockchain::Node
        arn:partition:managedblockchain:region:account_ID:nodes/node_ID
        AWS::MedicalImaging::Datastore
        arn:partition:medical-imaging:region:account_ID:datastore/data_store_ID
        AWS::PCAConnectorAD::Connector
        arn:partition:pca-connector-ad:region:account_ID:connector/connector_ID
        AWS::SageMaker::Endpoint
        arn:partition:sagemaker:region:account_ID:endpoint/endpoint_name
        AWS::SageMaker::ExperimentTrialComponent
        arn:partition:sagemaker:region:account_ID:experiment-trial-component/experiment_trial_component_name
        AWS::SageMaker::FeatureGroup
        arn:partition:sagemaker:region:account_ID:feature-group/feature_group_name
        AWS::SNS::PlatformEndpoint
        arn:partition:sns:region:account_ID:endpoint/endpoint_type/endpoint_name/endpoint_ID
        AWS::SNS::Topic
        arn:partition:sns:region:account_ID:topic_name

        AWS::S3::AccessPoint2

        arn:partition:s3:region:account_ID:accesspoint/access_point_name
        AWS::S3ObjectLambda::AccessPoint
        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name
        AWS::S3Outposts::Object
        arn:partition:s3-outposts:region:account_ID:object_path
        AWS::SSMMessages::ControlChannel
        arn:partition:ssmmessages:region:account_ID:control-channel/control_channel_ID
        AWS::Timestream::Database
        arn:partition:timestream:region:account_ID:database/database_name
        AWS::Timestream::Table
        arn:partition:timestream:region:account_ID:database/database_name/table/table_name
        AWS::VerifiedPermissions::PolicyStore
        arn:partition:verifiedpermissions:region:account_ID:policy-store/policy_store_ID

        1 特定の S3 バケット内のすべてのオブジェクトのすべてのデータイベントをログ記録するには、StartsWith 演算子を使用し、一致する値としてバケット ARN のみを含めます。末尾のスラッシュは意図的です。除外しないでください。

        2 S3 アクセスポイントのすべてのオブジェクトでイベントをログ記録するには、アクセスポイント ARN のみを使用し、オブジェクトパスを含めず、StartsWith または NotStartsWith 演算子を使用することを推奨します。

      データイベントリソースの ARN 形式の詳細については、AWS Identity and Access Management ユーザーガイドの「アクション、リソース、条件キー」を参照してください。

    2. 各フィールドについて、[+ Conditions] を選択して、必要な数の条件を追加します。すべての条件に対して最大 500 個の指定値を指定できます。例えば、証跡に記録されているデータイベントから 2 つの S3 バケットのデータイベントを除外するには、フィールドを resources.ARN に、オペレータを NotStartsWith に設定し、S3 バケット ARN に貼り付けるか、イベントをログに記録しない S3 バケットを参照します。

      2 番目の S3 バケットを追加するには、[+ Conditions] を選択し、上記の手順を繰り返し、ARN に貼り付けるか、別のバケットをブラウズします。

      注記

      証跡上のすべてのセレクタに対して、最大 500 の値を設定できます。これには、eventName などのセレクタの複数の値の配列が含まれます。すべてのセレクタに単一の値がある場合、セレクタに最大 500 個の条件を追加できます。

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

    3. [+ Field] を選択し、必要に応じてフィールドを追加します。エラーを回避するには、フィールドに競合する値や重複する値を設定しないでください。例えば、あるセレクタで ARN を値と等しく指定せず、次に、別のセレクタで同じ値に等しくない ARN を指定します。

    4. カスタムセレクタテンプレートへの変更を保存するには、[Next] をクリックします。別のログセレクタテンプレートを選択しないでください。また、このページを離れると、カスタムセレクタが失われます。

  16. データイベントをログに記録する別のデータタイプを追加するには、[Add data event type] を選択します。ステップ 12 からこのステップを繰り返し、データイベントタイプのアドバンストイベントセレクタを設定します。

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

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

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

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

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

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

  20. 新しい証跡が [Trails] (証跡) ページに表示されます。組織の証跡がすべてのメンバーアカウントのすべてのリージョンで作成されるまでに、最大で 24 時間かかることがあります。[Trails (証跡)] ページでは、すべてのリージョンを対象に、アカウント内の証跡が表示されます。約 5 分で、CloudTrail がログファイルを発行し、組織内で実行された AWS API コールが表示されます。ユーザーは、指定した Amazon S3 バケット内のログファイルを確認することができます。

注記

証跡の作成後に証跡名を変更することはできません。ただし、証跡を削除して新しい証跡を作成することは可能です。

次のステップ

証跡を作成したら、証跡に戻って次の変更を加えることができます。

注記

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