S3 Metadata のトラブルシューティング - Amazon Simple Storage Service

S3 Metadata のトラブルシューティング

以下の情報を使用して、Amazon S3 Metadata の使用時に発生する可能性がある一般的な問題の診断と修正に役立てます。

AWS マネージドテーブルバケットとメタデータテーブルを削除できない

メタデータテーブルを削除する前に、まず汎用バケット上の関連するメタデータテーブル設定を削除する必要があります。詳細については、「メタデータテーブル設定の削除」を参照してください。

AWS マネージドテーブルバケットを削除できるようにするには、このバケットに関連付けられているすべてのメタデータテーブル設定と、バケット内のすべてのメタデータテーブルを削除する必要があります。詳細については、「メタデータテーブル設定の削除」および「メタデータテーブルの削除」を参照してください。

AWS マネージドメタデータテーブルの暗号化設定を設定または変更できない

メタデータテーブル設定を作成するときに、AWS マネージドメタデータテーブルを AWS Key Management Service (AWS KMS) キーを使用したサーバー側の暗号化 (SSE-KMS) で暗号化することを選択できます。SSE-KMS を使用する場合は、汎用バケットと同じリージョンにカスタマーマネージド KMS キーを指定する必要があります。テーブルの暗号化タイプは、テーブルの作成中にのみ設定できます。AWS マネージドテーブルの作成後は、暗号化設定を変更することはできません。メタデータテーブルに SSE-KMS を指定するには、特定のアクセス許可が必要です。詳細については、「SSE-KMS のアクセス許可」を参照してください。

メタデータテーブルの暗号化設定は、デフォルトのバケットレベルの暗号化設定よりも優先されます。暗号化を指定しない場合、テーブルはバケットのデフォルト暗号設定を継承します。

デフォルトでは、AWS マネージドテーブルバケットは、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用して暗号化されます。最初のメタデータ設定を作成したら、AWS マネージドテーブルバケットのデフォルトの暗号化設定を設定して、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用できます。詳細については、「Encryption for AWS managed table buckets」および「テーブルバケットでの AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の指定」を参照してください。

メタデータテーブル設定を再作成しようとすると、エラーが発生する

メタデータテーブル設定を削除すると、設定のみが削除されます。メタデータテーブル設定を削除しても、AWS マネージドテーブルバケットとメタデータテーブルは引き続き存在します。

メタデータテーブル設定を削除し、同じ汎用バケットの設定を再作成する場合は、まず AWS マネージドテーブルバケットから古いジャーナルテーブルとインベントリテーブルを手動で削除する必要があります。削除しない場合、新しいメタデータテーブル設定の作成は、それらのテーブルが既に存在するため失敗します。

メタデータテーブルを削除するには、「メタデータテーブルの削除」を参照してください。

設定でインベントリテーブルを有効にできない

2025 年 7 月 15 日より前に S3 Metadata 設定を作成した場合、その設定でインベントリテーブルを有効にすることはできません。インベントリテーブルを作成してジャーナルテーブルレコードの有効期限が切れるように、設定を削除して再作成することをお勧めします。詳細については、「2025 年 7 月 15 日より前に作成されたメタデータ設定でインベントリテーブルを有効にする」を参照してください。

設定でジャーナルテーブルレコードの有効期限を有効にできない

2025 年 7 月 15 日より前に S3 Metadata 設定を作成した場合、その設定でジャーナルテーブルレコードの有効期限を有効にすることはできません。ジャーナルテーブルレコードを期限切れにしてインベントリテーブルを作成できるように、設定を削除して再作成することをお勧めします。詳細については、「2025 年 7 月 15 日より前に作成されたメタデータ設定でインベントリテーブルを有効にする」を参照してください。

メタデータテーブルにクエリを実行できない

メタデータテーブルをクエリできない場合は、以下を確認してください。

  • Amazon Athena または Amazon Redshift を使用してメタデータテーブルをクエリする場合は、メタデータテーブルの名前空間名を引用符 (") またはバックティック (`) で囲む必要があります。囲まない場合、クエリが機能しない可能性があります。

  • Amazon EMR または他のサードパーティーエンジンで Apache Spark を使用してメタデータテーブルをクエリする場合は、Amazon S3 Tables Iceberg REST エンドポイントを使用することをお勧めします。このエンドポイントを使用しないと、クエリが正常に実行されない可能性があります。詳細については、「Amazon S3 Tables Iceberg REST エンドポイントを使用したテーブルへのアクセス」を参照してください。

  • メタデータテーブルをクエリするための適切な AWS Identity and Access Management (IAM) アクセス許可があることを確認してください。詳細については、「メタデータテーブルをクエリするためのアクセス許可」を参照してください。

  • Amazon Athena を使用していて、クエリを実行しようとするとエラーが表示される場合は、次の操作を行います。

    • Athena でクエリを実行しようとしたときに、クエリを実行するためのアクセス許可が不足しており、プリンシパルは指定されたリソースに対する権限を持っていないという内容のエラーが表示される場合は、テーブルに対する必要な Lake Formation 許可が付与されている必要があります。詳細については、「テーブルまたはデータベースに対するアクセス許可の付与」を参照してください。

    • クエリを実行しようとしたときに、Iceberg はリクエストされたリソースにアクセスできないという内容のエラーが表示される場合は、AWS Lake Formation コンソールに移動し、作成したテーブルバケットカタログとデータベース (名前空間) に対するアクセス許可が自分に付与されていることを確認してください。これらのアクセス許可を付与するときは、テーブルを指定しないでください。詳細については、「テーブルまたはデータベースに対するアクセス許可の付与」を参照してください。

特定の S3 Metadata AWS CLI コマンドと API オペレーションを使用しようとすると、405 エラーが表示される

V1 GetBucketMetadataTableConfiguration API オペレーションを呼び出すか、V2 メタデータテーブル設定に対して get-bucket-metadata-table-configuration AWS Command Line Interface (AWS CLI) コマンドを使用すると、HTTP 405 Method Not Allowed エラーが発生します。同様に、V1 DeleteBucketMetadataTableConfiguration API オペレーションを呼び出すか、delete-bucket-metadata-table-configuration AWS CLI コマンドを使用すると、405 エラーも発生します。

V1 または V2 メタデータテーブル設定に対して、V2 GetBucketMetadataConfiguration API オペレーション、または get-bucket-metadata-configuration AWS CLI コマンドを使用できます。同様に、V1 または V2 メタデータテーブル設定に対して V2 DeleteBucketMetadataConfiguration API オペレーションまたは delete-bucket-metadata-configuration AWS CLI コマンドを使用できます。

V1 API オペレーションの代わりに新しい V2 API オペレーション (CreateBucketMetadataConfigurationGetBucketMetadataConfiguraion、および DeleteBucketMetadataConfiguration) を使用するようにプロセスを更新することをお勧めします。S3 Metadata の V1 から V2 への移行の詳細については、「2025 年 7 月 15 日より前に作成されたメタデータ設定でインベントリテーブルを有効にする」を参照してください。

設定が V1 か V2 かを判断するには、GetBucketMetadataConfiguration API レスポンスの次の属性を確認します。AWS マネージドバケットタイプ ("aws") は V2 設定を示し、カスタマーマネージドバケットタイプ ("customer") は V1 設定を示します。

"MetadataTableConfigurationResult": { "TableBucketType": ["aws" | "customer"]

詳細については、「メタデータテーブル設定の表示」を参照してください。