Granting access with SQL semantics
You can grant permissions to tables using SQL semantics for example
CREATE
, INSERT
, DELETE
, UPDATE
,
and ALTER
in table and table bucket policies. The following table provides
a list of API actions associated with various SQL semantics that you can grant
permissions to your users.
S3 Tables partially supports permissions using SQL semantics. For example, the
CreateTable
API only creates an empty table in the table bucket. You
need additional permissions such as, UpdateTableMetadata
,
PutTableData
, and GetTableMetadataLocation
to be able to
set the table schema. These additional permissions also mean that you are also granting
the user access to insert rows in the table. If you wish to govern access purely based
on SQL semantics, then we recommend using AWS Lake Formation or any
third-party solution that is integrated with S3 Tables.
Table-level activity | IAM actions |
---|---|
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
|