View a markdown version of this page

スケジュールされたクエリの S3 送信先の設定 - Amazon CloudWatch Logs

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

スケジュールされたクエリの S3 送信先の設定

スケジュールされたクエリ結果を長期的な保持と分析のために JSON ファイルとして保存する送信先として Amazon S3 を設定します。

Amazon S3 を送信先として使用すると、クエリ結果は指定されたバケットとプレフィックスに JSON ファイルとして保存されます。このオプションは、結果のアーカイブ、バッチ分析の実行、または S3 データを処理する他の AWS サービスとの統合に最適です。

クエリ結果は、スケジュールされたクエリと同じ AWS アカウントの Amazon S3 バケット、または別の AWS アカウントのバケットに配信できます。オプションで、カスタマーマネージド AWS KMS キー (SSE-KMS) を使用してクエリ結果を暗号化することもできます。

同じアカウントの Amazon S3 バケットに結果を配信する

送信先 Amazon S3 バケットがスケジュールされたクエリと同じ AWS アカウントにある場合、コンソールから直接バケットを参照して選択できます。

同じアカウントの Amazon S3 送信先を設定するには (コンソール)
  1. S3 へのクエリ結果の投稿セクションの S3 バケットで、このアカウントを選択します。

  2. Amazon S3 URI の場合は、結果が保存される Amazon S3 バケットとプレフィックス ( などs3://my-bucket/query-results/) を入力するか、Amazon S3 を参照 を選択して移動し、既存の Amazon S3 の場所を選択します。

  3. (オプション) カスタマーマネージド AWS KMS キーを使用して結果を暗号化するには、KMS AWS KMS キー ARN フィールドにキーの ARN を入力します。 キーは、送信先の Amazon S3 バケットと同じ AWS リージョンにある必要があります。 AWS KMS キーを指定しない場合、バケットのデフォルトの暗号化設定が適用されます。

  4. Amazon S3 にクエリ結果を投稿するための IAM ロールセクションで、デフォルトのアクセス許可を持つ新しいロールの自動作成を選択して必要なアクセス許可を自動的に設定するか、既存のロールを使用して必要なポリシーを持つ既存の IAM ロールを選択します。

送信先配信 IAM ロールには、次のアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/prefix/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }

別のアカウントの Amazon S3 バケットに結果を配信する

スケジュールされたクエリ結果を別の AWS アカウントの Amazon S3 バケットに配信できます。クロスアカウントバケットを使用する場合は、Amazon S3 URI とバケット所有アカウントのアカウント ID を指定する必要があります。

クロスアカウント Amazon S3 の送信先を設定するには (コンソール)
  1. S3 へのクエリ結果の投稿セクションの S3 バケットで、別のアカウントを選択し、バケット所有アカウントのアカウント ID を入力として指定します。

  2. Amazon S3 URI の場合は、送信先バケットの完全な Amazon S3 URI と、他のアカウントのプレフィックス (例: ) を入力しますs3://cross-account-bucket/query-results/

  3. (オプション) カスタマーマネージド AWS KMS キーで結果を暗号化するには、KMS AWS KMS キー ARN フィールドにキーの ARN を入力します。 キーは、送信先の Amazon S3 バケットと同じ AWS リージョンにある必要があります。

  4. Amazon S3 にクエリ結果を投稿するための IAM ロールセクションで、デフォルトのアクセス許可を持つ新しいロールを自動作成して必要なアクセス許可を自動的に設定するか、既存のロールを使用して必要なポリシーを持つ既存の IAM ロールを選択します。

クロスアカウント配信には、両側に対するアクセス許可が必要です。ソースアカウントの宛先配信 IAM ロールには、次のアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::cross-account-bucket/prefix/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

送信先アカウントの Amazon S3 バケットポリシーは、オブジェクトを書き込むアクセス許可をソースアカウントの IAM ロールに付与する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowScheduledQueryRolePutObject", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/my-s3-delivery-role" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::cross-account-bucket/prefix/*" } ] }

カスタマーマネージド AWS KMS キーによる結果の暗号化

オプションでカスタマーマネージド AWS KMS キーを指定して、SSE-KMS を使用して Amazon S3 に配信されるクエリ結果を暗号化できます。 AWS KMS キーは、スケジュールされたクエリと同じアカウントまたは別のアカウントにあることができます。

AWS KMS キーを指定すると、スケジュールされたクエリはそのキーを使用して SSE-KMS を介して結果を暗号化します。 AWS KMS キーを指定しない場合、バケットのデフォルトの暗号化設定が適用されます。バケットがカスタマーマネージドキーを使用したデフォルトの SSE-KMS 暗号化で設定されている場合、送信先配信 IAM ロールには引き続きそのキーに対するkms:GenerateDataKeyアクセス許可が必要です。

送信先配信 IAM ロールには、 AWS KMS キーに対する kms:GenerateDataKey アクセス許可が必要です。次の例は、カスタマーマネージド AWS KMS キーを持つ Amazon S3 送信先に必要なアクセス許可を示しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/prefix/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::my-bucket*" } } } ] }

AWS KMS キーが送信先配信 IAM ロールとは異なるアカウントにある場合、 AWS KMS キー所有者アカウントのキーポリシーはロールに明示的にアクセスを許可する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowScheduledQueryRoleToEncrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/my-s3-delivery-role" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::my-bucket*" } } } ] }
注記

AWS KMS キーと宛先配信 IAM ロールが同じアカウントにある場合、 AWS KMS キーポリシーにデフォルトの「IAM ポリシーを有効にする」ルートステートメントが含まれている場合は、IAM ID ポリシーだけで十分です。明示的な AWS KMS キーポリシーの付与は、キーポリシーが IAM に委任されない場合にのみ必要です。

Amazon S3 にクエリ結果を投稿するための IAM ロールは、スケジュールされたクエリ実行の IAM ロールとは別に設定する必要があります。この分離により、実行ロールがクエリを実行でき、Amazon S3 ロールが結果配信を特に処理するきめ細かなアクセスコントロールが可能になります。どちらのロールにも、CloudWatch Logs サービス (logs.amazonaws.com) がロールを引き受けることを許可する信頼ポリシーが含まれている必要があります。