からのログ記録を有効にする AWS サービス - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

からのログ記録を有効にする AWS サービス

多くの サービスはログのみを CloudWatch Logs に発行しますが、 AWS サービスは、Amazon Simple Storage Service または Amazon Data Firehose に直接ログを発行できます。ログの主な要件が、これらのサービスのいずれかでのストレージまたは処理である場合は、ログを生成するサービスが追加設定なしで Amazon S3 または Firehose に直接ログを送信できるようにすることが容易です。

ログが Amazon S3 または Firehose に直接公開された場合でも、料金が適用されます。詳細については、「Amazon 料金表」の「ログ」タブの「販売されたログ」を参照してください。 CloudWatch

ある程度 AWS サービスは、共通のインフラストラクチャを使用してログを送信します。これらのサービスからのロギングを有効にするには、特定の権限を持つユーザーとしてログインする必要があります。さらに、 にアクセス許可を付与する必要があります。 AWS ログの送信を有効にします。

これらのアクセス許可を必要とするサービスの場合、必要なアクセス許可には 2 つのバージョンがあります。これらの追加のアクセス許可を必要とするサービスは、表に [サポートあり [V1 アクセス許可]] および [サポートあり [V2 アクセス許可]] と表示されます。これらの必要な権限については、表の後のセクションを参照してください。

ログソース ログタイプ CloudWatch Logs Amazon S3 Firehose

Amazon API Gateway アクセスログ

提供されるログ

サポートあり [V1 アクセス許可]

AWS AppSync ログ

カスタムログ

サポート

Amazon Aurora My SQLログ

カスタムログ

サポート

Amazon Bedrock ナレッジベースのログ記録

提供されるログ サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可]

Amazon Chime メディア品質メトリクスログとSIPメッセージログ

提供されるログ

サポートあり [V1 アクセス許可]

CloudFront: アクセスログ

提供されるログ サポートあり [V1 アクセス許可]

AWS CloudHSM 監査ログ

カスタムログ

サポート

CloudWatch Evidently 評価イベントログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

CloudWatch Internet Monitor ログ

提供されるログ サポートあり [V1 アクセス許可]

CloudTrail ログ

カスタムログ

サポート

AWS CodeBuild ログ

カスタムログ

サポート

Amazon CodeWhisperer イベントログ

提供されるログ サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可]

Amazon Cognito ログ

提供されるログ サポートあり [V1 アクセス許可]

Amazon Connect のログ

カスタムログ

サポート

AWS DataSync ログ

カスタムログ

サポート

Amazon ElastiCache (Redis OSS) ログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS Elastic Beanstalk ログ

カスタムログ

サポート

Amazon Elastic Container Service のログ

カスタムログ

サポート

Amazon Elastic Kubernetes Service コントロールプレーンのログ

提供されるログ

サポート

AWS Elemental MediaTailor ログ

提供されるログ

サポート

Amazon EventBridge パイプのログ記録

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS Fargate ログ

カスタムログ

サポート

AWS Fault Injection Service 実験ログ

提供されるログ サポートあり [V1 アクセス許可]

Amazon FinSpace

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS Global Accelerator フローログ

提供されるログ サポートあり [V1 アクセス許可]

AWS Glue ジョブログ

カスタムログ

サポート

IAM Identity Center エラーログ

提供されるログ サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可]

Amazon Interactive Video Service チャット ログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS IoT ログ

カスタムログ

サポート

AWS IoT FleetWise ログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS Lambda ログ

カスタムログ

サポート

Amazon Macie のログ

カスタムログ

サポート

AWS Mainframe Modernization

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

Amazon Managed Service for Prometheus のログ

提供されるログ

サポートあり [V1 アクセス許可]

Amazon MSK ブローカーログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

Amazon MSK Connect ログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

Amazon MQ の一般ログと監査ログ

カスタムログ

サポート

AWS Network Firewall ログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

Network Load Balancer アクセスログ

提供されるログ サポートあり [V1 アクセス許可]

OpenSearch ログ

カスタムログ

サポート

Amazon OpenSearch Service の取り込みログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS OpsWorks ログ

カスタムログ

サポート

Amazon Relational Database ServicePostgreSQL ログ

カスタムログ

