使用 SQL 语义授予访问权限
可以通过在表和表存储桶策略中使用 SQL 语义来授予对表的权限。可以使用的 SQL 语义的示例为 CREATE、INSERT、DELETE、UPDATE 和 ALTER。下表提供了与 SQL 语义关联的 API 操作的列表,您可以使用这些操作向用户授予权限。
S3 表类数据存储服务部分支持使用 SQL 语义的权限。例如,CreateTable API 仅在表存储桶中创建一个空表。您需要额外的权限(例如 UpdateTableMetadata、PutTableData 和 GetTableMetadataLocation),才能设置表架构。这些额外权限还意味着您还授予用户在表中插入行的权限。如果您希望纯粹基于 SQL 语义来管理访问权限,那么我们建议您使用 AWS Lake Formation 或任何与 S3 表类数据存储服务集成的第三方解决方案。
| 表级活动 | IAM 操作 |
|---|---|
SELECT |
s3tables:GetTableData,
s3tables:GetTableMetadataLocation |
CREATE |
s3tables:CreateTable,
s3tables:UpdateTableMetadataLocation,
s3tables:PutTableData,
s3tables:GetTableMetadataLocation, |
INSERT |
s3tables:UpdateTableMetadataLocation,
s3tables:PutTableData,
s3tables:GetTableMetadataLocation |
UPDATE |
s3tables:UpdateTableMetadataLocation,
s3tables:PutTableData,
s3tables:GetTableMetadataLocation |
ALTER,RENAME |
s3tables:UpdateTableMetadataLocation,
s3tables:PutTableData,
s3tables:GetTableMetadataLocation,
s3tables:RenameTable
|
DELETE,DROP |
s3tables:DeleteTable,
s3tables:UpdateTableMetadataLocation,
s3tables:PutTableData,
s3tables:GetTableMetadataLocation
|
注意
从表存储桶中删除表需要 s3tables:DeleteTable 权限。此权限可让您永久移除表及其所有关联数据和元数据。请谨慎使用此权限,因为删除操作无法撤消。