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 ログ

重要

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

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

ユーザーアクセス許可

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

  • logs:CreateLogDelivery

  • logs:PutResourcePolicy

  • logs:DescribeResourcePolicies

  • logs:DescribeLogGroups

    注記

    logs:DescribeLogGroupslogs: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許可がロググループに設定されているユーザーがいる場合、 はログの CloudWatch ログへの送信を開始すると、次のポリシー AWS を自動的に作成します。

{ "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 文字のサイズ制限に近づいたことを検出した場合、そのサービスのリソースポリシー/aws/vendedlogs/*で CloudWatch を自動的に有効にします。その後、/aws/vendedlogs/ で始まる名前のロググループをこれらのサービスからのログの送信先として使用し始めることができます。

Amazon S3 に送信されたログ

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

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許可を持っている場合、Amazon S3 へのログの送信を開始すると、 によって次のポリシー AWS が自動的に作成されます。

{ "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 アクセス許可を持っているという場合は、そのステートメントがバケットのリソースポリシーに追加されます。

注記

アクセスs3:ListBucket許可 AWS CloudTrail が に付与されていない場合、 にAccessDeniedエラーが表示されることがあります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 Key Management Service (SSE-) に保存されている AWS KMS キーによるサーバー側の暗号化のいずれかを有効にします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 はリソースポリシーを使用しないため、これらのログを Firehose に送信するように設定するときに IAM ロール AWS を使用します。 という名前のサービスにリンクされたロール 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 のいずれかの送信先へのログ配信をセットアップできる柔軟な方法です。

作業ログ配信は、次の 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" ], "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" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:*" ] } ] }

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

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

{ "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 文字のサイズ制限に近づいたことを検出した場合、 CloudWatch Logs はそのサービスのリソースポリシー/aws/vendedlogs/*で を自動的に有効にします。その後、/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" ], "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" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

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

{ "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 アクセス許可を持っているという場合は、そのステートメントがバケットのリソースポリシーに追加されます。

注記

アクセスs3:ListBucket許可 AWS CloudTrail が に付与されていない場合、 にAccessDeniedエラーが表示されることがあります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 Key Management Service (SSE-) に保存されている AWS KMS キーによるサーバー側の暗号化のいずれかを有効にします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" ], "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" ], "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 はリソースポリシーを使用しないため、これらのログを Firehose に送信するように設定するときに IAM ロール AWS を使用します。 という名前のサービスにリンクされたロール 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": [ "*" ] } ] }

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

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

CloudWatch Logs が別のサービスに付与するアクセス許可をリソースポリシーで制限するにはaws:SourceArnaws:SourceAccountaws:SourceOrgID、、、、および aws:SourceOrgPaths グローバル条件コンテキストキーを使用することをお勧めします。1 つのリソースだけをクロスサービスのアクセスに関連付ける場合は、aws:SourceArn を使用します。アカウント内の任意のリソースをクロスサービスの使用に関連付ける場合は、aws:SourceAccount を使用します。組織内の任意のアカウントの任意のリソースをクロスサービスの使用に関連付ける場合は、aws:SourceOrgID を使用します。 AWS Organizations パス内の任意のアカウントのリソースをクロスサービスの使用に関連付ける場合は、aws:SourceOrgPaths を使用します。パスの使用と理解の詳細については、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 管理ポリシーの更新をログに記録します。

このサービスがこれらの変更の追跡を開始した以降の CloudWatch 、 ログの AWS マネージドポリシーの更新に関する詳細を表示します。このページの変更に関する自動アラートを受け取るには、 CloudWatch ログドキュメント履歴ページのRSSフィードにサブスクライブします。

変更 説明 日付

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

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

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

2021 年 7 月 15 日

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

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

2021 年 6 月 10 日