サポート

AWS RoboMaker ログ

カスタムログ

サポート

Amazon Route 53 パブリックDNSクエリログ

提供されるログ

サポート

Amazon Route 53 Resolver クエリログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

Amazon SageMaker イベント

提供されるログ

サポートあり [V1 アクセス許可]

Amazon SageMaker ワーカーイベント

提供されるログ

サポートあり [V1 アクセス許可]

AWS Site-to_Site VPNログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

Amazon Simple Notification Service のログ

カスタムログ

サポート

Amazon Simple Notification Service のデータ保護ポリシーログ

カスタムログ

サポート

EC2 スポットインスタンスのデータフィードファイル

提供されるログ

サポートあり [V1 アクセス許可]

AWS Step Functions Express ワークフローと標準ワークフローのログ

提供されるログ

サポートあり [V1 アクセス許可]

Storage Gateway 監査ログとヘルスログ

提供されるログ

サポートあり [V1 アクセス許可]

AWS Transfer Family ログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

AWS Verified Access ログ

提供されるログ

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

サポートあり [V1 アクセス許可]

Amazon Virtual Private Cloud フローログ

提供されるログ

サポート

サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

Amazon VPC Lattice アクセスログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

AWS WAF ログ

提供されるログ サポートあり [V1 アクセス許可] サポートあり [V1 アクセス許可]

サポート

Amazon WorkMail ログ

提供されるログ サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可] サポートあり [V2 アクセス許可]

追加のアクセス許可が必要なロギング [V1]

ある程度 AWS サービスは、共通のインフラストラクチャを使用してログを CloudWatch Logs、Amazon S3、または Firehose に送信します。を有効にするには AWS これらの送信先にログを送信するには、次の表に示す のサービスに、特定のアクセス許可を持つユーザーとしてログインする必要があります。

さらに、アクセス許可は に付与する必要があります。 AWS ログの送信を有効にします。 AWS は、ログの設定時にこれらのアクセス許可を自動的に作成できます。または、ログ記録を設定する前に、最初に自分で作成することもできます。クロスアカウント配信の場合は、アクセス許可ポリシーを手動で作成する必要があります。

を にすることを選択した場合 AWS お客様または組織内の誰かが最初にログの送信を設定するときに、必要なアクセス許可とリソースポリシーを自動的に設定します。この場合、このセクションで後述するように、ログの送信を設定するユーザーには特定のアクセス許可が必要です。または、リソースポリシーをユーザーが独自に作成することもできます。そうすると、ログの送信を設定するユーザーがそれほど多くのアクセス許可を持つ必要がなくなります。

次の表は、このセクションの情報が適用されるログの種類とログの送信先の概要です。

以下のセクションでは、これらの各送信先について詳しく説明します。

ログに送信された CloudWatch ログ

重要

次のリストのログタイプを Logs CloudWatch に送信するように設定すると、 AWS 必要に応じて、 はログを受け取るロググループに関連付けられたリソースポリシーを作成または変更します。詳細については、このセクションを続けてお読みください。

このセクションは、前のセクションの表にリストされているログのタイプが CloudWatch Logs に送信される場合に適用されます。

ユーザーアクセス許可

これらのタイプのログを初めて CloudWatch Logs に送信できるように設定するには、次のアクセス許可を持つアカウントにログインする必要があります。

  • logs:CreateLogDelivery

  • logs:PutResourcePolicy

  • logs:DescribeResourcePolicies

  • logs:DescribeLogGroups

    注記

    logs:DescribeLogGroups、、logs:DescribeResourcePoliciesまたは アクセスlogs:PutResourcePolicy許可を指定する場合は、1 つのロググループ名のみを指定するのではなく、必ずそのResource行ARNの を*ワイルドカードを使用するように設定してください。例えば、"Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*"

これらのタイプのログのいずれかが CloudWatch Logs のロググループにすでに送信されている場合、同じロググループへの別のタイプのログの送信を設定するには、 アクセスlogs:CreateLogDelivery許可のみが必要です。

ロググループのリソースポリシー

