AWS サービスからのログ記録の有効化 - Amazon CloudWatch Logs

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

AWS サービスからのログ記録の有効化

多くのサービスはログのみを CloudWatch Logs に発行しますが、一部の AWS サービスはログを Amazon Simple Storage Service または Amazon Kinesis Data Firehose に直接発行できます。ログの主な要件がストレージまたはこのいずれかのサービスでの処理である場合、追加のセットアップなしに、サービスで簡単にログを作成し、直接 Amazon S3 または Kinesis Data Firehose に配信することができます。

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

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

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

ログタイプ CloudWatch Logs Amazon S3 Kinesis Data Firehose

Amazon API Gateway アクセスログ

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

AWS AppSync ログ

サポート

Amazon Aurora MySQL ログ

サポート

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

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

CloudFront: アクセスログ

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

AWS CloudHSM 監査ログ

サポート

CloudWatch Evidently 評価イベントログ

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

CloudWatch Internet Monitor ログ

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

CloudTrail ログ

サポート

AWS CodeBuild ログ

サポート

Amazon Cognito ログ

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

Amazon Connect のログ

サポート

AWS DataSync ログ

サポート

Amazon ElastiCache for Redis ログ

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

AWS Elastic Beanstalk ログ

サポート

Amazon Elastic Container Service のログ

サポート

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

サポート

AWS Fargate ログ

サポート

AWS Fault Injection Service 実験ログ

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

Amazon FinSpace

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

AWS Global Accelerator フローログ

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

AWS Glue ジョブログ

サポート

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 CodeWhisperer

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

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

一部の AWS サービスは、共通のインフラストラクチャを使用してログを CloudWatch Logs、Amazon S3、または Kinesis Data Firehose に送信します。以下の表にリストされている AWS のサービスがこれらの宛先にログを送信できるようにするには、特定のアクセス許可を持つユーザーとしてログインする必要があります。

さらに、ログを送信できるようにするには、 AWS にアクセス許可を付与する必要があります。これらのアクセス許可は、ログのセットアップ時に で AWS 自動的に作成することも、ログ記録を設定する前に自分で作成することもできます。

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

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

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

ログに送信される CloudWatch ログ

重要

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

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

ユーザーアクセス許可

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

  • logs:CreateLogDelivery

  • logs:PutResourcePolicy

  • logs:DescribeResourcePolicies

  • logs:DescribeLogGroups

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

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

ログが送信されているロググループには、特定のアクセス許可が含まれるリソースポリシーが必要です。現在、ロググループにリソースポリシーがなく、ログ記録をセットアップしているユーザーがロググループの logs:PutResourcePolicylogs:DescribeResourcePolicies、および アクセスlogs:DescribeLogGroups許可を持っているという場合は、ログを CloudWatch Logs に送信し始めると、 によって次のポリシー 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 Logs リソースポリシーは 5,120 文字に制限されています。このため、多数のロググループにログを送信するサービスは、この上限に到達する可能性があります。

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

Amazon S3 に送信されたログ

重要

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

このセクションは、以下のタイプのログが Amazon S3 に送信される場合に適用されます。

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

  • Amazon EC2 スポットインスタンスのデータフィード

  • AWS Global Accelerator フローログ

  • Amazon Managed Streaming for Apache Kafka ブローカーログ

  • Network Load Balancer アクセスログ

  • AWS Network Firewall ログ

  • Amazon Virtual Private Cloud フローログ

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

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

ユーザーアクセス許可

これらのタイプのログの 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:*"] } } } ] }

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

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

注記

アクセス AWS CloudTrail s3:ListBucket許可が に付与されていない場合、 に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-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:*"] } } }

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

Kinesis Data Firehose にログを送信する

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

ユーザーアクセス許可

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

  • logs:CreateLogDelivery

  • firehose:TagDeliveryStream

  • iam:CreateServiceLinkedRole

これらのタイプのログのいずれかが Kinesis Data Firehose にすでに送信されている場合、これらの中の別のログを Kinesis Data Firehose に送信するためのセットアップに必要となるのは logs:CreateLogDelivery および firehose:TagDeliveryStream 許可のみです。

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

