S3 Tables のアクセス管理
S3 Tables リソースには、テーブルバケットとそれらに含まれるテーブルが含まれます。リソースを作成した AWS アカウントのルートユーザー (リソース所有者) と、必要なアクセス許可を持つそのアカウント内の AWS Identity and Access Management (IAM) ユーザーは、作成したリソースにアクセスできます。リソース所有者は、リソースにアクセスできる他のユーザーと、ユーザーがリソースに対して実行できるアクションを指定します。Amazon S3 には、S3 リソースへのアクセスを他のユーザーに許可するために使用できるさまざまなアクセス管理ツールがあります。以下のトピックでは、S3 Tables のリソース、IAM アクション、条件キーの概要について説明します。また、S3 Tables のリソースベースポリシーとアイデンティティベースのポリシーの両方の例も示します。
トピック
リソース
S3 Tables リソースには、テーブルバケットとそれらに含まれるテーブルが含まれます。
テーブルバケット – テーブルバケットは、汎用 S3 バケットのセルフマネージドテーブルと比較して、テーブルとプロバイダーの 1 秒あたりのトランザクション (TPS) が高く、クエリスループットが向上するように特別に設計されています。テーブルバケットは、Amazon S3 汎用バケットと同じ耐久性、可用性、スケーラビリティ、パフォーマンス特性を提供します。
テーブル – テーブルバケット内のテーブルは Apache Iceberg 形式で保存されます。これらのテーブルは、Iceberg をサポートするクエリエンジンで標準 SQL を使用してクエリできます。
テーブルとテーブルバケットの Amazon リソースネーム (ARN) には、s3tables
名前空間、AWS リージョン、AWS アカウント ID、バケット名が含まれます。テーブルとテーブルバケットにアクセスしてアクションを実行するには、次の ARN 形式を使用する必要があります。
-
テーブル ARN 形式:
arn:aws:s3tables:
us-west-2
:111122223333
:bucket/amzn-s3-demo-bucket
/table/demo-tableID
S3 Tables のアクション
アイデンティティベースのポリシーまたはリソースベースのポリシーで、特定の IAM プリンシパルに対して、どの S3 Tables アクションを許可または拒否するかを定義します。テーブルアクションは、バケットおよびテーブルレベルの API オペレーションに対応しています。すべてのアクションは、一意の IAM 名前空間 s3tables
の一部です。
ポリシーでアクションを使用する場合は、通常、同じ名前の API オペレーションまたは CLI コマンドへのアクセスを許可または拒否します。ただし、単独のアクションが複数のオペレーションへのアクセスを制御する場合もあります。例えば、s3tables:GetTableData
アクションには、GetObject
、ListParts
、ListMultiparts
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 Tables は GetObject
や PutObject
などの Amazon S3 API オペレーションをサポートしています。次の表に、オブジェクトレベルのアクションのリストを示します。テーブルに読み取りおよび書き込みアクセス許可を付与する場合は、次のアクションを使用します。
アクション | S3 オブジェクト API |
---|---|
s3tables:GetTableData |
GetObject , ListParts ,
HeadObject |
s3tables:PutTableData |
PutObject , CreateMultipartUpload ,
CompleteMultipartUpload , UploadPart ,
AbortMultipartUpload |
例えば、ユーザーが GetTableData
アクセス許可を持っている場合、メタデータファイル、マニフェスト、マニフェストリストファイル、parquet データファイルなど、テーブルに関連付けられているすべてのファイルを読み取ることができます。
S3 Tables の条件キー
S3 Tables は、AWS グローバル条件コンテキストキーをサポートしています。
さらに、S3 Tables では、アクセスポリシーで使用できる以下の条件キーを定義します。
条件キー | 説明 | [Type] (タイプ) |
---|---|---|
s3tables:tableName |
テーブルバケット内のテーブルの名前でアクセスをフィルタリングします。
"s3tables:tableName":"department*" |
String |
s3tables:namespace |
テーブルバケットで作成された名前空間でアクセスをフィルタリングします。
|
String |