S3 Tables 的存取管理 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

S3 Tables 的存取管理

在 S3 Tables 中,資源包含資料表儲存貯體及其包含的資料表。 AWS 帳戶 在該帳戶中建立資源 (資源擁有者) 和 AWS Identity and Access Management (IAM) 使用者的根使用者可以存取他們建立的資源。資源擁有者會指定可以存取資源的人員,以及允許其對資源執行的動作。Amazon S3 具有各種存取管理工具,可供您用來授權其他人存取 S3 資源。下列主題為您提供 S3 Tables 的資源、IAM 動作和條件索引鍵概觀。這些主題也提供 S3 Tables 的資源型和身分型政策範例。

資源

S3 Tables 資源包含資料表儲存貯體及其包含的資料表。

  • 資料表儲存貯體 – 資料表儲存貯體是專為資料表和提供者而設計,與一般用途 S3 儲存貯體中的自我管理資料表相比,每秒交易量 (TPS) 和查詢輸送量更佳。資料表儲存貯體可提供與 Amazon S3 一般用途儲存貯體相同的耐用性、可用性、可擴展性和效能特性。

  • 資料表 – 資料表儲存貯體中的資料表會以 Apache Iceberg 格式儲存。您可以在支援 Iceberg 的查詢引擎中使用標準 SQL 來查詢這些資料表。

資料表和資料表儲存貯體的 Amazon Resource Name (ARNs) 包含s3tables命名空間、 AWS 區域、 AWS 帳戶 ID 和儲存貯體名稱。若要存取資料表和資料表儲存貯體並對這些項目執行動作,您必須使用下列 ARN 格式:

  • 資料表 ARN 格式:

    arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-bucket/table/demo-tableID

S3 Tables 的動作

在 IAM 身分型政策或資源型政策中,您能夠定義可針對 IAM 主體允許或拒絕哪些 S3 Tables 動作。資料表動作對應至儲存貯體和資料表層級 API 操作。所有動作都是唯一 IAM 命名空間的一部份:s3tables

在政策中使用動作時,通常會允許或拒絕存取相同名稱的 API 操作。不過,在某些情況下,單一動作可控制對多個 API 操作的存取。例如,s3tables:GetTableData 動作包含 GetObjectListPartsListMultiparts API 操作的許可。

下列是資料表儲存貯體的支援動作。您可以在 IAM 政策或資源政策的 Action元素中指定下列動作。

動作 描述 存取層級 跨帳戶存取權
s3tables:CreateTableBucket 准許建立資料表儲存貯體 Write
s3tables:GetTableBucket 准許擷取資料表儲存貯體 ARN、資料表儲存貯體名稱和建立日期。 Write
s3tables:ListTableBuckets 准許列出此帳戶中的所有資料表儲存貯體。 Read
s3tables:CreateNamespace 准許在資料表儲存貯體中建立命名空間 Write
s3tables:GetNamespace 准許擷取命名空間詳細資料 Read
s3tables:ListNamespaces 准許列出資料表儲存貯體上的所有命名空間。 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:PutTableBucketEncryption 准許新增或取代資料表儲存貯體的加密組態 Write
s3tables:GetTableBucketEncryption 准許擷取資料表儲存貯體的加密組態 Read
s3tables:DeleteTableBucketEncryption 准許刪除資料表儲存貯體的加密組態 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
s3tables:GetTableEncryption 准許擷取資料表的加密設定 Write
s3tables:PutTableEncryption 准許將加密新增至資料表 Write

若要執行資料表層級的讀取和寫入動作,S3 Tables 支援 Amazon S3 API 操作,例如 GetObjectPutObject。下表提供物件層級動作的清單。將讀取和寫入許可授予資料表時,您可以使用下列動作。

動作 S3 物件 API
s3tables:GetTableData GetObject, ListParts, HeadObject
s3tables:PutTableData PutObject, CreateMultipartUpload, CompleteMultipartUpload, UploadPart, AbortMultipartUpload

例如,如果使用者具有 GetTableData 許可,則可以讀取與資料表相關聯的所有檔案,例如其中繼資料檔案、資訊清單、資訊清單清單檔案和 Parquet 資料檔案。

S3 Tables 的條件索引鍵

S3 Tables 支援 AWS 全域條件內容索引鍵

此外,S3 Tables 會定義下列可在存取政策中使用的條件索引鍵。

條件金鑰 Description (描述) Type
s3tables:tableName 依資料表儲存貯體中的資料表名稱篩選存取權。

您可以使用 s3tables:tableName條件索引鍵來寫入 IAM,或僅限使用者或應用程式存取符合此名稱條件之資料表的資料表儲存貯體政策。

請務必注意,如果您使用 s3tables:tableName 條件索引鍵來控制存取,則變更資料表名稱可能會影響這些政策。

範例值:"s3tables:tableName":"department*"
String
s3tables:namespace

依資料表儲存貯體中建立的命名空間篩選存取權。

您可以使用 s3tables:namespace 條件索引鍵來寫入 IAM,或限制使用者或應用程式存取特定命名空間內之資料表的資料表儲存貯體政策。範例值:"s3tables:namespace":"hr"

請務必注意,如果您使用 s3tables:namespace 條件索引鍵來控制存取權,則變更命名空間可能會影響這些政策。

String
s3tables:SSEAlgorithm

依用於加密資料表的伺服器端加密演算法篩選存取權。

您可以使用 s3tables:SSEAlgorithm條件金鑰來撰寫 IAM、資料表或資料表儲存貯體政策,以限制使用者或應用程式存取使用特定加密類型加密的資料表。範例值:"s3tables:SSEAlgorithm":"aws:kms"

請務必注意,如果您使用 s3tables:SSEAlgorithm 條件金鑰來控制存取,加密的變更可能會影響這些政策。

String
s3tables:KMSKeyArn

針對用於加密資料表的 AWS KMS 金鑰,依金鑰 ARN 篩選存取權

您可以使用 s3tables:KMSKeyArn條件金鑰來撰寫 IAM、資料表或資料表儲存貯體政策,以限制使用者或應用程式存取使用特定 KMS 金鑰加密的資料表。

請務必注意,如果您使用 s3tables:KMSKeyArn 條件金鑰來控制存取,則變更 KMS 金鑰可能會影響這些政策。

ARN