ログが送信されているロググループには、特定のアクセス許可が含まれるリソースポリシーが必要です。ロググループに現在リソースポリシーがなく、ログ記録を設定するユーザーがロググループの logs:PutResourcePolicylogs:DescribeResourcePolicies、および アクセスlogs:DescribeLogGroups許可を持っている場合、 AWS は、ログを CloudWatch Logs に送信し始めると、次のポリシーを自動的に作成します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

ロググループにリソースポリシーがあるが、上記のポリシーにある文がそのポリシーに含まれておらず、ロギングをセットアップしているユーザーがロググループに対する logs:PutResourcePolicylogs:DescribeResourcePolicies、および logs:DescribeLogGroups 許可を持っているという場合は、その文がロググループのリソースポリシーに追加されます。

ロググループリソースポリシーのサイズ制限に関する考慮事項

これらのサービスは、リソースポリシーでログを送信する各ロググループをリストする必要があります。 CloudWatch ログリソースポリシーは 5,120 文字に制限されています。多数のロググループにログを送信するサービスは、この制限に達する可能性があります。

これを軽減するために、 CloudWatch Logs はログを送信しているサービスが使用するリソースポリシーのサイズをモニタリングし、ポリシーが 5120 文字のサイズ制限に近づいたことを検出した場合、 CloudWatch Logs はそのサービスのリソースポリシー/aws/vendedlogs/*で を自動的に有効にします。その後、/aws/vendedlogs/ で始まる名前のロググループをこれらのサービスからのログの送信先として使用し始めることができます。

Amazon S3 に送信されたログ

Amazon S3 にログを送信するように設定すると、 AWS 必要に応じて、 はログを受信している S3 バケットに関連付けられたリソースポリシーを作成または変更します。

Amazon S3 に直接発行されたログは、指定する既存のバケットに発行されます。指定したバケットで、5 分おきに 1 つ以上のログが作成されます。

ログを Amazon S3 バケットに初めて配信する場合、ログを配信するサービスはバケットの所有者を記録し、ログがこのアカウントに属するバケットにのみ配信されるようにします。その結果、Amazon S3 バケット所有者を変更するには、元のサービスでログサブスクリプションを再作成または更新する必要があります。

注記

CloudFront は、提供されたログを S3 に送信する他の サービスとは異なるアクセス許可モデルを使用します。詳細については、「標準ログ記録の設定およびログファイルへのアクセスに必要なアクセス許可」を参照してください。

さらに、 CloudFront アクセスログと別のログソースに同じ S3 バケットを使用する場合、 をバケットACLで有効にすると、このバケットを使用する他のすべてのログソース CloudFront にもアクセス許可が付与されます。

ユーザーアクセス許可

これらのタイプのログの Amazon S3 への送信を初めてセットアップするには、以下のアクセス許可でアカウントにログインする必要があります。

  • logs:CreateLogDelivery

  • S3:GetBucketPolicy

  • S3:PutBucketPolicy

これらのタイプのログのいずれかが Amazon S3 バケットにすでに送信されている場合、これらの中の別のログを同じバケットに送信するためのセットアップに必要となるのは logs:CreateLogDelivery アクセス許可のみです。

S3 バケットのリソースポリシー

ログが送信されている S3 バケットには、特定のアクセス許可が含まれるリソースポリシーが必要です。バケットに現在リソースポリシーがなく、ログ記録を設定するユーザーがバケットの S3:GetBucketPolicyおよび アクセスS3:PutBucketPolicy許可を持っている場合、 AWS Amazon S3 へのログの送信を開始すると、 によって次のポリシーが自動的に作成されます。

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

前のポリシーの IDSでaws:SourceAccount、このバケットにログが配信されるアカウントのリストを指定します。にはaws:SourceArn、ログを生成するリソースARNsのリストを の形式で指定しますarn:aws:logs:source-region:source-account-id:*

バケットにリソースポリシーがあるが、上記のポリシーにあるステートメントがそのポリシーに含まれておらず、ロギングをセットアップしているユーザーがバケットに対する S3:GetBucketPolicy および S3:PutBucketPolicy アクセス許可を持っているという場合は、そのステートメントがバケットのリソースポリシーに追加されます。

注記

場合によっては、 でAccessDeniedエラーが表示されることがあります。 AWS CloudTrail アクセスs3:ListBucket許可が に付与されていない場合delivery.logs.amazonaws.com。これらのエラーが CloudTrail ログに記録されないようにするには、 に アクセスs3:ListBucket許可を付与delivery.logs.amazonaws.comし、前述のバケットポリシーの s3:GetBucketAcl アクセス許可セットで表示されるConditionパラメータを含める必要があります。これを簡単にするには、新しい Statement を作成する代わりに、AWSLogDeliveryAclCheck“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”] であるように直接更新することができます

Amazon S3 バケットのサーバー側の暗号化

Amazon S3 バケット内のデータを保護するには、Amazon S3 でS3-managedされたキーによるサーバー側の暗号化 (SSE-S3) または によるサーバー側の暗号化のいずれかを有効にします。 AWS KMS に保存されている キー AWS Key Management Service (SSE-KMS)。詳細については、「サーバー側の暗号化を使用したデータの保護」を参照してください。

SSE-S3 を選択した場合、追加の設定は必要ありません。Amazon S3 が暗号化キーを処理します。

警告

SSE- を選択した場合はKMS、カスタマーマネージドキーを使用する必要があります。これは、 を使用するためです。 AWS マネージドキーは、このシナリオではサポートされていません。を使用して暗号化を設定する場合 AWS マネージドキー、ログは読み取り不可能な形式で配信されます。

カスタマーマネージド を使用する場合 AWS KMS キー、バケット暗号化を有効にするときに、カスタマーマネージドキーの Amazon リソースネーム (ARN) を指定できます。ログデリバリーアカウントが S3 バケットに書き込めるように、カスタマーマネージドキーのキーポリシー (S3 バケットのバケットポリシーではありません) に次を追加する必要があります。

SSE- を選択した場合はKMS、カスタマーマネージドキーを使用する必要があります。これは、 を使用するためです。 AWS マネージドキーは、このシナリオではサポートされていません。カスタマーマネージド を使用する場合 AWS KMS キー、バケット暗号化を有効にするときに、カスタマーマネージドキーの Amazon リソースネーム (ARN) を指定できます。ログデリバリーアカウントが S3 バケットに書き込めるように、カスタマーマネージドキーのキーポリシー (S3 バケットのバケットポリシーではありません) に次を追加する必要があります。

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }

IDS にはaws:SourceAccount、ログがこのバケットに配信されるアカウントのリストを指定します。にはaws:SourceArn、ログを生成するリソースARNsのリストを の形式で指定しますarn:aws:logs:source-region:source-account-id:*

Firehose に送信されたログ

このセクションは、前のセクションの表にリストされているログのタイプが Firehose に送信される場合に適用されます。

ユーザーアクセス許可

これらのタイプのログのいずれかを Firehose に初めて送信するように設定するには、次のアクセス許可を持つアカウントにログインする必要があります。

  • logs:CreateLogDelivery

  • firehose:TagDeliveryStream

  • iam:CreateServiceLinkedRole

これらのタイプのログのいずれかが Firehose にすでに送信されている場合、これらのタイプの別のログの Firehose への送信を設定するには、 logs:CreateLogDeliveryおよび firehose:TagDeliveryStream許可のみが必要です。

アクセス許可のために使用される IAM ロール

Firehose はリソースポリシーを使用しないため、 AWS は、これらのログを Firehose に送信するように設定するときにIAMロールを使用します。 AWS は、 という名前のサービスにリンクされたロールを作成します。 AWSServiceRoleForLogDelivery。 このサービスにリンクされたロールには、次のアクセス許可が含まれます。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

このサービスにリンクされたロールは、 LogDeliveryEnabled タグが に設定されているすべての Firehose 配信ストリームにアクセス許可を付与しますtrue。 AWS は、ログ記録を設定するときに、このタグを送信先配信ストリームに付与します。

このサービスリンクロールには、delivery.logs.amazonaws.com サービスプリンシパルが必要なサービスリンクロールを引き受けることを可能にする信頼ポリシーもあります。以下がその信頼ポリシーです。

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

追加のアクセス許可が必要なロギング [V2]

ある程度 AWS サービスは、新しい メソッドを使用してログを送信します。これは、これらのサービスからログ、Amazon S3 CloudWatch 、または Firehose の 1 つ以上の宛先へのログ配信をセットアップできる柔軟な方法です。

作業ログ配信は、次の 3 つの要素で構成されます。

  • DeliverySource、実際にログを送信するリソースを表す論理オブジェクトです。

  • DeliveryDestination、実際の配信先を表す論理オブジェクトです。

  • 配信元を配信先Deliveryに接続する 。

サポートされている 間でログ配信を設定するには AWS サービスと送信先では、以下を実行する必要があります。

  • を使用して配信ソースを作成しますPutDeliverySource

  • を使用して配信先を作成しますPutDeliveryDestination

  • クロスアカウントでログを配信する場合は、送信先アカウント PutDeliveryDestinationPolicyで を使用して を割り当てる必要があります。 IAM 送信先への ポリシー。このポリシーは、アカウント A の配信元からアカウント B の配信先への配信の作成を許可します。クロスアカウント配信の場合は、アクセス許可ポリシーを手動で作成する必要があります。

  • を使用して、1 つの配信元と 1 CreateDeliveryつの配信先をペアリングして配信を作成します。

以下のセクションでは、V2 プロセスを使用して各タイプの宛先へのログ配信を設定するためにサインインしたときに必要なアクセス許可の詳細について説明します。これらのアクセス許可は、サインインしている IAMロールに付与できます。

重要

ログ生成リソースを削除した後、ログ配信リソースを削除するのはユーザーの責任です。これを行うには、次の手順に従います。

  1. DeleteDelivery オペレーションDeliveryを使用して を削除します。

  2. DeleteDeliverySource オペレーションDeliverySourceを使用して を削除します。

  3. 削除DeliverySourceした DeliveryDestinationに関連付けられた がこの特定の にのみ使用される場合はDeliverySourceDeleteDeliveryDestinationsオペレーションを使用して削除できます。

ログに送信された CloudWatch ログ

ユーザーアクセス許可

CloudWatch Logs へのログの送信を有効にするには、次のアクセス許可でサインインする必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:*" ] } ] }

ロググループのリソースポリシー

ログが送信されているロググループには、特定のアクセス許可が含まれるリソースポリシーが必要です。ロググループに現在リソースポリシーがなく、ログ記録を設定するユーザーがロググループの logs:PutResourcePolicylogs:DescribeResourcePolicies、および アクセスlogs:DescribeLogGroups許可を持っている場合、 AWS は、ログを CloudWatch Logs に送信し始めると、次のポリシーを自動的に作成します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

ロググループリソースポリシーのサイズ制限に関する考慮事項

これらのサービスは、リソースポリシーでログを送信する各ロググループをリストする必要があります。また、 CloudWatch ログリソースポリシーは 5,120 文字に制限されています。このため、多数のロググループにログを送信するサービスは、この上限に到達する可能性があります。

これを軽減するために、 CloudWatch Logs はログを送信しているサービスが使用するリソースポリシーのサイズをモニタリングし、ポリシーが 5120 文字のサイズ制限に近づいたことを検出した場合、そのサービスのリソースポリシー/aws/vendedlogs/*で CloudWatch を自動的に有効にします。その後、/aws/vendedlogs/ で始まる名前のロググループをこれらのサービスからのログの送信先として使用し始めることができます。

Amazon S3 に送信されたログ

ユーザーアクセス許可

Amazon S3 へのログ送信を有効にするには、次のアクセス許可でサインインする必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

ログが送信されている S3 バケットには、特定のアクセス許可が含まれるリソースポリシーが必要です。バケットに現在リソースポリシーがなく、ログ記録を設定するユーザーがバケットの S3:GetBucketPolicyおよび アクセスS3:PutBucketPolicy許可を持っている場合、 AWS Amazon S3 へのログの送信を開始すると、 によって次のポリシーが自動的に作成されます。

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source:*"] } } } ] }

前のポリシーの IDSでaws:SourceAccount、このバケットにログが配信されるアカウントのリストを指定します。にはaws:SourceArn、ログを生成するリソースARNsのリストを の形式で指定しますarn:aws:logs:source-region:source-account-id:*

バケットにリソースポリシーがあるが、上記のポリシーにあるステートメントがそのポリシーに含まれておらず、ロギングをセットアップしているユーザーがバケットに対する S3:GetBucketPolicy および S3:PutBucketPolicy アクセス許可を持っているという場合は、そのステートメントがバケットのリソースポリシーに追加されます。

注記

場合によっては、 でAccessDeniedエラーが表示されることがあります。 AWS CloudTrail アクセスs3:ListBucket許可が に付与されていない場合delivery.logs.amazonaws.com。これらのエラーが CloudTrail ログに記録されないようにするには、 に アクセスs3:ListBucket許可を付与delivery.logs.amazonaws.comし、前述のバケットポリシーの アクセスs3:GetBucketAcl許可セットで表示されるConditionパラメータを含める必要があります。これを簡単にするには、新しい Statement を作成する代わりに、AWSLogDeliveryAclCheck“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”] であるように直接更新することができます

Amazon S3 バケットのサーバー側の暗号化

Amazon S3 バケット内のデータを保護するには、Amazon S3 でS3-managedされたキーによるサーバー側の暗号化 (SSE-S3) または によるサーバー側の暗号化のいずれかを有効にします。 AWS KMS キーの保存先 AWS Key Management Service (SSE-KMS)。詳細については、「サーバー側の暗号化を使用したデータの保護」を参照してください。

SSE-S3 を選択した場合、追加の設定は必要ありません。Amazon S3 が暗号化キーを処理します。

警告

SSE- を選択した場合はKMS、カスタマーマネージドキーを使用する必要があります。これは、 を使用するためです。 AWS マネージドキーは、このシナリオではサポートされていません。を使用して暗号化を設定する場合 AWS マネージドキー、ログは読み取り不可能な形式で配信されます。

カスタマーマネージド を使用する場合 AWS KMS キー、バケット暗号化を有効にするときに、カスタマーマネージドキーの Amazon リソースネーム (ARN) を指定できます。ログデリバリーアカウントが S3 バケットに書き込めるように、カスタマーマネージドキーのキーポリシー (S3 バケットのバケットポリシーではありません) に次を追加する必要があります。

SSE- を選択した場合はKMS、カスタマーマネージドキーを使用する必要があります。これは、 を使用するためです。 AWS マネージドキーは、このシナリオではサポートされていません。カスタマーマネージド を使用する場合 AWS KMS キー、バケット暗号化を有効にするときに、カスタマーマネージドキーの Amazon リソースネーム (ARN) を指定できます。ログデリバリーアカウントが S3 バケットに書き込めるように、カスタマーマネージドキーのキーポリシー (S3 バケットのバケットポリシーではありません) に次を追加する必要があります。

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source:*"] } } }

IDS にはaws:SourceAccount、ログがこのバケットに配信されるアカウントのリストを指定します。にはaws:SourceArn、ログを生成するリソースARNsのリストを の形式で指定しますarn:aws:logs:source-region:source-account-id:*

Firehose に送信されたログ

ユーザーアクセス許可

Firehose へのログの送信を有効にするには、次のアクセス許可でサインインする必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/*" ] }, { "Sid": "CreateServiceLinkedRole", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::account-id:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" } ] }

IAM リソースのアクセス許可に使用される ロール

Firehose はリソースポリシーを使用しないため、 AWS は、これらのログを Firehose に送信するように設定するときにIAMロールを使用します。 AWS は、 という名前のサービスにリンクされたロールを作成します。 AWSServiceRoleForLogDelivery。 このサービスにリンクされたロールには、次のアクセス許可が含まれます。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

このサービスにリンクされたロールは、 LogDeliveryEnabled タグが に設定されているすべての Firehose 配信ストリームにアクセス許可を付与しますtrue。 AWS は、ログ記録を設定するときに、このタグを送信先配信ストリームに付与します。

このサービスリンクロールには、delivery.logs.amazonaws.com サービスプリンシパルが必要なサービスリンクロールを引き受けることを可能にする信頼ポリシーもあります。以下がその信頼ポリシーです。

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

サービス固有のアクセス許可

前のセクションで説明した送信先固有のアクセス許可に加えて、一部のサービスでは、セキュリティの追加レイヤーとして、お客様が リソースからログを送信することを許可する明示的な認可が必要です。これは、そのサービス内でログを供給したリソースの AllowVendedLogDeliveryForResource アクションを承認します。これらのサービスでは、次のポリシーを使用して、service また、resource-type 適切な値を指定します。これらのフィールドのサービス固有の値については、これらのサービスのドキュメントページを参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ServiceLevelAccessForLogDelivery", "Effect": "Allow", "Action": [ "service:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:service:region:account-id:resource-type/*" } ] }

コンソール固有のアクセス許可

前のセクションで説明したアクセス許可に加えて、 の代わりにコンソールを使用してログ配信を設定する場合はAPIs、次の追加のアクセス許可も必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActionsConsoleCWL", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleS3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleFH", "Effect": "Allow", "Action": [ "firehose:ListDeliveryStreams", "firehose:DescribeDeliveryStream" ], "Resource": [ "*" ] } ] }

サービス間での不分別な代理処理の防止

混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。In AWS、サービス間のなりすましは、混乱した代理問題を引き起こす可能性があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐには、 AWS は、アカウント内のリソースへのアクセスが許可されているサービスプリンシパルを使用して、すべてのサービスのデータを保護するのに役立つツールを提供します。

CloudWatch Logs が別のサービスに付与するアクセス許可をリソースポリシーで制限するにはaws:SourceArnaws:SourceAccountaws:SourceOrgID、、、、および aws:SourceOrgPaths グローバル条件コンテキストキーを使用することをお勧めします。1 つのリソースだけをクロスサービスのアクセスに関連付ける場合は、aws:SourceArn を使用します。アカウント内の任意のリソースをクロスサービスの使用に関連付ける場合は、aws:SourceAccount を使用します。組織内の任意のアカウントの任意のリソースをクロスサービスの使用に関連付ける場合は、aws:SourceOrgID を使用します。aws:SourceOrgPaths を使用して、 内のアカウントから任意のリソースを関連付ける AWS Organizations クロスサービスで使用する パス。パスの使用と理解の詳細については、「 を理解する」を参照してください。 AWS Organizations エンティティパス

混乱した代理問題から保護する最も効果的な方法は、リソースARNがいっぱいになった aws:SourceArn グローバル条件コンテキストキーを使用することです。リソースARNの全体がわからない場合、または複数のリソースを指定する場合は、 の不明な部分にワイルドカード文字 (*) を含むaws:SourceArnグローバルコンテキスト条件キーを使用しますARN。例えば、arn:aws:servicename:*:123456789012:* と指定します。

aws:SourceArn 値に Amazon S3 バケット などのアカウント ID が含まれていない場合はARN、 aws:SourceAccountと の両方を使用してアクセス許可aws:SourceArnを制限する必要があります。

混乱した代理問題から保護するために、リソースベースポリシー内のリソースの組織 ID または組織パスを指定しながら、aws:SourceOrgID または aws:SourceOrgPaths のグローバル条件コンテキストキーを使用してください。aws:SourceOrgID または aws:SourceOrgPaths キーを含むポリシーには正しいアカウントが自動的に組み込まれるため、組織のアカウントを追加、削除、移動する際には手動で更新する必要はありません。

このページの前のセクションにあるポリシーでは、aws:SourceArnaws:SourceAccount グローバル条件コンテキストキーを使って、混乱した代理問題を防ぐ方法を示しています。

CloudWatch への更新をログに記録します。 AWS 管理ポリシー

の更新に関する詳細を表示する AWS このサービスがこれらの変更の追跡を開始してからの CloudWatch Logs の マネージドポリシー。このページの変更に関する自動通知については、 CloudWatch ログドキュメントの履歴ページのRSSフィードにサブスクライブしてください。

変更 説明 日付

AWSServiceRoleForLogDelivery サービスにリンクされたロールポリシー — 既存のポリシーへの更新

CloudWatch ログによって、 に関連付けられたIAMポリシーのアクセス許可が変更されました AWSServiceRoleForLogDelivery サービスにリンクされたロール。以下の変更が行われました。

  • firehose:ResourceTag/LogDeliveryEnabled": "true" 条件キーが aws:ResourceTag/LogDeliveryEnabled": "true" に変更されました。

2021 年 7 月 15 日

CloudWatch ログが変更の追跡を開始しました

CloudWatch ログが の変更の追跡を開始しました AWS マネージドポリシー。

2021 年 6 月 10 日