使用 SQL 语义授予访问权限
可以通过在表和表存储桶策略中使用 SQL 语义来授予对表的权限。可以使用的 SQL 语义的示例为 CREATE、INSERT、DELETE、UPDATE 和 ALTER。下表提供了与 SQL 语义关联的 API 操作的列表,您可以使用这些操作向用户授予权限。
S3 表类数据存储服务部分支持使用 SQL 语义的权限。例如,CreateTable API 仅在表存储桶中创建一个空表。您需要额外的权限(例如 UpdateTableMetadata、PutTableData 和 GetTableMetadataLocation),才能设置表架构。这些额外权限还意味着您还授予用户在表中插入行的权限。如果您希望纯粹基于 SQL 语义来管理访问权限,那么我们建议您使用 Amazon 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 权限。此权限可让您永久移除表及其所有关联数据和元数据。请谨慎使用此权限,因为删除操作无法撤消。