Cloud KMS 키 회전 주기 점검

조직의 기준에 맞춰 키 버전을 정기적으로 교체하고 기존 데이터의 복호화에 필요한 키를 보존하세요.

설명

암호화 키를 오랫동안 같은 버전으로 사용하면 해당 버전에 의존하는 데이터가 늘어날 수 있습니다. Cloud KMS의 키 회전 주기는 데이터 민감도와 조직의 정책에 맞게 정해야 하며, 90일이 모든 용도에 적용되는 서비스의 의무 상한은 아닙니다.

자동 회전은 대칭 ENCRYPT_DECRYPT 키의 새 기본 버전을 만듭니다. 기존 데이터를 자동으로 다시 암호화하거나 이전 키 버전을 비활성화·삭제하지 않으며, 비대칭 키는 별도 교체 계획이 필요합니다.

잠재적 영향

  • 정책보다 긴 사용 기간은 키 관리·감사 요구사항을 충족하지 못할 수 있습니다.
  • 필요한 이전 버전을 너무 일찍 삭제하면 기존 데이터를 복호화할 수 없게 될 수 있습니다.

해결 방법

조직이 정한 주기에 맞게 rotation_period를 설정하고 실제 회전 일정을 확인하세요. 새 버전을 사용하는 애플리케이션 동작을 시험하고 기존 데이터가 의존하는 버전은 필요한 동안 보존하세요. 키 접근 권한과 재암호화·폐기 절차는 별도로 관리하세요.

예시

대칭 암호화 키의 구성 예시입니다. 프로젝트, 키 링과 인증 파일 경로를 실제 값으로 맞추세요. 변경 전의 두 작업은 대안이며 같은 키에 연속 실행할 절차가 아닙니다.

변경 전

yaml
- name: create a crypto key
  google.cloud.gcp_kms_crypto_key:
    name: test_object
    key_ring: projects/{{ gcp_project }}/locations/us-central1/keyRings/key-key-ring
    project: test_project
    auth_kind: serviceaccount
    rotation_period: "315356000s"
    service_account_file: "/tmp/auth.pem"
    state: present

- name: create a crypto key2
  google.cloud.gcp_kms_crypto_key:
    name: test_object
    key_ring: projects/{{ gcp_project }}/locations/us-central1/keyRings/key-key-ring
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

첫 작업은 약 10년의 주기를 설정하고, 두 번째 작업은 회전 주기를 명시하지 않습니다. 생략만으로 기존 키의 회전 일정이 제거되지는 않습니다.

변경 후

yaml
- name: create a crypto key
  google.cloud.gcp_kms_crypto_key:
    name: test_object
    key_ring: projects/{{ gcp_project }}/locations/us-central1/keyRings/key-key-ring
    project: test_project
    auth_kind: serviceaccount
    rotation_period: 7776000s
    service_account_file: /tmp/auth.pem
    state: present

7776000s는 90일입니다. 이 예시 주기가 조직의 기준에 적합한지 확인하고, 기존 데이터의 재암호화 여부는 별도로 결정하세요.

참조