

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

# S3 Tables 的安全性
<a name="s3-tables-security-overview"></a>

 Amazon S3 提供了各種安全性功能和工具。下列是 S3 Tables 支援的這些功能和工具清單。適當應用這些工具有助於確保資料受到保護，並可確保您的資源只供預定使用者存取。

**身分型政策**  
[以身分為基礎的政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)會連接至 IAM 使用者、群組或角色。您可以使用身分型政策，授予 IAM 身分存取資料表儲存貯體或資料表的許可。使用者和角色預設不具有建立和修改資料表和資料表儲存貯體的許可。他們也無法使用 S3 主控台 AWS CLI或 Amazon S3 REST APIs 來執行任務。您可以在帳戶中建立 IAM 使用者、群組及角色，然後將存取政策與其相連。然後您可以授予對資源的存取權。若要建立和存取資料表儲存貯體和資料表，IAM 管理員必須將必要的許可授予 AWS Identity and Access Management (IAM) 角色或使用者。如需詳細資訊，請參閱 [S3 Tables 的存取和管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html)。

**資源型政策**  
[以資源為基礎的政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)會連接至資源。您可以為資料表儲存貯體和資料表建立資源型政策。您可以使用資料表儲存貯體政策來控制資料表儲存貯體和命名空間層級 API 存取許可。您也可以使用資料表儲存貯體政策來控制儲存貯體中多個資料表的資料表層級 API 許可。根據政策定義，連結至儲存貯體的許可能夠套用至儲存貯體中的所有或特定資料表。您也可以使用資料表政策，將資料表層級 API 存取許可授予儲存貯體中的個別資料表。

當 S3 資料表收到執行資料表儲存貯體操作或資料表操作的請求時，會先驗證請求者是否具有必要的許可。其會評估所有相關存取政策、使用者政策和資源型政策，以決定是否授權請求 (IAM 使用者政策、IAM 角色政策、資料表儲存貯體政策和資料表政策)。透過資料表儲存貯體政策和資料表政策，您可以個人化針對資源的存取權，以確保只有由您核准的身分可以存取資源並對其執行動作。如需詳細資訊，請參閱 [S3 Tables 的存取和管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html)。

**AWS Organizations S3 Tables 的服務控制政策 (SCPs)。**  
您可以在服務控制政策 (SCP) 中使用 Amazon S3 Tables 來管理組織中使用者的許可。與 IAM 和資源政策相似，系統會在政策內的 `s3tables` 命名空間中參考所有資料表和儲存貯體層級動作。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[服務控制政策 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。

**Topics**
+ [使用加密功能保護 S3 資料表資料](s3-tables-encryption.md)
+ [S3 Tables 的存取管理](s3-tables-setting-up.md)
+ [S3 Tables 的 VPC 連線能力](s3-tables-VPC.md)
+ [S3 Tables 的安全考量和限制](s3-tables-restrictions.md)

# 使用加密功能保護 S3 資料表資料
<a name="s3-tables-encryption"></a>

# 在資料表儲存貯體中使用伺服器端加密與 AWS KMS 金鑰 (SSE-KMS)
<a name="s3-tables-kms-encryption"></a>

**Topics**
+ [如何將 SSE-KMS 用於資料表和資料表儲存貯體](#kms-tables-how)
+ [針對資料表和資料表儲存貯體強制執行和調整 SSE-KMS 使用範圍](tables-require-kms.md)
+ [監控和稽核資料表和資料表儲存貯體的 SSE-KMS 加密](#kms-tables-audit)
+ [S3 Tables SSE-KMS 加密的許可要求](s3-tables-kms-permissions.md)
+ [使用資料表儲存貯體中的 AWS KMS 金鑰 (SSE-KMS) 指定伺服器端加密](s3-tables-kms-specify.md)

資料表儲存貯體具有預設加密組態，該組態使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密，以自動對資料表進行加密。此加密免費適用於 S3 資料表儲存貯體中的所有資料表。

如果您需要更多地控制加密金鑰，例如管理金鑰輪換和存取政策授予，您可以將資料表儲存貯體設定為使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)。中的安全控制 AWS KMS 可協助您符合加密相關的合規要求。如需 SSE-KMS 的詳細資訊，請參閱「[搭配 AWS KMS 金鑰使用伺服器端加密 (SSE-KMS)](UsingKMSEncryption.md)」。

## 如何將 SSE-KMS 用於資料表和資料表儲存貯體
<a name="kms-tables-how"></a>

具資料表儲存貯體的 SSE-KMS 與一般用途儲存貯體中的 SSE-KMS 不同，如下所示：
+ 您可以指定用於資料表儲存貯體和個別資料表的加密設定。
+ 您只能將客戶受管金鑰與不支援的 SSE-KMS. AWS managed 金鑰搭配使用。
+ 您必須授予特定角色 AWS 和服務主體存取 AWS KMS 金鑰的許可。如需詳細資訊，請參閱[S3 Tables SSE-KMS 加密的許可要求](s3-tables-kms-permissions.md)。這包括將存取權授予：
  + S3 維護主體 – 用於對加密的資料表執行資料表維護
  + 您的 S3 Tables 整合角色 – 用於在 AWS 分析服務中使用加密的資料表
  + 您的用戶端存取角色 – 用於從 Apache Iceberg 用戶端直接存取加密的資料表
  + S3 Metadata 主體 – 用於更新加密的 S3 Metadata 資料表
+ 加密的資料表使用資料表層級金鑰，可將對 提出的請求數量降至最低 AWS KMS ，讓使用 SSE-KMS 加密的資料表更具成本效益。

**資料表儲存貯體的 SSE-KMS 加密**  
建立資料表儲存貯體時，您可以選擇 SSE-KMS 做為預設加密類型，然後選取將用於加密的特定 KMS 金鑰。在該儲存貯體中建立的任何資料表，都會自動從其資料表儲存貯體繼承這些加密設定。您可以隨時使用 AWS CLI、S3 API 或 AWS SDKs 來修改或移除資料表儲存貯體上的預設加密設定。當您修改資料表儲存貯體上的加密設定時，這些設定僅適用於在該儲存貯體中建立的新資料表。預先存在資料表的加密設定不會變更。如需詳細資訊，請參閱[指定資料表儲存貯體的加密](s3-tables-kms-specify.md#specify-kms-table-bucket)。

**資料表的 SSE-KMS 加密**  
您也可以選擇使用不同的 KMS 金鑰來加密個別資料表，無論儲存貯體的預設加密組態為何。若要設定個別資料表的加密，您必須在建立資料表時，指定所需的加密金鑰。如果您想要變更現有資料表的加密，您需要使用所需的金鑰建立資料表，並將資料從舊資料表複製到新資料表。如需詳細資訊，請參閱[指定資料表加密](s3-tables-kms-specify.md#specify-kms-table)。

使用 AWS KMS 加密時，S3 Tables 會自動建立唯一的資料表層級資料金鑰，以加密與每個資料表相關聯的新物件。這些金鑰在有限的期間內使用，在加密操作期間將額外 AWS KMS 請求的需求降至最低，並降低加密成本。此類似於 [適用於 SSE-KMS 的 S3 儲存貯體金鑰](bucket-key.md#bucket-key-overview)。

# 針對資料表和資料表儲存貯體強制執行和調整 SSE-KMS 使用範圍
<a name="tables-require-kms"></a>

您可以使用 S3 Tables 資源型政策、KMS 金鑰政策、IAM 身分型政策，或這些政策的任意組合，強制使用 S3 資料表和資料表儲存貯體的 SSE-KMS。如需資料表的身分和資源政策的詳細資訊，請參閱 [S3 Tables 的存取管理](s3-tables-setting-up.md)。如需關於寫入金鑰政策的詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。下列範例示範如何使用政策來強制執行 SSE-KMS。

## 對於具有資料表儲存貯體政策的所有資料表，強制使用 SSE-KMS
<a name="w2aac20c35c15b3c11b5b1"></a>

這是資料表儲存貯體政策的範例，可防止使用者在特定資料表儲存貯體中建立資料表，除非使用者使用特定 AWS KMS 金鑰為資料表加密。若要使用此政策，請以您自己的資訊取代*使用者輸入預留位置*。

------
#### [ JSON ]

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceKMSEncryptionAlgorithm",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3tables:CreateTable"
      ],
      "Resource": [
        "arn:aws:s3tables:us-west-2:111122223333:bucket/example-table-bucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "s3tables:sseAlgorithm": "aws:kms"
        }
      }
    },
    {
      "Sid": "EnforceKMSEncryptionKey",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3tables:CreateTable"
      ],
      "Resource": [
        "arn:aws:s3tables:us-west-2:111122223333:bucket/example-table-bucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "s3tables:kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
      }
    }
  ]
}
```

------

## 要求使用者搭配 IAM 政策使用 SSE-KMS 加密
<a name="w2aac20c35c15b3c11b7b1"></a>

此 IAM 身分政策要求使用者在建立或設定 S3 Tables 資源時使用特定 AWS KMS 金鑰進行加密。若要使用此政策，請以您自己的資訊取代*使用者輸入預留位置*。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RequireSSEKMSOnTables",
      "Action": [
          "s3tables:CreateTableBucket",
          "s3tables:PutTableBucketEncryption",
          "s3tables:CreateTable"
      ],
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "s3tables:sseAlgorithm": "aws:kms"
        }
      }
    },
    {
      "Sid": "RequireKMSKeyOnTables",
      "Action": [
          "s3tables:CreateTableBucket",
          "s3tables:PutTableBucketEncryption",
          "s3tables:CreateTable"
      ],
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
            "s3tables:kmsKeyArn": "<key_arn>"
        }
      }
    }
  ]
}
```

