

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

# S3 Tables 的存取管理
<a name="s3-tables-setting-up"></a>

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

**Topics**
+ [Resources](#s3-tables-resources)
+ [S3 Tables 的動作](#s3-tables-actions)
+ [S3 Tables 的條件索引鍵](#s3-tables-conditionkeys)
+ [S3 Tables 的 IAM 身分型政策](s3-tables-identity-based-policies.md)
+ [適用於 S3 Tables 的資源型政策](s3-tables-resource-based-policies.md)
+ [AWS S3 Tables 的 受管政策](s3-tables-security-iam-awsmanpol.md)
+ [使用 SQL 語意授予存取權](s3-tables-sql.md)
+ [使用 Lake Formation 管理對資料表或資料庫的存取](grant-permissions-tables.md)

## Resources
<a name="s3-tables-resources"></a>

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 的動作
<a name="s3-tables-actions"></a>

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

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

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


| Action | Description | 存取層級 | 跨帳戶存取權 | 
| --- | --- | --- | --- | 
| 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 | 否 | 

資料表支援下列動作：


| Action | Description | 存取層級 | 跨帳戶存取權 | 
| --- | --- | --- | --- | 
| 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 | 否 | 
| s3tables:DeleteTable | 授予刪除資料表儲存貯體的資料表的許可權 | Write | 是 | 

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


| Action | S3 物件 API | 
| --- | --- | 
| s3tables:GetTableData | GetObject, ListParts, HeadObject | 
| s3tables:PutTableData | PutObject, CreateMultipartUpload, CompleteMultipartUpload,  UploadPart, AbortMultipartUpload | 

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

## S3 Tables 的條件索引鍵
<a name="s3-tables-conditionkeys"></a>

S3 Tables 支援 [AWS 全域條件內容索引鍵](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html)。

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


| 條件金鑰 | 說明 | Type | 
| --- | --- | --- | 
|  s3tables:tableName |  依資料表儲存貯體中的資料表名稱篩選存取權。您可以使用 `s3tables:tableName` 條件金鑰來寫入 IAM，或限制使用者或應用程式僅存取符合此名稱條件之資料表的資料表儲存貯體政策。<br /> 請務必注意，如果您使用 `s3tables:tableName` 條件索引鍵來控制存取，則變更資料表名稱可能會影響這些政策。範例值："s3tables:tableName":"department\*" | String | 
|  s3tables:namespace | 依資料表儲存貯體中建立的命名空間篩選存取權。<br />您可以使用 `s3tables:namespace` 條件索引鍵來寫入 IAM，或限制使用者或應用程式存取特定命名空間內之資料表的資料表儲存貯體政策。*範例值：*`"s3tables:namespace":"hr" `<br />請務必注意，如果您使用 `s3tables:namespace` 條件索引鍵來控制存取權，則變更命名空間可能會影響這些政策。 | String | 
|  s3tables:SSEAlgorithm | 依用來加密資料表的伺服器端加密演算法來篩選存取權。<br />您可以使用 `s3tables:SSEAlgorithm` 條件金鑰來寫入 IAM、資料表或資料表儲存貯體政策，其會限制使用者或應用程式存取以特定加密類型加密的資料表。*範例值：*`"s3tables:SSEAlgorithm":"aws:kms" `<br />請務必注意，如果您使用 `s3tables:SSEAlgorithm` 條件金鑰來控制存取權，則加密的變更可能會影響這些政策。 | String | 
|  s3tables:KMSKeyArn | 依用於加密資料表之 AWS KMS 金鑰的金鑰 ARN 篩選存取權<br />您可以使用 `s3tables:KMSKeyArn` 條件金鑰來寫入 IAM、資料表或資料表儲存貯體政策，其會限制使用者或應用程式存取以特定 KMS 金鑰加密的資料表。<br />請務必注意，如果您使用 `s3tables:KMSKeyArn` 條件金鑰來控制存取權，則變更 KMS 金鑰可能會影響這些政策。 | ARN | 