S3 Tables 統合によるログへのアクセス - Amazon CloudWatch Logs

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

S3 Tables 統合によるログへのアクセス

S3 Tables Integration with CloudWatch を使用すると、Amazon Athena、Amazon Redshift、Apache Iceberg 互換ストアへの接続をサポートするサードパーティーツールなどの分析エンジンを使用して、CloudWatch に取り込まれたログデータにアクセスできます。この統合により、任意のツールを使用して包括的なログ分析を実行し、CloudWatch Logs のデータを CloudWatch 以外のデータと関連付けることができます。

S3 テーブルの統合について

Amazon S3 Tables Integration は、CloudWatch Logs のログをマネージド Amazon S3 テーブルとして利用できるようにするフルマネージドソリューションです。この統合により、CloudWatch Logs の機能に加えて、ログの分析方法の柔軟性が向上します。

統合は、マネージド Amazon S3 テーブルバケット (aws-cloudwatch) を作成し、データソース名とタイプに基づいて特定のログソースを Amazon S3 テーブルに関連付けることで機能します (CloudWatch Logs コンソールのログ管理 > データソースタブから管理できます)。関連付けられると、CloudWatch Logs データは Apache Iceberg 形式を使用して Amazon S3 Tables からアクセスできるようになります。この形式は、さまざまな分析エンジンがデータを効率的にクエリするための標準化された方法を提供します。

コアコンポーネント

データソースの関連付け

データソースとタイプ基準に基づいて、特定の CloudWatch Logs ソースを S3 Tables 統合にリンクするプロセス。

Apache Iceberg テーブル

構造化データストレージを提供し、複数の分析エンジンとの互換性を可能にする S3 Tables で使用される基盤となるテーブル形式。

S3 テーブルへのデータフロー

CloudWatch Logs と S3 Tables 間のデータフローを理解すると、統合を計画し、ログデータを効果的に管理できます。

関連付けを作成すると、CloudWatch Logs は、関連付けられたデータソース名とタイプに一致する新しいログイベントを CloudWatch マネージド S3 テーブルバケットに自動的に送信します。これらのイベントは、そのデータソースの対応するテーブルのログ名前空間にあります。統合は、関連付けの作成後に追加されたイベントのみをログに記録し、関連付けの作成前に からログをバックフィルしません。

S3 テーブルバケットのデータ保持は、ロググループの保持ポリシーセットと一致します。たとえば、ロググループを 1 日間の保持に設定すると、CloudWatch Logs は 1 日後に CloudWatch Logs と S3 Table の両方からデータを削除します。ロググループまたはログストリームを削除すると、CloudWatch Logs は S3 テーブルバケットからデータも削除します。

S3 テーブル統合を使用するタイミング

S3 Tables 統合を使用して、ログデータを他の外部データまたは CloudWatch 以外のデータと関連付けたり、Amazon Athena などの他の分析ツールを使用して CloudWatch Logs データに対して分析を実行したりすることを検討してください。CloudWatch Logs で利用できる機能を超える機能が必要な場合は、この統合を使用します。この統合は、次の場合に特に役立ちます。

  • 大量のログデータに対して複雑な SQL のようなクエリを実行する必要があります

  • ログ分析を既存の分析ワークフローやツールと統合したい

  • 複数のデータソースにまたがる包括的なログ分析機能が必要である

この統合によって作成された S3 テーブルには、既存の CloudWatch の取り込みとストレージ料金以外に、追加のストレージやテーブルのメンテナンス料金はかかりません。

前提条件

統合を実装する前に、以下があることを確認してください。

  • 既存の CloudWatch Logs データ

  • 次のセクションで説明するように、CloudWatch Logs と S3 Tables 間のクロスサービスアクセスのための適切な IAM アクセス許可

IAM 許可

CloudWatch Logs を S3 Tables と統合するには、統合を設定するユーザーまたはロールと、CloudWatch Logs が S3 Tables にデータを書き込むために引き受けるサービスロールの 2 つのエンティティに IAM アクセス許可を設定する必要があります。

統合を作成するロールまたはユーザーの場合

統合を設定するユーザーまたはロールには、次のアクセス許可が必要です。

  • observabilityadmin:CreateS3TableIntegration 統合を作成しlogs:AssociateSourceToS3TableIntegration、ソースを追加するには

  • s3tables:CreateTableBuckets3tables:PutTableBucketEncryption、および s3tables:PutTableBucketPolicyを使用して S3 テーブルバケットを設定する

サービスロールの場合

CloudWatch Logs がテーブルバケットへのデータの書き込みに使用する IAM サービスロールに、次の IAM ポリシーをアタッチします。このポリシーは、テーブルに書き込むアクセス許可を付与します。aws-region123456789012log-group-name を AWS リージョン、アカウント ID、ロググループ名に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:integrateWithS3Table" ], "Resource": ["arn:aws:logs:aws-region:123456789012:log-group:log-group-name"], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

CloudWatch Logs が S3 Tables にログデータを書き込むために引き受ける IAM サービスロールに、次の信頼ポリシーをアタッチします。このロールは、統合のセットアップ中に作成または選択します。条件によってロールが制限されるため、CloudWatch Logs は指定されたアカウントとロググループに対してのみロールを引き受けることができます。aws-region123456789012log-group-name を AWS リージョン、アカウント ID、ロググループ名に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:aws-region:123456789012:log-group:log-group-name"] } } } ] }

KMS キーポリシー (暗号化されたデータ用)

カスタマーマネージドキーを使用してログデータを暗号化する場合は、CloudWatch サービスプリンシパルと S3 Tables メンテナンスサービスプリンシパルにキーへのアクセスを許可する必要があります。KMS キーポリシーに次のステートメントを追加します。プレースホルダー値を AWS アカウント ID、リージョン、KMS キー ID、S3 テーブルまたはテーブルバケット ARN に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableSystemTablesKeyUsage", "Effect": "Allow", "Principal": { "Service": "systemtables.cloudwatch.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:aws-region:123456789012:key/key-id", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }, { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:aws-region:123456789012:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "<table-or-table-bucket-arn>/*" } } } ] }

開始方法

S3 Tables Integration を開始するには、CloudWatch Logs と S3 Tables の統合を設定する必要があります。このプロセスでは、データソースの関連付けを設定し、適切な IAM アクセス許可を設定します。

S3 Tables 統合を作成するには
  1. https://console.aws.amazon.com/cloudwatch/" で CloudWatch Logs コンソールを開きます。

  2. 設定グローバルS3 テーブル統合の作成を選択します。

  3. S3 Tables でログを暗号化する方法と、CloudWatch Logs がログを S3 Tables に書き込むために使用するロールをカスタマイズします。

  4. S3 テーブル統合の作成 を選択します。

ソースを S3 テーブル統合に関連付けるには
  1. https://console.aws.amazon.com/cloudwatch/" で CloudWatch Logs コンソールを開きます。

  2. 設定グローバルS3 テーブル統合の管理を選択します。

  3. データソースの関連付けを選択します。

  4. 統合を有効にするデータソース名とデータソースタイプを選択します。

  5. データソースの関連付けを選択します。

ログ管理ページからソースを S3 テーブル統合に関連付けるには
  1. https://console.aws.amazon.com/cloudwatch/" で CloudWatch Logs コンソールを開きます。

  2. ナビゲーションペインでログ管理を選択します。

  3. データソースタブを選択します。

  4. 統合するデータソース名とデータソースタイプを選択します。

  5. データソースアクションを選択します。

  6. S3 テーブル統合に関連付けるを選択します。

  7. データソースを確認し、データソースの関連付けを選択します。