

# 테이블 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 사용
테이블 버킷의 SSE-KMS

**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의 작동 방식


테이블 버킷의 SSE-KMS는 다음과 같은 측면에서 범용 버킷의 SSE-KMS와 다릅니다.
+ 테이블 버킷 및 개별 테이블에 대해 암호화 설정을 지정할 수 있습니다.
+ SSE-KMS에서는 고객 관리형 키만 사용할 수 있습니다. AWS 관리형 키는 지원되지 않습니다.
+ 특정 역할 및 AWS 서비스 위탁자에게 AWS KMS 키에 액세스할 수 있는 권한을 부여해야 합니다. 자세한 내용은 [S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항](s3-tables-kms-permissions.md) 섹션을 참조하세요. 여기에는 다음과 같은 권한 부여가 포함됩니다.
  + S3 유지 관리 위탁자 - 암호화된 테이블 유지 관리
  + S3 Tables 통합 역할 - AWS 분석 서비스에서 암호화된 테이블에 대한 작업 수행
  + 클라이언트 액세스 역할 - Apache Iceberg 클라이언트에서 암호화된 테이블에 직접 액세스
  + S3 메타데이터 위탁자 - 암호화된 S3 메타데이터 테이블 업데이트
+ 암호화된 테이블은 SSE-KMS로 암호화된 테이블을 더 비용 효율적으로 사용하기 위해 AWS KMS에 대한 요청 수를 최소화하는 테이블 수준 키를 사용합니다.

