테이블과 테이블 버킷에서 SSE-KMS 사용 강제 및 범위 지정
테이블과 테이블 버킷에서 SSE-KMS 사용 강제 및 범위 지정
S3 Tables의 리소스 기반 정책, KMS 키 정책, IAM 아이덴티티 기반 정책(또는 이들의 조합)을 사용해 S3 테이블과 테이블 버킷에서 SSE-KMS 사용을 강제하는 방법을 설명해요.
출처: Enforcing and scoping SSE-KMS use for tables and table buckets
본문
S3 Tables 리소스 기반 정책, KMS 키 정책, IAM 아이덴티티 기반 정책, 또는 이들의 조합을 사용해 S3 테이블과 테이블 버킷에서 SSE-KMS 사용을 강제할 수 있어요. 테이블의 아이덴티티·리소스 정책에 대한 자세한 내용은 Access management for S3 Tables을, 키 정책 작성 방법은 AWS Key Management Service Developer Guide의 Key policies를 참고해 주세요. 다음 예시는 정책으로 SSE-KMS를 강제하는 방법을 보여줘요.
예시: 테이블 버킷 정책으로 SSE-KMS 강제하기
이것은 사용자가 특정 AWS KMS 키로 테이블을 암호화하지 않으면 특정 테이블 버킷에 테이블을 만들 수 없도록 막는 테이블 버킷 정책 예시예요. 이 정책을 사용하려면 사용자 입력 플레이스홀더를 여러분의 정보로 바꿔 넣으세요.
{
"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 강제하기
이 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 키 정책으로 키 사용 범위 제한하기
이 KMS 키 정책 예시는 특정 사용자만 특정 테이블 버킷에서 암호화 작업에 키를 사용할 수 있게 해요. 이런 유형의 정책은 교차 계정 시나리오에서 키에 대한 접근을 제한하는 데 유용해요. 이 정책을 사용하려면 사용자 입력 플레이스홀더를 여러분의 정보로 바꿔 넣으세요.
{
"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>/*"
}
}
}
]
}