メタデータテーブルを設定するためのアクセス許可の設定 - Amazon Simple Storage Service

メタデータテーブルを設定するためのアクセス許可の設定

メタデータテーブル設定を作成するには、メタデータテーブル設定の作成と管理、およびメタデータテーブルとメタデータテーブルが保存されているテーブルバケットの作成と管理の両方に必要な AWS Identity and Access Management (IAM) アクセス許可を持っている必要があります。

メタデータテーブル設定を作成および管理するには、次のアクセス許可が必要です。

  • s3:CreateBucketMetadataTableConfiguration – このアクセス許可により、汎用バケットのメタデータテーブル設定を作成できます。メタデータテーブル設定を作成するには、次のセクションで説明するように、S3 Tables のアクセス許可を含む追加のアクセス許可が必要です。必要なアクセス許可のリストについては、「バケットオペレーションとアクセス許可」を参照してください。

  • s3:GetBucketMetadataTableConfiguration – このアクセス許可により、メタデータテーブル設定に関する情報を取得できます。

  • s3:DeleteBucketMetadataTableConfiguration – このアクセス許可により、メタデータテーブル設定を削除できます。

  • s3:UpdateBucketMetadataJournalTableConfiguration – このアクセス許可により、ジャーナルテーブル設定を更新してジャーナルテーブルレコードを期限切れにすることができます。

  • s3:UpdateBucketMetadataInventoryTableConfiguration – このアクセス許可により、インベントリテーブルの設定を更新して、インベントリテーブルを有効または無効にできます。インベントリテーブル設定を更新するには、S3 Tables のアクセス許可を含む追加のアクセス許可が必要です。必要なアクセス権限のリストについては、「バケットオペレーションとアクセス許可」を参照してください。

    注記

    s3:CreateBucketMetadataTableConfigurations3:GetBucketMetadataTableConfiguration、および s3:DeleteBucketMetadataTableConfiguration アクセス許可は、V1 と V2 両方の S3 Metadata 設定に使用されます。V2 の場合、対応する API オペレーションの名前は CreateBucketMetadataConfigurationGetBucketMetadataConfiguration、および DeleteBucketMetadataConfiguration です。

テーブルとテーブルバケットを作成して操作するには、特定の s3tables アクセス許可が必要です。メタデータテーブル設定を作成するには、少なくとも次の s3tables アクセス許可が必要です。

  • s3tables:CreateTableBucket – このアクセス許可により、AWS マネージドテーブルバケットを作成できます。アカウントと同じリージョンのすべてのメタデータテーブル設定は、aws-s3 という名前の単一の AWS マネージドテーブルバケットに保存されます。詳細については、「メタデータテーブルの仕組み」および「AWS マネージドテーブルバケットの使用」を参照してください。

  • s3tables:CreateNamespace – このアクセス許可により、テーブルバケットに名前空間を作成できます。メタデータテーブルは通常、b_general_purpose_bucket_name 名前空間を使用します。メタデータテーブル名前空間の詳細については、「メタデータテーブルの仕組み」を参照してください。

  • s3tables:CreateTable – このアクセス許可により、メタデータテーブルを作成できます。

  • s3tables:GetTable – このアクセス許可により、メタデータテーブルに関する情報を取得できます。

  • s3tables:PutTablePolicy – このアクセス許可により、メタデータテーブルポリシーを追加または更新できます。

  • s3tables:PutTableEncryption – このアクセス許可により、メタデータテーブルのサーバー側の暗号化を設定できます。AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用してメタデータテーブルを暗号化する場合は、追加のアクセス許可が必要です。詳細については、「SSE-KMS のアクセス許可」を参照してください。

  • kms:DescribeKey – このアクセス許可により、KMS キーに関する情報を取得できます。

すべてのテーブルとテーブルバケットのアクセス許可の詳細については、「Access management for S3 Tables」を参照してください。

重要

メタデータテーブルをクエリできるようにテーブルバケットを AWS 分析サービスと統合する場合は、追加のアクセス許可が必要です。詳細については、「Integrating Amazon S3 Tables with AWS analytics services」を参照してください。

SSE-KMS のアクセス許可

AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用してメタデータテーブルを暗号化するには、追加のアクセス許可が必要です。

  1. ユーザーまたは AWS Identity and Access Management IAM ロールには以下のアクセス許可が必要です。IAM コンソール (https://console.aws.amazon.com/iam/) を使用してこれらのアクセス許可を付与できます。

    1. テーブル暗号化を設定する s3tables:PutTableEncryption

    2. 使用する AWS KMS キーの kms:DescribeKey

  2. KMS キーのリソースポリシーでは、次のアクセス許可が必要です。AWS KMS コンソール (https://console.aws.amazon.com/kms) を使用してこれらのアクセス許可を付与できます。

    1. metadata.s3.amazonaws.com および maintenance.s3tables.amazonaws.comkms:GenerateDataKey アクセス許可を付与します。

    2. metadata.s3.amazonaws.com および maintenance.s3tables.amazonaws.comkms:Decrypt アクセス許可を付与します。

    3. 呼び出し AWS プリンシパルへの kms:DescribeKey アクセス許可を付与します。

これらのアクセス許可に加えて、テーブルの暗号化に使用されるカスタマーマネージド KMS キーがまだ存在し、アクティブであり、汎用バケットと同じリージョンにあることを確認します。

ポリシーの例

メタデータテーブルとテーブルバケットを作成して操作するには、次のポリシー例を使用できます。このポリシーでは、メタデータテーブル設定を適用する汎用バケットを amzn-s3-demo-bucket と呼びます。このポリシーを使用するには、user input placeholders をユーザー自身の情報に置き換えます。

メタデータテーブル設定を作成すると、メタデータテーブルは AWS マネージドテーブルバケットに保存されます。アカウントと同じリージョンのすべてのメタデータテーブル設定は、aws-s3 という名前の単一の AWS マネージドテーブルバケットに保存されます。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionsToWorkWithMetadataTables", "Effect": "Allow", "Action": [ "s3:CreateBucketMetadataTableConfiguration", "s3:GetBucketMetadataTableConfiguration", "s3:DeleteBucketMetadataTableConfiguration", "s3:UpdateBucketMetadataJournalTableConfiguration", "s3:UpdateBucketMetadataInventoryTableConfiguration", "s3tables:*", "kms:DescribeKey" ], "Resource": [ "arn:aws:s3:::bucket/amzn-s3-demo-bucket", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*" ] } ] }

メタデータテーブルをクエリするには、次のポリシー例を使用できます。メタデータテーブルが SSE-KMS で暗号化されている場合は、次に示すように kms:Decrypt アクセス許可が必要です。このポリシーを使用するには、user input placeholders をユーザー自身の情報に置き換えます。

JSON
{ "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/*" ] } ] }