翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
からのログ記録を有効にする AWS サービス
多くの サービスはログのみを CloudWatch Logs に発行しますが、 AWS サービスは、Amazon Simple Storage Service または Amazon Data Firehose に直接ログを発行できます。ログの主な要件が、これらのサービスのいずれかでのストレージまたは処理である場合は、ログを生成するサービスが追加設定なしで Amazon S3 または Firehose に直接ログを送信できるようにすることが容易です。
ログが Amazon S3 または Firehose に直接公開された場合でも、料金が適用されます。詳細については、「Amazon 料金表」の「ログ」タブの「販売されたログ」を参照してください。 CloudWatch
ある程度 AWS サービスは、共通のインフラストラクチャを使用してログを送信します。これらのサービスからのロギングを有効にするには、特定の権限を持つユーザーとしてログインする必要があります。さらに、 にアクセス許可を付与する必要があります。 AWS ログの送信を有効にします。
これらのアクセス許可を必要とするサービスの場合、必要なアクセス許可には 2 つのバージョンがあります。これらの追加のアクセス許可を必要とするサービスは、表に [サポートあり [V1 アクセス許可]] および [サポートあり [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:PutResourcePolicy
、logs: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:PutResourcePolicy
、logs: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ロールに付与できます。
重要
ログ生成リソースを削除した後、ログ配信リソースを削除するのはユーザーの責任です。これを行うには、次の手順に従います。
DeleteDelivery オペレーション
Delivery
を使用して を削除します。DeleteDeliverySource オペレーション
DeliverySource
を使用して を削除します。削除
DeliverySource
したDeliveryDestination
に関連付けられた がこの特定の にのみ使用される場合はDeliverySource
、 DeleteDeliveryDestinationsオペレーションを使用して削除できます。
目次
ログに送信された 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:PutResourcePolicy
、logs: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:SourceArn
aws:SourceAccount
aws: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:SourceArn
と aws:SourceAccount
グローバル条件コンテキストキーを使って、混乱した代理問題を防ぐ方法を示しています。
CloudWatch への更新をログに記録します。 AWS 管理ポリシー
の更新に関する詳細を表示する AWS このサービスがこれらの変更の追跡を開始してからの CloudWatch Logs の マネージドポリシー。このページの変更に関する自動通知については、 CloudWatch ログドキュメントの履歴ページのRSSフィードにサブスクライブしてください。
変更 | 説明 | 日付 |
---|---|---|
AWSServiceRoleForLogDelivery サービスにリンクされたロールポリシー — 既存のポリシーへの更新 |
CloudWatch ログによって、 に関連付けられたIAMポリシーのアクセス許可が変更されました AWSServiceRoleForLogDelivery サービスにリンクされたロール。以下の変更が行われました。
|
2021 年 7 月 15 日 |
CloudWatch ログが変更の追跡を開始しました |
CloudWatch ログが の変更の追跡を開始しました AWS マネージドポリシー。 |
2021 年 6 月 10 日 |