본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] KMS Key 정책

728x90
반응형

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 키 정책 종류

  1. AWS 관리 키(AWS Managed Keys)
    • AWS 관리 키는 AWS에서 관리하는 키로, 정책을 변경할 수 없습니다. 예를 들어, aws/ebs와 같은 AWS 서비스에서 사용하는 키는 볼 수는 있지만 수정할 수는 없습니다. 이를 통해 AWS가 자동으로 관리하는 키의 무결성을 보호할 수 있습니다.
  2. 고객 관리형 KMS 키(AWS Customer Managed Keys)
    • 고객 관리형 KMS 키는 사용자가 KMS 키 정책을 수정하고 관리할 수 있습니다. 이를 통해 어떤 사용자어떤 역할이 키를 사용할 수 있는지 세밀하게 정의할 수 있습니다.

사용자 정의 KMS 키 정책(Custom Key Policy)

사용자 정의 KMS 키 정책을 사용하면 **키 관리자(Key Administrator)**와 **키 사용자(Key User)**의 권한을 구분할 수 있습니다.

  1. 키 관리자(Key Administrator):
    키 관리자는 KMS 키의 관리를 할 수 있는 권한을 가집니다. 예를 들어, KMSAdminUser와 KMSAdminRole은 키 관리 권한을 부여받을 수 있지만 암호화복호화 작업은 수행할 수 없습니다.
  2. 키 사용자(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 키 정책 설정 방법

  1. 키 관리자 권한:
    KMS 키 정책에서 키 관리자에게는 관리 권한만 부여하고, 키 사용자는 별도로 정의합니다.
  2. IAM 정책과 결합:
    KMS 키 정책과 함께 IAM 정책을 사용하여 세부적인 권한을 추가할 수 있습니다. IAM 정책은 사용자역할에 대한 세부 권한을 설정하는 데 유용합니다.

결론

KMS 키 정책은 키에 대한 접근 제어관리 권한을 정의하는 핵심 요소입니다. 기본 제공되는 정책을 사용하거나 사용자 정의 키 정책을 통해 더 세밀한 권한 관리가 가능하며, 이를 통해 클라우드 보안을 강화할 수 있습니다. KMS 키 정책을 잘 설정하는 것은 AWS 클라우드 환경에서 안전하게 데이터를 관리하는 데 매우 중요합니다.

728x90
반응형

'자격증 > 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