为配置元数据表设置权限 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为配置元数据表设置权限

要创建元数据表配置,您必须拥有必要的 Amazon Identity and Access Management(IAM)权限,才能创建和管理元数据表配置,以及创建和管理元数据表及用于存储元数据表的表存储桶。

要创建和管理您的元数据表配置,您必须具有以下权限:

  • s3:CreateBucketMetadataTableConfiguration:此权限可让您为通用存储桶创建元数据表配置。要创建元数据表配置,还需要其它权限,包括 S3 表类数据存储服务权限,如以下各节所述。有关所需权限的摘要,请参阅存储桶操作和权限

  • s3:GetBucketMetadataTableConfiguration:此权限可让您检索有关元数据表配置的信息。

  • s3:DeleteBucketMetadataTableConfiguration:此权限可让您删除元数据表配置。

  • s3:UpdateBucketMetadataJournalTableConfiguration:此权限可让您更新日记表配置以使日记表记录过期。

  • s3:UpdateBucketMetadataInventoryTableConfiguration:此权限可让您更新清单表配置以启用或禁用清单表。要更新清单表配置,还需要其它权限,包括 S3 表类数据存储服务权限。有关所需权限的列表,请参阅存储桶操作和权限

    注意

    s3:CreateBucketMetadataTableConfigurations3:GetBucketMetadataTableConfigurations3:DeleteBucketMetadataTableConfiguration 权限用于 V1 和 V2 S3 元数据配置。对于 V2,相应 API 操作的名称为 CreateBucketMetadataConfigurationGetBucketMetadataConfigurationDeleteBucketMetadataConfiguration

要创建和使用表和表存储桶,您必须具有某些 s3tables 权限。要创建元数据表配置,您至少必须具有以下 s3tables 权限:

  • s3tables:CreateTableBucket:此权限可让您创建 Amazon 托管式表存储桶。您的账户和同一区域中的所有元数据表配置都存储在名为 aws-s3 的单个 Amazon 托管式表存储桶中。有关更多信息,请参阅元数据表的工作原理Working with Amazon managed table buckets

  • s3tables:CreateNamespace:此权限可让您在表存储桶中创建命名空间。元数据表通常使用 b_general_purpose_bucket_name 命名空间。有关元数据表命名空间的更多信息,请参阅元数据表的工作原理

  • s3tables:CreateTable:此权限可让您创建元数据表。

  • s3tables:GetTable:此权限可让您检索有关元数据表的信息。

  • s3tables:PutTablePolicy:此权限可让您添加或更新元数据表策略。

  • s3tables:PutTableEncryption:此权限可让您为元数据表设置服务器端加密。如果您要使用具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)来加密元数据表,则需要额外的权限。有关更多信息,请参阅 SSE-KMS 的权限

  • kms:DescribeKey:此权限可让您检索有关 KMS 密钥的信息。

有关所有表和表存储桶权限的详细信息,请参阅 S3 表类数据存储服务的访问管理

重要

如果您还想将表存储桶与 Amazon 分析服务集成,以便您能够查询元数据表,则需要额外的权限。有关更多信息,请参阅集成 Amazon S3 表类数据存储服务与 Amazon 分析服务

SSE-KMS 的权限

要使用具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)来加密元数据表,您必须拥有额外的权限。

  1. 用户或 Amazon Identity and Access Management(IAM)角色需要以下权限。可以使用 IAM 控制台来授予这些权限:https://console.aws.amazon.com/iam/

    1. s3tables:PutTableEncryption,用于配置表加密

    2. kms:DescribeKey(对于所使用的 Amazon KMS 密钥)

  2. 在 KMS 密钥的资源策略中,您需要以下权限。可以使用 Amazon KMS 控制台来授予这些权限:https://console.aws.amazon.com/kms

    1. metadata.s3.amazonaws.commaintenance.s3tables.amazonaws.com 授予 kms:GenerateDataKey 权限。

    2. metadata.s3.amazonaws.commaintenance.s3tables.amazonaws.com 授予 kms:Decrypt 权限。

    3. 向发起调用的 Amazon 主体授予 kms:DescribeKey 权限。

除了这些权限外,还要确保用于加密表的客户自主管理型 KMS 密钥仍然存在、处于活动状态且与通用存储桶位于同一区域。

策略示例

要创建和使用元数据表和表存储桶,可以使用以下示例策略。在本策略中,您要对其应用元数据表配置的通用存储桶称为 amzn-s3-demo-bucket。要使用这一策略,请将 user input placeholders 替换为您自己的信息。

创建元数据表配置时,元数据表存储在 Amazon 托管式表存储桶中。您的账户和同一区域中的所有元数据表配置都存储在名为 aws-s3 的单个 Amazon 托管式表存储桶中。

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