Kinesis Data Firehose はリソースポリシーを使用しないため、 はこれらのログを Kinesis Data 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 タグが に設定されているすべての Kinesis Data 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 、または Kinesis Data Firehose の 1 つ以上の宛先へのログ配信を設定できる柔軟な方法です。

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

  • 配信元を作成します。配信元は、実際にログを送信するリソースを表す論理オブジェクトです。詳細については、「」を参照してくださいPutDeliverySource

  • 実際の配信先を表す論理オブジェクトである配信先を作成します。詳細については、「」を参照してくださいPutDeliveryDestination

  • クロスアカウントでログを配信する場合は、送信先アカウントPutDeliveryDestinationPolicyで を使用して、送信先に IAM ポリシーを割り当てる必要があります。このポリシーにより、その宛先への配信が許可されます。

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

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

API ではなくコンソールを使用してログ配信を設定する場合は、以下のセクションに記載されているアクセス許可に加えて、以下の追加アクセス許可も必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "firehose:ListDeliveryStreams", "firehose:DescribeDeliveryStream", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:*", "arn:aws:firehose:region:account-id:deliverystream/*", "arn:aws:s3:::*" ] } ] }

ログに送信される CloudWatch ログ

ユーザーアクセス許可

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

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

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

ログが送信されているロググループには、特定のアクセス許可が含まれるリソースポリシーが必要です。現在、ロググループにリソースポリシーがなく、ログ記録をセットアップしているユーザーがロググループの logs:PutResourcePolicylogs:DescribeResourcePolicies、および アクセスlogs:DescribeLogGroups許可を持っているという場合は、ログを CloudWatch Logs に送信し始めると、 によって次のポリシー 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 Logs リソースポリシーは 5,120 文字に制限されています。このため、多数のロググループにログを送信するサービスは、この上限に到達する可能性があります。

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

Amazon S3 に送信されたログ

ユーザーアクセス許可

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

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:GetDeliverySource", "logs:DeleteDeliverySource", "logs:DescribeDeliverySources", "logs:PutDeliveryDestination", "logs:GetDeliveryDestination", "logs:DeleteDeliveryDestination", "logs:DescribeDeliveryDestinations", "logs:CreateDelivery", "logs:GetDelivery", "logs:DeleteDelivery", "logs:DescribeDeliveries", "logs:PutDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliveryDestinationPolicy" ], "Resource": [ "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "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:*"] } } } ] }

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

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

注記

アクセス AWS CloudTrail s3:ListBucket許可が に付与されていない場合、 に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-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:*"] } } }

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

Kinesis Data Firehose にログを送信する

ユーザーアクセス許可

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

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:GetDeliverySource", "logs:DeleteDeliverySource", "logs:DescribeDeliverySources", "logs:PutDeliveryDestination", "logs:GetDeliveryDestination", "logs:DeleteDeliveryDestination", "logs:DescribeDeliveryDestinations", "logs:CreateDelivery", "logs:GetDelivery", "logs:DeleteDelivery", "logs:DescribeDeliveries", "logs:PutDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliveryDestinationPolicy" ], "Resource": [ "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream", "iam:CreateServiceLinkedRole" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }] }

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

Kinesis Data Firehose はリソースポリシーを使用しないため、 はこれらのログを Kinesis Data 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 タグが に設定されているすべての Kinesis Data Firehose 配信ストリームに対するアクセス許可を付与しますtrue。ログ記録を設定すると、このタグが送信先配信ストリームに AWS 付与されます。

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

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

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

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

リソースポリシーで aws:SourceArnおよび aws:SourceAccount グローバル条件コンテキストキーを使用して、 CloudWatch ログを生成しているサービスに Logs および Amazon S3 が付与するアクセス許可を制限することをお勧めします。両方のグローバル条件コンテキストキーを同じポリシーステートメントで使用する場合は、aws:SourceAccount 値と、aws:SourceArn 値に含まれるアカウントが、同じアカウント ID を示している必要があります。

aws:SourceArn の値は、ログを生成している配信リソースの ARN でなければなりません。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して aws:SourceArn グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合は、aws:SourceArn グローバルコンテキスト条件キーを使用して、ARN の未知部分をワイルドカード (*) で表します。

このページの前のセクションにあるポリシーでは、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 日