

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

# 使用資料表儲存貯體中的 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
          }
        ]
      }
    }
  }'
```