

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

# 針對資料表和資料表儲存貯體強制執行和調整 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>}}/*"
        }
      }
    }
  ]
}
```

------