

# SQL セマンティクスを使用したアクセス権の付与
<a name="s3-tables-sql"></a>

テーブルおよびテーブルバケットポリシーで SQL セマンティクスを使用して、テーブルにアクセス許可を付与できます。使用できる SQL セマンティクスの例は、`CREATE`、`INSERT`、`DELETE`、`UPDATE`、`ALTER` です。次の表は、ユーザーにアクセス許可を付与するために使用できる SQL セマンティクスに関連付けられた API アクションのリストを示しています。

S3 Tables は、SQL セマンティクスを使用したアクセス許可を部分的にサポートしています。例えば、`CreateTable` API はテーブルバケットに空のテーブルのみを作成します。テーブルスキーマを設定するには、`UpdateTableMetadata`、`PutTableData`、`GetTableMetadataLocation` などの追加のアクセス許可が必要です。これらの追加のアクセス許可は、テーブルに行を挿入するためのアクセス権もユーザーに付与することを意味します。SQL セマンティクスのみに基づいてアクセスを管理する場合は、[AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) または S3 Tables と統合されたサードパーティーソリューションを使用することをお勧めします。


| テーブルレベルのアクティビティ | 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` アクセス許可が必要です。このアクセス許可により、テーブルとそれに関連するすべてのデータとメタデータを完全に削除できます。削除オペレーションは元に戻せないため、このアクセス許可を慎重に使用してください。