이 페이지에서는 PostgreSQL용 AlloyDB의 고객 관리 암호화 키 (CMEK)에 대해 설명합니다.
이 기능을 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud KMS 문서를 참고하세요.
AlloyDB에서 CMEK를 사용하는 방법에 관한 단계별 가이드는 CMEK 사용을 참고하세요.
Google 관리 암호화의 자체 관리형 대안
기본적으로 AlloyDB의 데이터를 포함하여 Google Cloud의 모든 저장 데이터는 Google에서 관리하는 기본 암호화를 사용하여 보호됩니다. Google Cloud는 사용자의 추가 작업 없이 이 기본 암호화를 처리하고 관리합니다.
데이터를 보호하는 키와 관련된 특정 규정 준수 또는 규제 요구사항이 있으면 대신 CMEK를 사용할 수 있습니다. CMEK를 사용하면 Cloud Key Management Service (KMS)에서 제어하고 관리하는 키를 사용하여 AlloyDB 클러스터가 보호됩니다. CMEK 키는 대칭 키 또는 Cloud HSM 키일 수 있습니다.
기능
- 데이터 액세스 제어: 관리자가 AlloyDB에서 저장 데이터 보호를 위해 사용되는 키를 순환하고, 액세스 권한을 관리하고, 사용 중지하거나 삭제할 수 있습니다.
- 감사 기능: 프로젝트에서 Cloud KMS API에 대해 감사 로깅을 사용 설정할 경우 AlloyDB에서 수행되는 것을 포함하여 키에 대한 모든 작업을 Cloud Logging에서 로깅하고 확인할 수 있습니다.
- 성능: CMEK를 사용해도 AlloyDB 성능에는 변화가 없습니다.
가격 책정
AlloyDB는 다른 클러스터와 마찬가지로 CMEK 사용 클러스터에 대한 비용을 청구합니다. AlloyDB 비용은 추가되지 않습니다. 자세한 내용은 PostgreSQL용 AlloyDB 가격을 참고하세요.
AlloyDB에서 키를 사용할 때 키 비용과 암호화 및 복호화 작업에 대한 비용이 Cloud KMS에서 청구됩니다. 자세한 내용은 Cloud Key Management Service 가격 책정을 참고하세요.
CMEK로 보호되는 대상
AlloyDB는 Cloud KMS 키를 사용하여 다음과 같은 방식으로 저장 데이터를 보호합니다.
- 클러스터에서 CMEK를 사용 설정하면 AlloyDB는 키를 사용하여 저장소에 있는 클러스터의 모든 데이터를 암호화합니다.
- 주문형 백업을 만들 때 CMEK 구성을 지정하면 AlloyDB에서 키를 사용하여 백업을 암호화합니다.
- 클러스터의 지속적 또는 자동 백업 구성으로 CMEK를 사용 설정하면 AlloyDB에서 키를 사용하여 진행 중인 백업을 암호화합니다.
Google-owned and Google-managed encryption keys 또는 CMEK를 사용하든 AlloyDB에는 세 가지 암호화 레이어가 있습니다.
AlloyDB는 저장용으로 미사용 데이터를 청크로 분할하고 각 청크를 개별 암호화 키로 암호화합니다. 청크의 데이터를 암호화하는 데 사용하는 키를 데이터 암호화 키(DEK)라고 합니다.
Google에는 많은 양의 키가 사용되고 짧은 지연 시간과 고가용성이 요구되기 때문에 AlloyDB는 각 DEK를 암호화 대상 데이터 근처에 저장합니다.
AlloyDB는 클러스터에 있는 키 암호화 키 (KEK)로 각 DEK를 암호화합니다.
마지막으로 AlloyDB는 클러스터의 Cloud Key Management Service 기반 암호화 키( Google-owned and Google-managed encryption key또는 CMEK 키)로 KEK를 암호화합니다.
또한 클러스터 보호에 사용되는 키 버전도 확인할 수 있습니다.
CMEK 사용 설정
AlloyDB 클러스터에서 CMEK를 사용하도록 허용하려면 클러스터 생성 시 Cloud KMS 키를 지정해야 합니다.
사용자가 AlloyDB 서비스 에이전트에 Cloud KMS CryptoKey 암호화/복호화(roles/cloudkms.cryptoKeyEncrypterDecrypter
) 역할을 부여한 후 AlloyDB가 사용자 대신 키에 액세스할 수 있습니다.
자세한 내용은 CMEK 사용을 참고하세요.
키 관리
모든 키 관리 작업에 Cloud KMS를 사용합니다. AlloyDB는 Cloud KMS에서 전파될 때까지 어떤 키 변경사항도 감지하거나 대응할 수 없습니다. 키 사용 중지 또는 삭제와 같은 일부 작업은 전파되는 데 최대 3시간까지 걸릴 수 있고, 권한 변경사항은 일반적으로 훨씬 더 빠르게 전파됩니다.
클러스터가 생성된 후 AlloyDB는 키가 계속 유효한지 확인하기 위해 약 5분 간격으로 Cloud KMS를 호출합니다.
AlloyDB에서 Cloud KMS 키가 사용 중지되었거나 삭제된 것으로 감지되면 클러스터의 데이터에 액세스할 수 없게 만드는 작업이 즉시 시작됩니다. AlloyDB의 Cloud KMS 호출로 이전에 사용 중지된 키가 다시 사용 설정된 것으로 확인되면 액세스가 자동으로 복원됩니다.
외부 키 사용 및 관리
Cloud KMS에 있는 키를 사용하는 대신 지원되는 외부 키 관리 파트너에 있는 키를 사용할 수 있습니다. 이렇게 하려면 Cloud 외부 키 관리자 (Cloud EKM)를 사용하여 Google Cloud외부에 있는 키에 대한 포인터인 외부 키를 만들고 관리합니다. 자세한 내용은 Cloud 외부 키 관리자를 참고하세요.
Cloud EKM으로 외부 키를 만든 후 클러스터를 만들 때 해당 키의 ID를 제공하여 새 AlloyDB 클러스터에 적용할 수 있습니다. 이 절차는 새 클러스터에 Cloud KMS 키를 적용하는 것과 동일합니다.
키 액세스 근거를 Cloud EKM의 일부로 사용할 수 있습니다. 키 액세스 근거를 사용하면 각 Cloud EKM 요청의 이유를 볼 수 있습니다. 또한 제공된 근거에 따라 요청을 자동으로 승인하거나 거부할 수 있습니다. 자세한 내용은 개요를 참고하세요.
Google은 외부 키 관리 파트너 시스템에서 키의 가용성을 제어할 수 없습니다.
키 사용 불가
AlloyDB 클러스터를 암호화하는 데 사용되는 Cloud KMS 키를 사용 중지하면 해당 클러스터에 속한 AlloyDB 인스턴스에 30분 이내에 다운타임이 발생합니다. 키를 다시 사용 설정하면 인스턴스가 다시 표시됩니다.
드문 경우지만 Cloud KMS를 사용할 수 없는 기간 중에는 AlloyDB가 Cloud KMS에서 키 상태를 검색하지 못할 수 있습니다. 이 시나리오에서 AlloyDB는 일시적인 서비스 중단이 워크로드에 미치는 영향을 최소화하기 위해 최대 30분 동안 최선의 방식으로 전체 클러스터 작업을 계속 지원합니다.
30분 후에도 AlloyDB가 Cloud KMS에 연결할 수 없으면 AlloyDB는 보호 조치로 클러스터를 오프라인으로 전환하기 시작합니다. AlloyDB 클러스터의 데이터는 클러스터를 Cloud KMS에 다시 연결할 수 있고 Cloud KMS에서 키가 활성 상태라고 응답할 때까지 액세스할 수 없는 상태로 유지됩니다.
백업 및 복원
또한 AlloyDB는 CMEK 또는 기본 Google 관리 암호화로 백업을 보호합니다. 백업에 CMEK가 사용 설정된 경우 백업을 만들 때 KMS 키의 기본 버전을 사용하여 암호화됩니다. 백업을 만든 후에는 KMS 키가 순환되어도 해당 키 및 키 버전을 수정할 수 없습니다. 자세한 내용은 클러스터 백업을 참고하세요.
백업에서 클러스터를 복원하면 복원된 클러스터는 기본적으로 Google 관리 암호화를 사용하지만 대신 사용할 CMEK 키를 지정할 수 있습니다. CMEK 사용 백업을 복원하려면 백업 암호화에 사용된 키 및 키 버전을 모두 사용할 수 있어야 합니다.
로깅
프로젝트에서 Cloud KMS API에 대해 감사 로깅을 사용 설정한 경우 Cloud Logging에서 사용자 대신 AlloyDB가 Cloud KMS에 전송하는 요청을 감사할 수 있습니다. 이러한 Cloud KMS 로그 항목은 Cloud Logging에서 확인할 수 있습니다. 자세한 내용은 Cloud KMS 키의 감사 로그 보기를 참고하세요.