翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 ログ
重要
次のリストのログタイプを CloudWatch Logs に送信するように設定すると、 は必要に応じてログを受け取るロググループに関連付けられたリソースポリシー 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
許可がロググループに設定されているユーザーがいる場合、 はログの 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:PutResourcePolicy
、logs: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ロールに付与できます。
重要
ログ生成リソースを削除した後、ログ配信リソースを削除するのはユーザーの責任です。そのためには、以下の手順に従います。
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" ], "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:PutResourcePolicy
、logs: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:SourceArn
aws:SourceAccount
aws: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:SourceArn
と aws:SourceAccount
グローバル条件コンテキストキーを使って、混乱した代理問題を防ぐ方法を示しています。
CloudWatch AWS 管理ポリシーの更新をログに記録します。
このサービスがこれらの変更の追跡を開始した以降の CloudWatch 、 ログの AWS マネージドポリシーの更新に関する詳細を表示します。このページの変更に関する自動アラートを受け取るには、 CloudWatch ログドキュメント履歴ページのRSSフィードにサブスクライブします。
変更 | 説明 | 日付 |
---|---|---|
AWSServiceRoleForLogDelivery サービスにリンクされたロールポリシー – 既存のポリシーへの更新 |
CloudWatch ログは、AWSServiceRoleForLogDeliveryサービスにリンクされたロールに関連付けられたIAMポリシーのアクセス許可を変更しました。以下の変更が行われました。
|
2021 年 7 月 15 日 |
CloudWatch ログが変更の追跡を開始しました |
CloudWatch ログが AWS マネージドポリシーの変更の追跡を開始しました。 |
2021 年 6 月 10 日 |