AWS KMS 키 정책(KMS Key Policies) 완벽 가이드
AWS KMS(Key Management Service)는 클라우드에서 데이터 암호화 키를 안전하게 관리할 수 있는 서비스입니다. KMS 키 정책은 이 키에 대한 접근 제어와 관리 권한을 정의하는 중요한 역할을 합니다. AWS에서 KMS 키를 사용할 때 반드시 설정해야 하는 KMS 키 정책에 대해 자세히 알아보겠습니다.
KMS 키 정책의 중요성
KMS 키 정책은 S3 버킷 정책과 비슷한 역할을 하지만 중요한 차이점이 있습니다. S3 버킷 정책을 설정하지 않아도 S3 버킷에 접근할 수 있지만, KMS 키 정책을 설정하지 않으면 KMS 키에 접근할 수 없습니다. 따라서 KMS 키를 생성한 후에는 반드시 키 정책을 설정해야 합니다.
기본 KMS 키 정책(Default KMS Key Policy)
AWS에서 KMS 키를 생성하면 기본적으로 **"Default KMS Key Policy"**가 생성됩니다. 이 기본 정책은 **계정의 루트 사용자(root user)**에게만 키에 대한 전체 접근 권한을 부여합니다. 하지만 이를 통해 단순히 IAM 정책을 통해 접근 권한을 추가로 설정해야 합니다. 기본 정책만으로는 키를 사용할 수 없습니다.
기본 키 정책 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:*",
"Resource": "*",
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
}
]
}
이 정책은 루트 사용자에게 키에 대한 전체 권한을 부여하지만, 실제 사용자는 IAM 정책을 통해 접근 권한을 설정해야 합니다.
KMS 키 정책 종류
- AWS 관리 키(AWS Managed Keys)
- AWS 관리 키는 AWS에서 관리하는 키로, 정책을 변경할 수 없습니다. 예를 들어, aws/ebs와 같은 AWS 서비스에서 사용하는 키는 볼 수는 있지만 수정할 수는 없습니다. 이를 통해 AWS가 자동으로 관리하는 키의 무결성을 보호할 수 있습니다.
- 고객 관리형 KMS 키(AWS Customer Managed Keys)
- 고객 관리형 KMS 키는 사용자가 KMS 키 정책을 수정하고 관리할 수 있습니다. 이를 통해 어떤 사용자와 어떤 역할이 키를 사용할 수 있는지 세밀하게 정의할 수 있습니다.
사용자 정의 KMS 키 정책(Custom Key Policy)
사용자 정의 KMS 키 정책을 사용하면 **키 관리자(Key Administrator)**와 **키 사용자(Key User)**의 권한을 구분할 수 있습니다.
- 키 관리자(Key Administrator):
키 관리자는 KMS 키의 관리를 할 수 있는 권한을 가집니다. 예를 들어, KMSAdminUser와 KMSAdminRole은 키 관리 권한을 부여받을 수 있지만 암호화와 복호화 작업은 수행할 수 없습니다. - 키 사용자(Key User):
키 사용자는 KMS 키를 사용할 수 있는 권한을 가지며, 암호화(encrypt), 복호화(decrypt), 데이터 키 생성(generate data key)와 같은 작업을 수행할 수 있습니다.
예시: 사용자 정의 KMS 키 정책
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "*",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/ExampleUser"
}
},
{
"Effect": "Allow",
"Action": "kms:DescribeKey",
"Resource": "*",
"Principal": {
"AWS": "arn:aws:iam::123456789012:role/ExampleRole"
}
}
]
}
위 예시는 ExampleUser와 ExampleRole에게 암호화, 복호화, 데이터 키 생성 권한을 부여하는 키 정책을 보여줍니다.
KMS 키 정책 설정 방법
- 키 관리자 권한:
KMS 키 정책에서 키 관리자에게는 관리 권한만 부여하고, 키 사용자는 별도로 정의합니다. - IAM 정책과 결합:
KMS 키 정책과 함께 IAM 정책을 사용하여 세부적인 권한을 추가할 수 있습니다. IAM 정책은 사용자와 역할에 대한 세부 권한을 설정하는 데 유용합니다.
결론
KMS 키 정책은 키에 대한 접근 제어와 관리 권한을 정의하는 핵심 요소입니다. 기본 제공되는 정책을 사용하거나 사용자 정의 키 정책을 통해 더 세밀한 권한 관리가 가능하며, 이를 통해 클라우드 보안을 강화할 수 있습니다. KMS 키 정책을 잘 설정하는 것은 AWS 클라우드 환경에서 안전하게 데이터를 관리하는 데 매우 중요합니다.
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] KMS 조건 키 (1) | 2024.12.22 |
---|---|
[AWS SCS] KMS 권한 (0) | 2024.12.22 |
[AWS SCS] KMS Key 삭제 (1) | 2024.12.22 |
[AWS SCS] KMS Key Rotation (0) | 2024.12.22 |
[AWS SCS] KMS Envelope Encryption (0) | 2024.12.22 |