AWS マネージドテーブルバケットの使用
AWS マネージドテーブルバケットは、S3 Metadata ジャーナルテーブルやライブインベントリテーブルなどの AWS マネージドテーブルを保存するように設計された特殊な Amazon S3 テーブルバケットです。直接作成して管理するカスタマー管理のテーブルバケットとは異なり、AWS マネージドテーブルバケットは、AWS マネージドテーブルを必要とする機能を設定すると、AWS により自動的にプロビジョニングされます。マネージドテーブルが作成されると、ソースバケットの名前に基づいて事前定義された名前空間に属します。この事前定義された名前空間は変更できません。
各 AWS アカウントには、命名規則 aws-s3 に従って、リージョンごとに 1 つの AWS マネージドテーブルバケットがあります。このバケットは、そのリージョンのアカウントのリソースに関連付けられたすべてのマネージドテーブルの一元的な場所として機能します。
次の表は、AWS マネージドテーブルバケットとカスタマーマネージドテーブルバケットを比較したものです。
| 機能 | AWS マネージドテーブルバケット | カスタマーマネージドテーブルバケット |
|---|---|---|
| 作成 | AWS のサービスによって自動的に作成される | これらを手動で作成する |
| 命名 | 標準の命名規則を使用する (aws-s3) |
独自の名前を定義する |
| テーブルの作成 | テーブルを作成できるのは AWS のサービスのみです | ユーザーはテーブルを作成できる |
| 名前空間コントロール | 名前空間を作成または削除することはできない (すべてのテーブルは固定名前空間に属します) | ユーザーは名前空間を作成および削除できる |
| にアクセスする | 読み取り専用アクセス | フルアクセス |
| Encryption | デフォルトの暗号化 (SSE-S3) 設定を変更できるのは、カスタマーマネージド AWS Key Management Service (AWS KMS) キーで最初のテーブルを暗号化した場合のみ | バケットレベルのデフォルトの暗号化を設定し、いつでも変更できる |
| メンテナンス | AWS のサービスによって管理されます | 自動メンテナンスはバケットレベルでカスタマイズできる |
AWS マネージドテーブルバケットを操作し、テーブルをクエリするためのアクセス許可
AWS マネージドテーブルバケットを使用するには、AWS マネージドテーブルバケットとテーブルを作成するアクセス許可、および AWS マネージドテーブルの暗号化設定を指定するためのアクセス許可が必要です。AWS マネージドテーブルバケット内のテーブルをクエリするためのアクセス許可も必要です。
以下のポリシーの例を使用すると、S3 Metadata 設定を通じて AWS マネージドテーブルバケットを作成できます。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3:CreateBucketMetadataTableConfiguration", "s3tables:CreateTableBucket", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:GetTable", "s3tables:PutTablePolicy" "s3tables:PutTableEncryption", "kms:DescribeKey" ], "Resource":[ "arn:aws:s3:::bucket/amzn-s3-demo-source-bucket", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }
以下のポリシー例を使用すると、AWS マネージドテーブルバケット内のテーブルをクエリできます。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToQueryMetadataTables", "Effect":"Allow", "Action":[ "s3tables:GetTable", "s3tables:GetTableData", "s3tables:GetTableMetadataLocation", "kms:Decrypt" ], "Resource":[ "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }
AWS マネージドテーブルバケットのテーブルのクエリ
S3 Tables でサポートされているアクセス方法とエンジンを使用して、AWS マネージドテーブルバケット内の AWS マネージドテーブルをクエリできます。次にクエリの例を示します。
AWS マネージドテーブルバケットの暗号化
デフォルトでは、AWS マネージドテーブルバケットは、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用して暗号化されます。AWS マネージドテーブルバケットが作成された後、PutTableBucketEncryption を使用して、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用するようにバケットのデフォルトの暗号化設定を設定できます。
AWS マネージドテーブルの作成中に、SSE-KMS で暗号化することを選択できます。SSE-KMS を使用する場合は、AWS マネージドテーブルバケットと同じリージョンにカスタマーマネージド KMS キーを指定する必要があります。AWS マネージドテーブルの暗号化タイプは、テーブルの作成中にのみ設定できます。AWS マネージドテーブルの作成後は、暗号化設定を変更することはできません。
AWS マネージドテーブルバケットとそこに保存されているテーブルで同じ KMS キーを使用する場合は、テーブルの暗号化に使用したのと同じ KMS キーを使用して、作成後にテーブルバケットを暗号化してください。SSE-KMS を使用するようにテーブルバケットのデフォルトの暗号化設定を変更すると、それらの暗号化設定はそれ以後バケットに作成されるテーブルに使用されます。