S3 表类数据存储服务的访问管理 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

S3 表类数据存储服务的访问管理

在 S3 表类数据存储服务中,资源包括表存储桶及其包含的表。默认情况下,创建资源的 Amazon Web Services 账户的根用户(资源拥有者)和该账户中具有必要权限的 Amazon Identity and Access Management(IAM)用户可以访问他们创建的资源。资源拥有者指定还有谁可以访问该资源以及支持他们对该资源执行哪些操作。Amazon S3 具有各种访问管理工具,您可以使用这些工具向其他人授予对您的 S3 资源的访问权限。以下主题概述了 S3 表类数据存储服务的资源、IAM 操作和条件键。它们还提供了 S3 表类数据存储服务的基于资源和基于身份的策略的示例。

资源

S3 表类数据存储服务资源包括表存储桶及其包含的表。

  • 表存储桶:表存储桶专为表而设计,与通用 S3 存储桶中自行管理的表相比,可提供更高的每秒事务数(TPS)和更好的查询吞吐量。表存储桶具有与 Amazon S3 通用存储桶相同的耐久性、可用性、可扩展性和性能特征。

  • 表 - 表存储桶中的表以 Apache Iceberg 格式存储。您可以在支持 Iceberg 的查询引擎中使用标准 SQL 查询这些表。

表和表存储桶的 Amazon 资源名称(ARN)包含 s3tables 命名空间、Amazon Web Services 区域、Amazon Web Services 账户 ID 和存储桶名称。要访问表和表存储桶并对其执行操作,必须使用以下 ARN 格式:

  • 表格 ARN 格式:

    arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-bucket/table/demo-tableID

S3 表类数据存储服务的操作

在基于身份的策略或基于资源的策略中,您可以定义对于特定 IAM 主体支持或拒绝哪些 S3 表类数据存储服务操作。表操作对应于存储桶和表级 API 操作。所有操作都是唯一 IAM 命名空间的一部分:s3tables

当您在策略中使用一项操作时,通常会允许或拒绝使用具有相同名称的 API 操作。但在某些情况下,单个操作可控制对多个 API 操作的访问。例如,s3tables:GetTableData 操作包括对于 GetObjectListPartsListMultiparts API 操作的权限。

以下是表存储桶支持的操作。您可以在 IAM 策略或资源策略的 Action 元素中指定以下操作。

操作 描述 访问级别 跨账户访问
s3tables:CreateTableBucket 授予创建表存储桶的权限 Write
s3tables:GetTableBucket 授予检索表存储桶 ARN、表存储桶名称和创建日期的权限 Write
s3tables:ListTableBuckets 授予列出此账户中所有表存储桶的权限 Read
s3tables:CreateNamespace 授予在表存储桶中创建命名空间的权限 Read
s3tables:GetNamespace 授予检索命名空间详细信息的权限 Read
s3tables:ListNamespace 授予列出表存储桶上所有命名空间的权限 Read
s3tables:DeleteNamespace 授予删除表存储桶中命名空间的权限 Write
s3tables:DeleteTableBucket 授予删除存储桶的权限 Write
s3tables:PutTableBucketPolicy 授予添加或替换存储桶策略的权限 Permissions Management
s3tables:GetTableBucketPolicy 授予返回存储桶策略的权限 Read
s3tables:DeleteTableBucketPolicy 授予删除存储桶策略的权限 Permissions Management
s3tables:GetTableBucketMaintenanceConfiguration 授予返回表存储桶的维护配置的权限 Read
s3tables:PutTableBucketMaintenanceConfiguration 授予添加或替换表存储桶的维护配置的权限 Write

表支持以下操作:

操作 描述 访问级别 跨账户访问
s3tables:GetTableMaintenanceConfiguration 授予返回表的维护配置的权限 Read
s3tables:PutTableMaintenanceConfiguration 授予添加或替换表的维护配置的权限 Write
s3tables:PutTablePolicy 授予添加或替换表策略的权限 Permissions Management
s3tables:GetTablePolicy 授予返回表策略的权限 Read
s3tables:DeleteTablePolicy 授予删除表策略的权限 Permissions management
s3tables:CreateTable 授予在表存储桶中创建表的权限 Write
s3tables:GetTable 授予检索表信息的权限 Read
s3tables:GetTableMetadataLocation 授予检索表根指针(元数据文件)的权限 Read
s3tables:ListTables 授予列出表存储桶中的所有表的权限 Read
s3tables:RenameTable 授予更改表名称的权限 Write
s3tables:UpdateTableMetadataLocation 授予更新表根指针(元数据文件)的权限 Write
s3tables:GetTableData 授予读取存储在表存储桶中的表元数据和数据对象的权限 Read
s3tables:PutTableData 授予写入存储在表存储桶中的表元数据和数据对象的权限 Write

为了执行表级读取和写入操作,S3 表类数据存储服务支持如 GetObjectPutObject 等 Amazon S3 API 操作。下表提供了对象级操作的列表。在授予对表的读写权限时,您可以使用以下操作。

操作 S3 对象 API
s3tables:GetTableData GetObject, ListParts, HeadObject
s3tables:PutTableData PutObject, CreateMultipartUpload, CompleteMultipartUpload, UploadPart, AbortMultipartUpload

例如,如果用户拥有 GetTableData 权限,则他们可以读取与该表关联的所有文件,例如其元数据文件、清单、清单列表文件和 parquet 数据文件。

S3 表类数据存储服务的条件键

S3 表类数据存储服务支持 Amazon 全局条件上下文条件键

此外,S3 表类数据存储服务定义以下可以在访问策略中使用的条件键。

条件键 描述 类型
s3tables:tableName 按表存储桶中表的名称筛选访问权限。

您可以使用 s3tables:tableName 条件键来编写 IAM 或表存储桶策略,以限制用户或应用程序仅访问符合此名称条件的表。

请务必注意,如果您使用 s3tables:tableName 条件键来控制访问权限,则表名称的更改可能会影响这些策略。

示例值:"s3tables:tableName":"department*"
String
s3tables:namespace

按在表存储桶中创建的命名空间筛选访问权限。

您可以使用 s3tables:namespace 条件键编写 IAM、表或表存储桶策略,以限制用户或应用程序对作为特定命名空间一部分的表的访问权限。示例值:"s3tables:namespace":"hr"

请务必注意,如果您使用 s3tables:namespace 条件键来控制访问权限,那么命名空间的更改可能会影响这些策略。

String