## 使用 KMS 金鑰政策以對特定資料表儲存貯體限制使用金鑰
<a name="w2aac20c35c15b3c11b9b1"></a>

此範例 KMS 金鑰政策僅允許特定使用者將金鑰用於特定資料表儲存貯體中的加密作業。這種類型的政策適用於在跨帳戶案例中限制對金鑰的存取。若要使用此政策，請以您自己的資訊取代*使用者輸入預留位置*。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "Id",
  "Statement": [
    {
      "Sid": "AllowPermissionsToKMS",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:s3:arn": "<table-bucket-arn>/*"
        }
      }
    }
  ]
}
```

------

## 監控和稽核資料表和資料表儲存貯體的 SSE-KMS 加密
<a name="kms-tables-audit"></a>

若要稽核 SSE-KMS 加密資料的 AWS KMS 金鑰使用情況，您可以使用 AWS CloudTrail 日誌。您可以深入了解[密碼編譯操作](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)，例如 `GenerateDataKey` 和 `Decrypt`。CloudTrail 支援多種[屬性值](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html)來篩選搜尋，包括事件名稱、使用者名稱和事件來源。

您可以使用 CloudTrail 事件追蹤 Amazon S3 Tables 和資料表儲存貯體的加密組態請求。CloudTrail 日誌使用下列 API 事件名稱：
+ `s3tables:PutTableBucketEncryption`
+ `s3tables:GetTableBucketEncryption`
+ `s3tables:DeleteTableBucketEncryption`
+ `s3tables:GetTableEncryption`
+ `s3tables:CreateTable`
+ `s3tables:CreateTableBucket`

**注意**  
資料表儲存貯體不支援 EventBridge。

# S3 Tables SSE-KMS 加密的許可要求
<a name="s3-tables-kms-permissions"></a>

當您對 S3 資料表儲存貯體中的資料表使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 時，您需要授予帳戶中不同身分的許可。至少您的存取身分和 S3 Tables 維護主體需要您的金鑰存取權，所需的其他權限取決於您的使用案例。

**必要許可**   
若要存取使用 KMS 金鑰進行加密的資料表，您需要該金鑰的這些使用權限：  
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
若要在資料表上使用 SSE-KMS，Amazon S3 Tables 維護服務主體 (`maintenance.s3tables.amazonaws.com`) 需要金鑰的 `kms:GenerateDataKey` 和 `kms:Decrypt` 權限。

**額外許可**  
根據您的使用案例，需要這些額外的權限：  
+ ** AWS 分析服務和直接存取的許可** – 如果您透過 AWS 分析服務或第三方引擎直接存取 S3 資料表來使用 SSE-KMS 加密資料表，則您使用的 IAM 角色需要許可才能使用 KMS 金鑰。
+ **已啟用 Lake Formation 的許可** – 如果您已選擇加入 AWS Lake Formation 進行存取控制，Lake Formation 服務角色需要許可才能使用 KMS 金鑰。
+ **S3 Metadata 資料表的權限** – 如果您針對 S3 Metadata 資料表使用 SSE-KMS 加密，您需要提供 S3 Metadata 服務主體 (`metadata.s3.amazonaws.com`) 存取 KMS 金鑰的權限。這可讓 S3 Metadata 更新加密的資料表，以便反映您最新的資料變更。

**注意**  
對於跨帳戶 KMS 金鑰，您的 IAM 角色需要金鑰存取權，和金鑰政策中的明確授權。如需 KMS 金鑰跨帳戶許可的詳細資訊，請參閱*AWS Key Management Service 《服務開發人員指南*》中的[允許外部 AWS 帳戶使用 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console)。

**Topics**
+ [將 S3 Tables 維護服務主體權限授予 KMS 金鑰](#tables-kms-maintenance-permissions)
+ [授予 IAM 主體在整合 AWS 分析服務中使用加密資料表的許可](#tables-kms-integration-permissions)
+ [啟用 Lake Formation 時，授予 IAM 主體使用加密資料表的許可](#tables-kms-lf-permissions)
+ [授予 S3 Metadata 服務主體使用您的 KMS 金鑰的權限](#tables-kms-metadata-permissions)

## 將 S3 Tables 維護服務主體權限授予 KMS 金鑰
<a name="tables-kms-maintenance-permissions"></a>

需要此權限才能建立 SSE-KMS 加密資料表，並允許自動維護資料表，例如壓縮、快照管理，以及加密資料表上未參照的檔案移除。

**注意**  
每當您提出建立 SSE-KMS 加密資料表的請求時，S3 Tables 會檢查以確保 `maintenance.s3tables.amazonaws.com` 主體具有您的 KMS 金鑰存取權。若要執行此檢查，資料表儲存貯體中會暫時建立零位元組物件，[移除未參考的檔案](s3-table-buckets-maintenance.md#s3-table-bucket-maintenance-unreferenced)的維護操作會自動移除此物件。如果您為加密指定的 KMS 金鑰沒有維護存取權，createTable 操作便會失敗。

若要授予對 SSE-KMS 加密資料表的維護存取權，您可以使用下列範例金鑰政策。在此政策中，會授權讓 `maintenance.s3tables.amazonaws.com` 服務主體使用特定 KMS 金鑰來加密和解密特定資料表儲存貯體中資料表。若要使用該政策，請以您自己的資訊取代*使用者輸入預留位置*。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableKeyUsage",
            "Effect": "Allow",
            "Principal": {
                "Service": "maintenance.s3tables.amazonaws.com"            
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*"
                }
            }
        }
    ]
}
```

------

## 授予 IAM 主體在整合 AWS 分析服務中使用加密資料表的許可
<a name="tables-kms-integration-permissions"></a>

若要在 AWS 分析服務中使用 S3 資料表，您可以將資料表儲存貯體與 整合 AWS Glue Data Catalog。此整合可讓 AWS 分析服務自動探索和存取資料表資料。如需有關整合的詳細資訊，請參閱 [將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

當您透過 AWS 分析服務或第三方和開放原始碼引擎直接存取 S3 資料表來使用 SSE-KMS 加密資料表時，您使用的 IAM 角色需要許可，才能將 AWS KMS 金鑰用於加密操作。

您可以透過連接到角色的 IAM 政策或透過 KMS 金鑰政策授予 KMS 金鑰存取權。

------
#### [ IAM policy ]

將此內嵌政策連接至您用於查詢以允許 KMS 金鑰存取的 IAM 角色。將 KMS 金鑰 ARN 取代為您自己的金鑰 ARN。

```
{
    "Version":"2012-10-17",		 	 	 ,                    
    "Statement": [
        {
            "Sid": "AllowKMSKeyUsage",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}
```

------
#### [ KMS key policy ]

或者，將此陳述式連接到您的 KMS 金鑰政策，以允許指定的 IAM 角色使用金鑰。將角色 ARN 取代為您用於查詢的 IAM 角色。

```
{
    "Sid": "Allow use of the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::<catalog-account-id>:role/<role-name>"
        ]
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
    ],
    "Resource": "*"
}
```

------

## 啟用 Lake Formation 時，授予 IAM 主體使用加密資料表的許可
<a name="tables-kms-lf-permissions"></a>

如果您已選擇加入 AWS Lake Formation S3 Tables 整合的存取控制，Lake Formation 服務角色需要許可，才能使用 AWS KMS 金鑰進行加密操作。Lake Formation 使用此角色代表存取資料表的主體提供登入資料。

下列 KMS 金鑰政策範例授予 Lake Formation 服務角色許可，以使用帳戶中的特定 KMS 金鑰進行加密操作。將預留位置值取代為您自己的值。

```
{
  "Sid": "AllowTableRoleAccess",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/service-role/S3TablesRoleForLakeFormation"
  },
  "Action": [
      "kms:GenerateDataKey", 
      "kms:Decrypt"
  ],
  "Resource": "<kms-key-arn>"
}
```

## 授予 S3 Metadata 服務主體使用您的 KMS 金鑰的權限
<a name="tables-kms-metadata-permissions"></a>

若要允許 Amazon S3 更新 SSE-KMS 加密中繼資料表，並維護這些中繼資料表，您可以使用下列範例金鑰政策。在此政策中，您可以允許 `metadata.s3.amazonaws.com` 和 `maintenance.s3tables.amazonaws.com` 服務主體使用特定金鑰來加密和解密特定資料表儲存貯體中的資料表。若要使用該政策，請以您自己的資訊取代*使用者輸入預留位置*。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableKeyUsage",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "maintenance.s3tables.amazonaws.com",
                    "metadata.s3.amazonaws.com"
                ]           
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*"
                }
            }
        }
    ]
}
```

------

# 使用資料表儲存貯體中的 AWS KMS 金鑰 (SSE-KMS) 指定伺服器端加密
<a name="s3-tables-kms-specify"></a>

根據預設，所有 Amazon S3 資料表儲存貯體都會設定加密，而且在資料表儲存貯體中建立的所有新資料表，都會在靜態時自動加密。使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3) 是每個資料表儲存貯體的預設加密組態。如果您想要指定不同的加密類型，您可以搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 使用伺服器端加密 (SSE-KMS)。

 您可以在 `CreateTableBucket` 或 `CreateTable` 請求中指定 SSE-KMS 加密，也可以在 `PutTableBucketEncryption` 請求中的資料表儲存貯體中設定預設加密組態。

**重要**  
若要允許自動維護 SSE-KMS 加密資料表和資料表儲存貯體，您必須授予 maintenance.s3tables.amazonaws.com 服務主體許可權，才能使用 KMS 金鑰。如需詳細資訊，請參閱[S3 Tables SSE-KMS 加密的許可要求](s3-tables-kms-permissions.md)。

## 指定資料表儲存貯體的加密
<a name="specify-kms-table-bucket"></a>

您可以在建立新資料表儲存貯體時，將 SSE-KMS 指定為預設加密類型。如需範例，請參閱 [建立資料表儲存貯體](s3-tables-buckets-create.md)。建立資料表儲存貯體之後，您可以使用 REST API 操作、 AWS SDKs 和 AWS Command Line Interface ()，指定使用 SSE-KMS 做為預設加密設定AWS CLI。

**注意**  
 當您將 SSE-KMS 指定為預設加密類型時，用於加密的金鑰必須允許存取 S3 Tables 維護服務主體。如果維護服務主體無法存取，便無法在該資料表儲存貯體中建立資料表。如需詳細資訊，請參閱[將 S3 Tables 維護服務主體權限授予 KMS 金鑰](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions)。

### 使用 AWS CLI
<a name="w2aac20c35c15b3c17b9b9b1"></a>

若要使用下列範例 AWS CLI 命令，請以您自己的資訊取代*使用者輸入預留位置*。

```
aws s3tables put-table-bucket-encryption \
    --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket; \
    --encryption-configuration '{
        "sseAlgorithm": "aws:kms",
        "kmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }' \
    --region us-east-1
```

您可以使用 [DeleteTableBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucketEncryption.html) API 操作來移除資料表儲存貯體的預設加密設定。移除加密設定後，在資料表儲存貯體中建立的新資料表便會使用預設 SSE-S3 加密。

## 指定資料表加密
<a name="specify-kms-table"></a>

當您使用查詢引擎、REST API 操作、 AWS SDKs，您可以將 SSE-KMS 加密套用至新資料表AWS CLI。 AWS Command Line Interface 您在建立資料表時指定的加密設定，優先於資料表儲存貯體的預設加密設定。

**注意**  
當您對資料表使用 SSE-KMS 加密時，必須允許 S3 Tables 維護服務主體存取用於加密的金鑰。如果維護服務主體無法存取，便無法建立資料表。如需詳細資訊，請參閱[將 S3 Tables 維護服務主體權限授予 KMS 金鑰](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions)。

****所需的** 許可**

建立加密資料表需要下列權限
+ `s3tables:CreateTable`
+ `s3tables:PutTableEncryption`

## 使用 AWS CLI
<a name="w2aac20c35c15b3c17c13b1"></a>

下列 AWS CLI 範例會建立具有基本結構描述的新資料表，並使用客戶受管 AWS KMS 金鑰對其進行加密。若要使用此命令，請以您自己的資訊取代*使用者輸入預留位置*。

```
aws s3tables create-table \
  --table-bucket-arn "arn:aws:s3tables:Region:ownerAccountId:bucket/amzn-s3-demo-table-bucket" \
  --namespace "mydataset" \
  --name "orders" \
  --format "ICEBERG" \
  --encryption-configuration '{
    "sseAlgorithm": "aws:kms",
    "kmsKeyArn": "arn:aws:kms:Region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  }' \
  --metadata '{
    "iceberg": {
      "schema": {
        "fields": [
          {
            "name": "order_id",
            "type": "string",
            "required": true
          },
          {
            "name": "order_date",
            "type": "timestamp",
            "required": true
          },
          {
            "name": "total_amount",
            "type": "decimal(10,2)",
            "required": true
          }
        ]
      }
    }
  }'
```

資料保護是指保護往返 Amazon S3 的傳輸中資料，以及儲存在 Amazon S3 資料中心內磁碟的靜態資料。S3 Tables 一律使用 Transport Layer Security (1.2 版及更高版本) 透過 HTTPS 保護傳輸中的資料。下列選項可讓您保護 S3 資料表儲存貯體中的靜態資料：

**使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密**  
根據預設，所有 Amazon S3 資料表儲存貯體都設定加密。伺服器端加密的預設為使用 Amazon S3 受管金鑰 (SSE-S3)。此加密是免費的，並且適用於您的 S3 資料表儲存貯體中的所有資料表，除非您指定其他加密方式。每個物件都使用不重複的金鑰加密。SSE-S3 使用定期輪換的根金鑰自行加密金鑰，提供額外的防護。SSE-S3 使用目前最強大的其中一種區塊加密法 (256 位元進階加密標準 (AES-256))，加密您的資料。

**伺服器端加密與 AWS KMS 金鑰 (SSE-KMS)**  
您可以選擇將資料表儲存貯體或資料表設定為使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)。中的安全控制 AWS KMS 可協助您符合加密相關的合規要求。SSE-KMS 可讓您執行下列動作，讓您能進一步控制加密金鑰：  
+ 建立、檢視、編輯、監控、啟用或停用、輪換和排程 KMS 金鑰的刪除。
+ 定義可控制 KMS 金鑰使用方式和使用者的政策。
+ 在 中追蹤金鑰用量 AWS CloudTrail ，以確認您的 KMS 金鑰是否正確使用。
S3 Tables 支援在 SSE-KMS 中使用客戶受管金鑰來加密 table。不支援受 AWS 管金鑰。如需使用 SSE-KMS for S3 資料表和資料表儲存貯體的詳細資訊，請參閱 [在資料表儲存貯體中使用伺服器端加密與 AWS KMS 金鑰 (SSE-KMS)](s3-tables-kms-encryption.md)。

# 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，或限制使用者或應用程式僅存取符合此名稱條件之資料表的資料表儲存貯體政策。  請務必注意，如果您使用 `s3tables:tableName` 條件索引鍵來控制存取，則變更資料表名稱可能會影響這些政策。 範例值："s3tables:tableName":"department\$1" | 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 | 

# S3 Tables 的 IAM 身分型政策
<a name="s3-tables-identity-based-policies"></a>

使用者和角色預設不具有建立或修改資料表和資料表儲存貯體的許可。他們也無法使用 s3 主控台 AWS Command Line Interface (AWS CLI) 或 Amazon S3 REST API 來執行任務。若要建立和存取資料表儲存貯體和資料表， AWS Identity and Access Management (IAM) 管理員必須將必要的許可授予 IAM 角色或使用者。若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《IAM 使用者指南》**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

下列主題包含 IAM 身分型政策的範例。若要使用下列政策範例，請以您自己的資訊取代*使用者輸入預留位置*。

**Topics**
+ [範例 1：允許建立和使用資料表儲存貯體的存取權](#example-1-s3-tables-identity-based-policies)
+ [範例 2：允許在資料表儲存貯體中建立和使用資料表的存取權](#example-2-s3-tables-identity-based-policies)

## 範例 1：允許建立和使用資料表儲存貯體的存取權
<a name="example-1-s3-tables-identity-based-policies"></a>

**.**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBucketActions",
            "Effect": "Allow",
            "Action": [
                "s3tables:CreateTableBucket",
                "s3tables:PutTableBucketPolicy",
                "s3tables:GetTableBucketPolicy",
                "s3tables:ListTableBuckets",
                "s3tables:GetTableBucket"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
        }
    ]
}
```

------

## 範例 2：允許在資料表儲存貯體中建立和使用資料表的存取權
<a name="example-2-s3-tables-identity-based-policies"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBucketActions",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTableBucket",
                "s3tables:ListTables",
                "s3tables:CreateTable",
                "s3tables:PutTableData",
                "s3tables:GetTableData",
                "s3tables:GetTable",
                "s3tables:GetTableMetadataLocation",
                "s3tables:UpdateTableMetadataLocation",
                "s3tables:GetNamespace",
                "s3tables:CreateNamespace",
                "s3tables:ListNamespaces"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/*"
            ]
        }
    ]
}
```

------

# 適用於 S3 Tables 的資源型政策
<a name="s3-tables-resource-based-policies"></a>

S3 Tables 可提供資源型政策，用於管理對資料表儲存貯體和資料表的存取：資料表儲存貯體政策和資料表政策。您可以使用資料表儲存貯體政策，授予資料表儲存貯體、命名空間或資料表層級的 API 存取許可。連結至資料表儲存貯體的許可能夠套用到儲存貯體中的所有資料表，或套用到儲存貯體中的特定資料表，具體情況取決於政策定義。您可以使用資料表政策來授予資料表層級的許可。

當 S3 Tables 收到請求時，會先驗證請求者是否具有必要的許可。其會評估所有相關存取政策、使用者政策和資源型政策，以決定是否授權請求 (IAM 使用者政策、IAM 角色政策、資料表儲存貯體政策和資料表政策)。例如，如果資料表儲存貯體政策授予使用者許可，以對儲存貯體 (包括 `DeleteTable`) 中的資料表執行所有動作，但個別資料表具有拒絕所有使用者 `DeleteTable` 動作的資料表政策，則使用者無法刪除資料表。

下列主題包含資料表和資料表儲存貯體政策的範例。若要使用這些政策，請以為您自己的資訊取代*使用者輸入預留位置*。

**注意**  
授予修改資料表許可的每個政策，都應包含供 `GetTableMetadataLocation` 存取資料表根檔案的許可。如需詳細資訊，請參閱[https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_GetTableMetadataLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_GetTableMetadataLocation.html)。
每次在資料表上執行寫入或刪除活動時，請在存取政策中包含 `UpdateTableMetadataLocation` 的許可。
建議您使用資料表儲存貯體政策來管控對儲存貯體層級動作的存取，並使用資料表政策來管控對資料表層級動作的存取。如果您想要跨多個資料表定義相同的許可集，則建議您使用資料表儲存貯體政策。

**Topics**
+ [範例 1：資料表儲存貯體政策允許存取帳戶中儲存貯體的 `PutBucketMaintenanceConfiguration`](#table-bucket-policy-1)
+ [範例 2：資料表儲存貯體政策，可允許對 `hr` 命名空間中儲存的資料表的讀取 (SELECT) 存取](#table-bucket-policy-2)
+ [範例 3：允許使用者刪除資料表的資料表政策](#table-bucket-policy-3)

## 範例 1：資料表儲存貯體政策允許存取帳戶中儲存貯體的 `PutBucketMaintenanceConfiguration`
<a name="table-bucket-policy-1"></a>

下列範例資料表儲存貯體政策允許 IAM `data steward` 透過允許存取 `PutBucketMaintenanceConfiguration` 來刪除帳戶中所有儲存貯體的未參考物件。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasteward"
            },
            "Action": [
                "s3tables:PutTableBucketMaintenanceConfiguration"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
        }
    ]
}
```

------

## 範例 2：資料表儲存貯體政策，可允許對 `hr` 命名空間中儲存的資料表的讀取 (SELECT) 存取
<a name="table-bucket-policy-2"></a>

下列範例資料表儲存貯體政策允許來自 AWS 帳戶 ID `123456789012` 的使用者 Jane 存取資料表儲存貯體中 `hr` 命名空間中儲存的資料表。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Jane"
            },
            "Action": [
                "s3tables:GetTableData",
                "s3tables:GetTableMetadataLocation"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/*",
            "Condition": {
                "StringLike": {
                    "s3tables:namespace": "hr"
                }
            }
        }
    ]
}
```

------

## 範例 3：允許使用者刪除資料表的資料表政策
<a name="table-bucket-policy-3"></a>

下列範例資料表政策允許 IAM 角色 `data steward` 刪除資料表。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "DeleteTable",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasteward"
            },
            "Action": [
                "s3tables:DeleteTable",
                "s3tables:UpdateTableMetadataLocation",
                "s3tables:PutTableData",
                "s3tables:GetTableMetadataLocation"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/tableUUID"
        }
    ]
}
```

------

# AWS S3 Tables 的 受管政策
<a name="s3-tables-security-iam-awsmanpol"></a>

 AWS 受管政策是由 AWS AWS 受管政策建立和管理的獨立政策旨在為許多常用案例提供許可，以便您可以開始將許可指派給使用者、群組和角色。

請記住， AWS 受管政策可能不會授予特定使用案例的最低權限許可，因為這些許可可供所有 AWS 客戶使用。我們建議您定義特定於使用案例的[客戶管理政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)，以便進一步減少許可。

您無法變更 AWS 受管政策中定義的許可。如果 AWS 更新受 AWS 管政策中定義的許可，則更新會影響政策連接的所有委託人身分 （使用者、群組和角色）。當新的 AWS 服務 啟動或新的 API 操作可供現有服務使用時， AWS 最有可能更新 AWS 受管政策。

如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 受管政策： AmazonS3TablesFullAccess
<a name="s3-tables-security-iam-awsmanpol-amazons3tablesfullaccess"></a>

您可將 `AmazonS3TablesFullAccess` 政策連接到 IAM 身分。此政策授予允許 Amazon S3 Tables 完整存取權的許可。如需此政策的詳細資訊，請參閱 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html)。

## AWS 受管政策： AmazonS3TablesReadOnlyAccess
<a name="s3-tables-security-iam-awsmanpol-amazons3readonlyaccess"></a>

您可將 `AmazonS3TablesReadOnlyAccess` 政策連接到 IAM 身分。此政策授予允許 Amazon S3 Tables 唯讀存取權的許可。如需此政策的詳細資訊，請參閱 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesReadOnlyAccess.html)。

## AWS 受管政策： AmazonS3TablesLakeFormationServiceRole
<a name="s3-tables-security-iam-awsmanpol-amazons3tableslakeformationservicerole"></a>

您可將 `AmazonS3TablesLakeFormationServiceRole` 政策連接到 IAM 身分。此政策授予許可，允許 AWS Lake Formation 服務角色存取 S3 Tables。 AWS KMS permissions 用於允許 Lake Formation 存取加密的資料表。如需此政策的詳細資訊，請參閱 [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesLakeFormationServiceRole.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesLakeFormationServiceRole.html)。

## AWS 受管政策的 Amazon S3 Tables 更新
<a name="s3-tables-security-iam-awsmanpol-updates"></a>

檢視自 Amazon S3 S3 Tables AWS 受管政策更新的詳細資訊。


| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  Amazon S3 Tables 已更新 `AmazonS3TablesFullAccess`。  |  S3 Tables AWS已更新名為 的受管政策`AmazonS3TablesFullAccess`。此更新授予將角色傳遞至 S3 Tables 複寫服務的許可。  |  2025 年 12 月 2 日  | 
|  Amazon S3 Tables 已新增 `AmazonS3TablesLakeFormationServiceRole`。  |  S3 Tables 新增了名為 的新 AWS受管政策`AmazonS3TablesLakeFormationServiceRole`。此政策可授予權限，允許 Lake Formation 服務角色存取 S3 Tables。  | 2025 年 5 月 19 日 | 
|  Amazon S3 Tables 已新增 `AmazonS3TablesFullAccess`。  |  S3 Tables 新增了名為 的新 AWS受管政策`AmazonS3TablesFullAccess`。此政策授予允許 Amazon S3 Tables 完整存取權的許可。  | 2024 年 12 月 3 日 | 
|  Amazon S3 Tables 已新增 `AmazonS3TablesReadOnlyAccess`。  |  S3 Tables 新增了名為 的新 AWS受管政策`AmazonS3TablesReadOnlyAccess`。此政策授與允許對 Amazon S3 Tables 唯讀存取的許可。  | 2024 年 12 月 3 日 | 
|  Amazon S3 Tables 開始追蹤變更。  |  Amazon S3 Tables 開始追蹤其 AWS 受管政策的變更。  | 2024 年 12 月 3 日 | 

# 使用 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` 許可。此權限可讓您永久移除資料表，及其所有相關聯的資料和中繼資料。請小心使用此權限，因為刪除作業無法復原。

# 使用 Lake Formation 管理對資料表或資料庫的存取
<a name="grant-permissions-tables"></a>

如果您的資料表儲存貯體與使用 Lake Formation 的 AWS 分析服務整合，則 Lake Formation 會管理對資料表的存取，並要求每個 IAM 主體 （使用者或角色） 都有權執行動作。Lake Formation 會使用自己的許可模型 (Lake Formation 許可)，為資料目錄資源啟用精細的存取控制。

如需詳細資訊，請參閱《AWS Lake Formation 開發人員指南》**中的 [Lake Formation 許可概觀](https://docs.aws.amazon.com//lake-formation/latest/dg/lf-permissions-overview.html)。

 AWS Lake Formation中有兩種主要類型的權限：

1. 中繼資料存取權限可控制在 Data Catalog 中建立、讀取、更新和刪除中繼資料資料庫和資料表的能力。

1. 基礎資料存取權限可控制讀取和寫入資料目錄資源指向的基礎 Amazon S3 位置的能力。

Lake Formation 使用自己的許可模型和 IAM 許可模型的組合，控制對 Data Catalog 資源和基礎資料的存取：
+ 若要請求成功存取 Data Catalog 資源或基礎資料，則請求必須通過 IAM 和 Lake Formation 的許可權檢查。
+ IAM 許可控制對 Lake Formation 和 AWS Glue APIs存取，而 Lake Formation 許可控制對 Data Catalog 資源、Amazon S3 位置和基礎資料的存取。

Lake Formation 許可權僅適用於授予其獲授權的區域，且主體必須由資料湖管理員或其他具有必要權限的主體的授權，才能授予 Lake Formation 許可。

**注意**  
如果您是執行資料表儲存貯體整合的使用者，您已擁有資料表的 Lake Formation 許可。如果您是將存取資料表的唯一主體，您可以略過此步驟。您只需將資料表的 Lake Formation 許可權授予其他 IAM 主體。這可讓其他主體在執行查詢時存取資料表。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](#grant-lf-table)。

## 授予資料表或資料庫的 Lake Formation 許可
<a name="grant-lf-table"></a>

您可以對資料表儲存貯體中的資料表或資料庫授予主體 Lake Formation 許可，方式是透過 Lake Formation 主控台或 AWS CLI。

**注意**  
當您將 Data Catalog 資源的 Lake Formation 許可授予外部帳戶或直接授予另一個帳戶中的 IAM 主體時，Lake Formation 會使用 AWS Resource Access Manager (AWS RAM) 服務來共用資源。如果承授者帳戶與授予者帳戶位於相同的組織中，則承授者可立即使用共享資源。如果承授者帳戶不在同一個組織中， AWS RAM 會向承授者帳戶傳送邀請，請其接受或拒絕資源授權。然後，若要提供共用資源，承授者帳戶中的資料湖管理員必須使用 AWS RAM 主控台或 AWS CLI 接受邀請。如需有關跨帳戶資料共享的詳細資訊，請參閱《AWS Lake Formation 開發人員指南》**中的 [Lake Formation 中的跨帳戶資料共享](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html)。

------
#### [ Console ]

1. 在 開啟 AWS Lake Formation 主控台[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)，並以資料湖管理員身分登入。如需如何建立資料湖管理員的詳細資訊，請參閱《AWS Lake Formation 開發人員指南》**中的[建立資料湖管理員](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin)。

1. 在導覽窗格中，選擇**資料許可**，然後選擇**授予**。

1. 在**授予許可**頁面的**主體**下，執行下列其中一項操作：
   + 針對 Amazon Athena 或 Amazon Redshift，選擇 **IAM 使用者和角色**，然後選取您用於查詢的 IAM 主體。
   + 針對 Amazon Data Firehose，選擇 **IAM 使用者和角色**，然後選取您已建立的服務角色以讓其串流至資料表。
   + 針對快速，選擇 **SAML 使用者和群組**，然後輸入快速管理員使用者的 Amazon Resource Name (ARN)。
   + 針對 AWS Glue Iceberg REST端點存取，選擇 **IAM 使用者和角色**，然後選取您為用戶端建立的 IAM 角色。如需詳細資訊，請參閱[為您的用戶端建立 IAM 角色](s3-tables-integrating-glue-endpoint.md#glue-endpoint-create-iam-role)

1. 在 **LF-標籤或型錄資源**下，選擇**已命名的的資料型錄資源**。

1. 對於**目錄**，選擇您在整合資料表儲存貯體時建立的子目錄，例如 `account-id:s3tablescatalog/amzn-s3-demo-bucket`。

1. 針對**資料庫**，選擇您建立的 S3 資料表儲存貯體命名空間。

1. (選用) 針對**資料表**選擇您在資料表儲存貯體中建立的 S3 資料表。
**注意**  
如果您要在 Athena 查詢編輯器中建立新資料表，請勿選取資料表。

1. 執行以下任意一項：
   + 如果您在上一個步驟中指定了資料表，請針對**資料表許可**選擇**超級**。
   + 如果您未在上一個步驟中指定資料表，請前往**資料庫許可**。對於跨帳戶資料共享，您無法選擇**超級**來授予其他主體資料庫的所有權限。反之，請選擇更精細的許可權，例如**描述**。

1. 選擇 **Grant** (授予)。

------
#### [ CLI ]

1. 請確定您以資料湖管理員身分執行下列 AWS CLI 命令。如需詳細資訊，請參閱《AWS Lake Formation 開發人員指南》**中的[建立資料湖管理員者](https://docs.aws.amazon.com//lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin)。

1. 執行下列命令，將 S3 資料表儲存貯體中資料表的 Lake Formation 許可授予 IAM 主體，以存取資料表。若要使用此範例，請以您自己的資訊取代 *`user input placeholders`*。

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role"
       },
       "Resource": {
           "Table": {
               "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket",
               "DatabaseName": "S3 table bucket namespace, for example, test_namespace",
               "Name": "S3 table bucket table name, for example test_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

------

# S3 Tables 的 VPC 連線能力
<a name="s3-tables-VPC"></a>

S3 Tables 中的所有資料表皆採用 Apache Iceberg 格式，而且是由兩種類型的 S3 物件組成。這兩種類型的物件是資料檔案，用於存放資料和中繼資料檔案，可追蹤資料檔案在不同時間點的資訊。所有資料表儲存貯體、命名空間和資料表操作 (例如 `CreateNamespace`、`CreateTable` 等) 都會透過 S3 Tables 端點 (`s3tables.region.amazonaws.com`) 路由，而讀取或寫入資料和中繼資料檔案的所有物件層級操作都會繼續透過 S3 服務端點 (`s3.region.amazonaws.com`) 路由。

若要存取 S3 Tables，Amazon S3 使用 AWS PrivateLink閘道端點和介面端點支援兩種類型的 VPC 端點。閘道端點是您在路由表中指定的閘道，可透過 AWS 網路從 VPC 存取 S3。介面端點使用私有 IP 位址，將請求從您的 VPC 內部、內部部署或使用 VPC 對等互連或 AWS Transit Gateway在其他 AWS 區域 的 VPC 路由至 Amazon S3，來擴展閘道端點的功能。

若要從 VPC 存取 S3 Tables，建議您建立兩個 VPC 端點 (一個用於 S3，另一個用於 S3 Tables)。您可以建立閘道或介面端點，將檔案 (物件) 層級操作路由至 S3，以及建立介面端點，將儲存貯體和資料表層級操作路由至 S3 Tables。您可以使用 S3，為檔案層級請求建立和使用 VPC 端點。如需詳細資訊，請參閱《AWS PrivateLink 使用者指南》**中的[閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html)。

若要進一步了解如何使用 AWS PrivateLink 來建立和使用 S3 Tables 的端點，請參閱下列主題。如要建立 VPC 介面端點，請參閱《*AWS PrivateLink 指南*》中的[建立 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

**Topics**
+ [為 S3 Tables 建立 VPC 端點](#s3-tables-endpoints)
+ [使用 透過端點存取資料表儲存貯體和資料表 AWS CLI](#s3-tables-endpoints-cli-sdks)
+ [在使用查詢引擎時設定 VPC 網路](#s3-tables-query-engine)
+ [使用雙堆疊端點存取資料表和資料表儲存貯體](#s3-tables-dual-stack-endpoints)
+ [限制對 VPC 網路內對 S3 Tables 的存取](#s3-tables-VPC-policy)

## 為 S3 Tables 建立 VPC 端點
<a name="s3-tables-endpoints"></a>

在您建立介面 VPC 端點時，S3 Tables 會產生兩種類型的端點特定 DNS 名稱：區域和地區。
+ 區域 DNS 名稱的格式如下：`VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com`。例如，針對 VPC 端點 ID `vpce-1a2b3c4d`，產生的 DNS 名稱將類似於 `vpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com`。
+ 地區 DNS 名稱的格式如下：`VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com`。例如，針對 VPC 端點 ID `vpce-1a2b3c4d-5e6f.`，產生的 DNS 名稱將類似於 `vpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com`。

   地區 DNS 名稱包含您的可用地區。如果您的架構會隔離可用區域，則可以使用地區 DNS 名稱。您可以從 S3 公有 DNS 網域解析端點特定 S3 DNS 名稱。

您還可以使用私有 DNS 選項來簡化透過 VPC 端點的 S3 流量路由，並協助您利用適用於應用程式的成本最低網路路徑。私有 DNS 會將 S3 Tables 的公有端點 (例如 `s3tables.region.amazonaws.com`)，對應至 VPC 中的私有 IP。您可以使用私有 DNS 選項來路由區域 S3 流量，而無需更新 S3 用戶端，以使用介面端點的端點特定 DNS 名稱。

## 使用 透過端點存取資料表儲存貯體和資料表 AWS CLI
<a name="s3-tables-endpoints-cli-sdks"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 透過介面端點存取資料表儲存貯體和資料表。透過 AWS CLI， `aws s3`命令會透過 Amazon S3 端點路由流量。`aws s3tables` AWS CLI 命令使用 Amazon S3 Tables 端點。

`s3tables` VPC 端點的範例為 `vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com`

`s3tables` VPC 端點不包含儲存貯體名稱。您可以使用 `aws s3tables` AWS CLI 命令存取 `s3tables` VPC 端點。

`s3` VPC 端點的範例為 `amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com`

您可以使用 `aws s3` AWS CLI 命令存取 `s3` VPC 端點。

### 使用 AWS CLI
<a name="set-s3tables-vpc-cli"></a>

若要使用 透過界面端點存取資料表儲存貯體和資料表 AWS CLI，請使用 `-region`- 和 `--endpoint-url` 參數。若要執行資料表儲存貯體和資料表層級動作，請使用 S3 Tables 端點 URL。若要執行物件層級動作，請使用 Amazon S3 端點 URL。

在下列範例中，請用您自己的資訊取代*使用者輸入預留位置*。

**範例 1：使用端點 URL 列出帳戶中的資料表儲存貯體**

```
aws s3tables list-table-buckets --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com —region us-east-1
```

**範例 2：使用端點 URL 列出儲存貯體中的資料表**

```
aws s3tables list-tables --table-bucket-arn arn:aws:s3tables:us-east-1:123456789301:bucket/amzn-s3-demo-bucket --endpoint https://vpce-0123456afghjipljb-aac.s3tables.us-east-1.vpce.amazonaws.com --region us-east-1
```

## 在使用查詢引擎時設定 VPC 網路
<a name="s3-tables-query-engine"></a>

使用查詢引擎時，請使用下列步驟設定 VPC 網路。

1. 若要開始使用，您可以建立或更新 VPC。如需詳細資訊，請參閱[建立一個 VPC](https://docs.aws.amazon.com//vpc/latest/userguide/create-vpc.html#create-vpc-and-other-resources)。

1.  對於路由至 S3 Tables 的資料表和資料表儲存貯體層級操作，請建立新的介面端點。如需詳細資訊，請參閱[使用介面 VPC 端點存取 AWS 服務](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

1.  對於路由至 Amazon S3 的所有物件層級操作，請建立閘道端點或介面端點。如需有關閘道端點的詳細資訊，請參閱[建立閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)。

1.  接著，請設定您的資料資源並啟動 Amazon EMR 叢集。如需詳細資訊，請參閱[開始使用 Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html)。

1. 然後，您可以從 VPC 端點選取您的 DNS 名稱，以提交具有其他組態的 Spark 應用程式。例如，`spark.sql.catalog.ice_catalog.s3tables.endpoint` 和 `https://interface-endpoint.s3tables.us-east-1.vpce.amazonaws.com`。如需詳細資訊，請參閱[將工作提交至您的 Amazon EMR 叢集](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html#emr-getting-started-manage)。

## 使用雙堆疊端點存取資料表和資料表儲存貯體
<a name="s3-tables-dual-stack-endpoints"></a>

S3 Tables 支援 的雙堆疊連線 AWS PrivateLink。除了 IPv4 通訊協定之外，雙堆疊端點還可讓您使用網際網路通訊協定第 6 版 (IPv6) 存取 S3 資料表儲存貯體，視網路支援的項目而定。您可以使用下列命名慣例，透過雙堆疊端點存取 S3 儲存貯體：

```
s3tables.<region>.api.aws
```

以下是透過 VPC 中的 IPv6 嘗試存取 S3 Tables 和資料表儲存貯體之前的須知事項：
+ 您用來存取資料表的用戶端和 S3 用戶端，必須同時啟用雙堆疊。
+ VPC 安全群組預設不啟用 IPv6 傳入。若要允許 IPv6 存取，您需要新增規則以允許 HTTPS (TCP 連接埠 443) 連到您的安全群組。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html#add-remove-security-group-rules)。
+ 如果您的 VPC 未指派 IPv6 CIDR，您將需要手動將 IPv6 CIDR 區塊新增至 VPC。如需詳細資訊，請參閱《AWS PrivateLink 使用者指南》** 中的[https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html)。
+ 如果您使用 IP 位址篩選 IAM 政策，則必須更新政策來處理 IPv6 位址。如需使用 IAM 管理存取權的詳細資訊，請參閱 [Amazon S3 的 Identity and Access Management](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html)。

若要建立使用 S3 Tables 雙堆疊端點的新 VPC 端點，請使用範例 CLI 命令：

```
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-id \
  --service-name com.amazonaws.aws-region.s3tables \
  --subnet-ids subnet-1 subnet-2 \
  --vpc-endpoint-type Interface \
  --ip-address-type dualstack \
  --dns-options "DnsRecordIpType=dualstack" \
  --security-group-ids sg-id \
  --region aws-region
```

如需建立 VPC 端點的詳細資訊，請參閱《VPC 使用者指南》中的[https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

如果您的網路支援 IPv6，而且您想要更新 VPC 以啟用 IPv6，您可以使用下列 CLI 命令：

```
aws ec2 modify-vpc-endpoint \
  --vpc-endpoint-id vpce-id \
  --ip-address-type dualstack \
  --dns-options "DnsRecordIpType=dualstack" \
  --region aws-region
```

## 限制對 VPC 網路內對 S3 Tables 的存取
<a name="s3-tables-VPC-policy"></a>

與資源型政策類似，您可以將端點政策連接至 VPC 端點，以控制對資料表和資料表儲存貯體的存取權。在下列範例中，介面端點政策只會限制對特定資料表儲存貯體的存取。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy141511512309",
    "Statement": [
        {
            "Sid": "Access-to-specific-bucket-only",
            "Principal": "*",
            "Action": "s3tables:*",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

# S3 Tables 的安全考量和限制
<a name="s3-tables-restrictions"></a>

下列清單說明 S3 Tables 不支援或限制哪些安全性和存取控制功能。
+ 不支援公有存取政策。使用者無法修改儲存貯體或資料表政策以允許公開存取。
+ 不支援預先簽署的 URL 存取與資料表相關聯的物件。
+ 不支援透過 HTTP 提出的請求。Amazon S3 會自動回應透過 HTTP 提出之任何請求的 HTTP 重新導向，以將請求升級至 HTTPS。
+ 使用 REST APIs 向存取點提出請求時，您必須使用 AWS Signature 第 4 版。
+ 透過網際網路通訊協定第 6 版 (IPv6) 提出的請求僅支援透過資料表儲存端點執行的物件層級動作，不支援資料表層級和儲存貯體層級動作。
+ 資料表儲存貯體和資料表存取政策的大小限制為 20 KB。