

# メタデータテーブルを設定するためのアクセス許可の設定
<a name="metadata-tables-permissions"></a>

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

メタデータテーブル設定を作成および管理するには、次のアクセス許可が必要です。
+ `s3:CreateBucketMetadataTableConfiguration` – このアクセス許可により、汎用バケットのメタデータテーブル設定を作成できます。メタデータテーブル設定を作成するには、次のセクションで説明するように、S3 Tables のアクセス許可を含む追加のアクセス許可が必要です。必要なアクセス許可のリストについては、「[バケットオペレーションとアクセス許可](using-with-s3-policy-actions.md#using-with-s3-policy-actions-related-to-buckets)」を参照してください。
+ `s3:GetBucketMetadataTableConfiguration` – このアクセス許可により、メタデータテーブル設定に関する情報を取得できます。
+ `s3:DeleteBucketMetadataTableConfiguration` – このアクセス許可により、メタデータテーブル設定を削除できます。
+ `s3:UpdateBucketMetadataJournalTableConfiguration` – このアクセス許可により、ジャーナルテーブル設定を更新してジャーナルテーブルレコードを期限切れにすることができます。
+ `s3:UpdateBucketMetadataInventoryTableConfiguration` – このアクセス許可により、インベントリテーブルの設定を更新して、インベントリテーブルを有効または無効にできます。インベントリテーブル設定を更新するには、S3 Tables のアクセス許可を含む追加のアクセス許可が必要です。必要なアクセス権限のリストについては、「[バケットオペレーションとアクセス許可](using-with-s3-policy-actions.md#using-with-s3-policy-actions-related-to-buckets)」を参照してください。
**注記**  
`s3:CreateBucketMetadataTableConfiguration`、`s3:GetBucketMetadataTableConfiguration`、および `s3:DeleteBucketMetadataTableConfiguration` アクセス許可は、V1 と V2 両方の S3 Metadata 設定に使用されます。V2 の場合、対応する API オペレーションの名前は `CreateBucketMetadataConfiguration`、`GetBucketMetadataConfiguration`、および `DeleteBucketMetadataConfiguration` です。

テーブルとテーブルバケットを作成して操作するには、特定の `s3tables` アクセス許可が必要です。メタデータテーブル設定を作成するには、少なくとも次の `s3tables` アクセス許可が必要です。
+ `s3tables:CreateTableBucket` – このアクセス許可により、AWS マネージドテーブルバケットを作成できます。アカウントと同じリージョンのすべてのメタデータテーブル設定は、`aws-s3` という名前の単一の AWS マネージドテーブルバケットに保存されます。詳細については、「[メタデータテーブルの仕組み](metadata-tables-overview.md#metadata-tables-how-they-work)」および「[AWS マネージドテーブルバケットの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-aws-managed-buckets.html)」を参照してください。
+ `s3tables:CreateNamespace` – このアクセス許可により、テーブルバケットに名前空間を作成できます。メタデータテーブルは通常、`b_{{general_purpose_bucket_name}}` 名前空間を使用します。メタデータテーブル名前空間の詳細については、「[メタデータテーブルの仕組み](metadata-tables-overview.md#metadata-tables-how-they-work)」を参照してください。
+ `s3tables:CreateTable` – このアクセス許可により、メタデータテーブルを作成できます。
+ `s3tables:GetTable` – このアクセス許可により、メタデータテーブルに関する情報を取得できます。
+ `s3tables:PutTablePolicy` – このアクセス許可により、メタデータテーブルポリシーを追加または更新できます。
+ `s3tables:PutTableEncryption` – このアクセス許可により、メタデータテーブルのサーバー側の暗号化を設定できます。AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用してメタデータテーブルを暗号化する場合は、追加のアクセス許可が必要です。詳細については、「[SSE-KMS のアクセス許可](#metadata-kms-permissions)」を参照してください。
+ `kms:DescribeKey` – このアクセス許可により、KMS キーに関する情報を取得できます。
+ `s3tables:PutTableBucketPolicy` – このアクセス許可により、新しいテーブルバケットポリシーを作成または更新できます。

すべてのテーブルとテーブルバケットのアクセス許可の詳細については、「[Access management for S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html)」を参照してください。

**重要**  
メタデータテーブルをクエリできるようにテーブルバケットを AWS 分析サービスと統合する場合は、追加のアクセス許可が必要です。詳細については、「[Integrating Amazon S3 Tables with AWS analytics services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)」を参照してください。

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

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

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

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

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

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

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

   1. 呼び出し 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:::{{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/*"
            ]
        }
    ]
}
```

------