**테이블 버킷에 대한 SSE-KMS 암호화**  
테이블 버킷을 생성할 때 SSE-KMS를 기본 암호화 유형으로 선택하고 암호화에 사용할 특정 KMS 키를 선택할 수 있습니다. 해당 버킷 내에 생성된 모든 테이블은 테이블 버킷에서 이러한 암호화 설정을 자동으로 상속합니다. AWS CLI, S3 API 또는 AWS SDK를 사용하여 언제든지 테이블 버킷의 기본 암호화 설정을 수정하거나 제거할 수 있습니다. 테이블 버킷의 암호화 설정을 수정할 때 그러한 설정은 해당 버킷에서 생성된 새 테이블에만 적용됩니다. 기존 테이블에 대한 암호화 설정은 변경되지 않습니다. 자세한 내용은 [테이블 버킷에 대한 암호화 지정](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 사용 적용 및 범위 지정
SSE-KMS 적용

S3 Tables 리소스 기반 정책, KMS 키 정책, IAM ID 기반 정책 또는 이들의 조합을 사용하여 S3 테이블 및 테이블 버킷에 대한 SSE-KMS 사용을 적용할 수 있습니다. 테이블의 ID 및 리소스 정책에 대한 자세한 내용은 [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 사용 적용


이는 사용자가 특정 AWS KMS 키로 테이블을 암호화하지 않는 한 특정 테이블 버킷에 테이블을 생성하지 못하도록 하는 테이블 버킷 정책의 예입니다. 이 정책을 사용하려면 *사용자 입력 자리 표시자*를 실제 정보로 바꿉니다.

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

****  

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

------

## IAM 정책을 사용하여 사용자에게 SSE-KMS 암호화 사용 요구


이 IAM ID 정책은 사용자가 S3 Tables 리소스를 생성하거나 구성할 때 암호화에 특정 AWS KMS 키를 사용하도록 요구합니다. 이 정책을 사용하려면 *사용자 입력 자리 표시자*를 실제 정보로 바꿉니다.

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

## KMS 키 정책을 사용하여 키 사용을 특정 테이블 버킷으로 제한


이 예제 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 암호화 모니터링 및 감사


AWS CloudTrail 로그를 사용하여 SSE-KMS 암호화 데이터의 AWS KMS 키 사용을 감사할 수 있습니다. `GenerateDataKey` 및 `Decrypt`와 같은 [암호화 작업](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)에 대한 인사이트를 얻을 수 있습니다. CloudTrail은 이벤트 이름, 사용자 이름, 이벤트 소스 등 검색 필터링을 위한 다양한 [속성 값](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html)을 지원합니다.

CloudTrail 이벤트를 사용하여 Amazon S3 테이블 및 테이블 버킷에 대한 기본 암호화 구성 요청을 추적할 수 있습니다. CloudTrail 로그에 사용되는 API 이벤트 이름은 다음과 같습니다.
+ `s3tables:PutTableBucketEncryption`
+ `s3tables:GetTableBucketEncryption`
+ `s3tables:DeleteTableBucketEncryption`
+ `s3tables:GetTableEncryption`
+ `s3tables:CreateTable`
+ `s3tables:CreateTableBucket`

**참고**  
테이블 버킷에는 EventBridge가 지원되지 않습니다.

# S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항
SSE-KMS 권한

S3 테이블 버킷의 테이블에 대해 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통한 서버 측 암호화를 사용하는 경우 계정의 다양한 ID에 권한을 부여해야 합니다. 최소한 액세스 ID와 S3 Tables 유지 관리 위탁자가 키에 대한 액세스 권한을 가져야 하며 사용 사례에 따라 다른 권한도 필요합니다.

**필수 권한**   
KMS 키로 암호화된 테이블에 액세스하려면 해당 키에 대한 다음 권한이 필요합니다.  
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
테이블에서 SSE-KMS를 사용하려면 Amazon S3 Tables 유지 관리 서비스 위탁자(`maintenance.s3tables.amazonaws.com`)에게 키에 대한 `kms:GenerateDataKey` 및 `kms:Decrypt` 권한이 필요합니다.

**추가 권한**  
사용 사례에 따라 다음과 같은 추가 권한이 필요합니다.  
+ **AWS 분석 서비스 통합 권한** - AWS 분석 서비스에서 SSE-KMS로 암호화된 테이블에 대한 작업을 수행하는 경우 통합 역할에 KMS 키를 사용할 수 있는 권한이 필요합니다.
+ **직접 액세스 권한** - Amazon S3 Tables Iceberg REST 엔드포인트 또는 Amazon S3 Tables Catalog for Apache Iceberg와 같은 방법을 통해 SSE-KMS로 암호화된 테이블로 직접 작업하는 경우 클라이언트가 사용하는 IAM 역할에 키에 대한 액세스 권한을 부여해야 합니다.
+ **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)
+ [

## IAM 위탁자에게 암호화된 테이블로 직접 작업할 수 있는 권한 부여
](#tables-kms-direct-permissions)
+ [

## S3 Metadata 서비스 위탁자에게 KMS 키를 사용할 수 있는 권한 부여
](#tables-kms-metadata-permissions)

## S3 Tables 유지 관리 서비스 위탁자에게 KMS 키 권한 부여


이 권한은 SSE-KMS로 암호화된 테이블을 생성하고 암호화된 테이블에서 압축, 스냅샷 관리 및 참조되지 않은 파일 제거와 같은 자동 테이블 유지 관리를 수행할 수 있도록 하는 데 필요합니다.

**참고**  
SSE-KMS로 암호화된 테이블을 생성하도록 요청할 때마다 S3 Tables는 `maintenance.s3tables.amazonaws.com` 위탁자에게 KMS 키에 대한 액세스 권한이 있는지 확인합니다. 이 확인을 수행하기 위해 테이블 버킷에 0바이트 객체가 일시적으로 생성되며, 이 객체는 [참조되지 않은 파일 제거](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 분석 서비스에서 암호화된 테이블에 대한 작업을 수행할 수 있는 권한 부여


AWS 분석 서비스에서 S3 테이블에 대한 작업을 수행하려면 테이블 버킷을 Amazon SageMaker Lakehouse와 통합하세요. 이 통합을 통해 AWS 분석 서비스가 테이블 데이터를 자동으로 검색하고 액세스할 수 있습니다. 통합에 대한 자세한 내용은 [AWS 분석 서비스와 Amazon S3 Tables 통합](s3-tables-integrating-aws.md) 섹션을 참조하세요.

이러한 서비스에서 SSE-KMS로 암호화된 테이블에 대한 작업을 수행하려면 사용하는 역할이 암호화 작업에 AWS KMS 키를 사용할 수 있는 권한을 가져야 합니다. 이러한 권한을 통합 중에 생성된 `S3TablesRoleForLakeFormation` 역할 또는 자체 IAM 역할에 적용할 수 있습니다.

다음 인라인 IAM 정책 예제는 계정에서 암호화 작업에 특정 KMS 키를 사용할 수 있는 권한을 `S3TablesRoleForLakeFormation` 서비스 역할에 부여하는 데 사용할 수 있습니다. 이 정책을 사용하려면 *입력 자리 표시자 값*을 실제 값으로 바꿉니다.

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

## IAM 위탁자에게 암호화된 테이블로 직접 작업할 수 있는 권한 부여


서드파티 또는 직접 액세스 방법을 사용하여 암호화된 테이블로 작업하는 경우 사용하는 역할에 KMS 키에 대한 액세스 권한을 부여해야 합니다. 다음 예제에서는 IAM 정책 또는 KMS 키 정책을 통해 액세스 권한을 부여하는 방법을 보여줍니다.

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

이 인라인 정책을 IAM 역할에 연결하여 KMS 키 액세스를 허용합니다. 이 정책을 사용하려면 *입력 자리 표시자 값*을 실제 KMS 키 ARN으로 바꿉니다.

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

****  

```
{
    "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 ]

지정된 AWS KMS 역할이 키를 사용할 수 있도록 이 인라인 정책을 KMS 키에 연결합니다. 이 정책을 사용하려면 *입력 자리 표시자 값*을 실제 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": "*"
}
```

------

## S3 Metadata 서비스 위탁자에게 KMS 키를 사용할 수 있는 권한 부여


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)를 사용한 서버 측 암호화 지정
SSE-KMS 지정

모든 Amazon S3 테이블 버킷에는 기본적으로 암호화가 구성되어 있으며, 테이블 버킷에 생성된 새 테이블은 모두 저장 시 자동으로 암호화됩니다. Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화가 모든 테이블 버킷의 기본 암호화 구성입니다. 다른 암호화 유형을 지정하려는 경우 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통한 서버 측 암호화를 사용할 수 있습니다.

 `CreateTableBucket` 또는 `CreateTable` 요청에서 SSE-KMS 암호화를 지정하거나 `PutTableBucketEncryption` 요청의 테이블 버킷에서 기본 암호화 구성을 설정할 수 있습니다.

**중요**  
SSE-KMS로 암호화된 테이블 및 테이블 버킷에 대한 자동 유지 관리를 허용하려면 maintenance.s3tables.amazonaws.com 서비스 위탁자에게 KMS 키를 사용할 수 있는 권한을 부여해야 합니다. 자세한 내용은 [S3 Tables SSE-KMS 암호화에 대한 권한 요구 사항](s3-tables-kms-permissions.md) 섹션을 참조하세요.

## 테이블 버킷에 대한 암호화 지정


새 테이블 버킷을 생성할 때 SSE-KMS를 기본 암호화 유형으로 지정할 수 있습니다. 관련 예제는 [테이블 버킷 생성](s3-tables-buckets-create.md) 섹션을 참조하세요. 테이블 버킷을 생성한 후 REST API 작업, AWS SDK 및 AWS Command Line Interface(AWS CLI)를 사용하여 SSE-KMS 사용을 기본 암호화 설정으로 지정할 수 있습니다.

**참고**  
 SSE-KMS를 기본 암호화 유형으로 지정하는 경우 암호화에 사용하는 키가 S3 Tables 유지 관리 서비스 위탁자에게 액세스를 허용해야 합니다. 유지 관리 서비스 위탁자에게 액세스 권한이 없는 경우 해당 테이블 버킷에 테이블을 생성할 수 없습니다. 자세한 내용은 [S3 Tables 유지 관리 서비스 위탁자에게 KMS 키 권한 부여](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions) 섹션을 참조하세요.

### AWS CLI 사용


다음 예제 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 암호화를 사용합니다.

## 테이블에 대한 암호화 지정


쿼리 엔진, REST API 작업, AWS SDK 및 AWS Command Line Interface(AWS CLI)를 사용하여 새 테이블을 생성할 때 새 테이블에 SSE-KMS 암호화를 적용할 수 있습니다. 테이블을 생성할 때 지정하는 암호화 설정이 테이블 버킷의 기본 암호화 설정보다 우선합니다.

**참고**  
테이블에 SSE-KMS 암호화를 사용하는 경우 암호화에 사용하는 키가 S3 Tables 유지 관리 서비스 위탁자에게 키에 대한 액세스를 허용해야 합니다. 유지 관리 서비스 위탁자에게 액세스 권한이 없으면 테이블을 생성할 수 없습니다. 자세한 내용은 [S3 Tables 유지 관리 서비스 위탁자에게 KMS 키 권한 부여](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions) 섹션을 참조하세요.

****필요한 권한****

암호화된 테이블을 생성하려면 다음 권한이 필요합니다.
+ `s3tables:CreateTable`
+ `s3tables:PutTableEncryption`

## AWS CLI 사용


다음 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
          }
        ]
      }
    }
  }'
```