암호화 키로 데이터 보호

이 페이지에서는 PostgreSQL용 AlloyDB에 사용할 고객 관리 암호화 키(CMEK)를 생성, 구성, 적용하는 방법을 설명합니다.

CMEK에 대한 자세한 내용은 CMEK 정보를 참조하세요.

AlloyDB용 CMEK 키 만들기 및 승인

  1. Cloud Key Management Service(Cloud KMS)에서 키를 만듭니다. AlloyDB는 다음과 같은 종류의 키를 지원합니다.

    키는 AlloyDB 클러스터와 동일한 위치에 있어야 합니다. 예를 들어 us-west1에 있는 AlloyDB 클러스터는 us-west1의 키만 사용할 수 있습니다.

    이미 올바른 위치에 Cloud KMS 키가 있으면 이 단계를 건너뛰어도 됩니다.

  2. 키에 대한 액세스 권한을 AlloyDB에 부여합니다.

    1. Google Cloud CLI를 사용하여 서비스 에이전트를 만들어 표시하거나 계정이 이미 있으면 서비스 에이전트를 표시합니다.
        gcloud beta services identity create --service=alloydb.googleapis.com \
            --project=PROJECT

    gcloud services identity 명령어는 AlloyDB에서 대신 Cloud KMS 키에 액세스하는 데 사용할 수 있는 서비스 에이전트를 만들거나 가져옵니다.

    서비스 계정 ID는 이메일 주소와 비슷합니다.

        Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
    
    1. 서비스 계정에 cloudkms.cryptoKeyEncrypterDecrypter 역할을 부여합니다.
        gcloud kms keys add-iam-policy-binding KEY \
            --location REGION \
            --keyring KEYRING \
            --project=PROJECT \
            --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \
            --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    다음을 바꿉니다.

    • KEY: 키의 Cloud KMS ID
    • REGION: 키 리전(예: us-central1)
    • PROJECT: 키 프로젝트의 ID
    • KEYRING: 키의 Cloud KMS 키링 ID

    이 역할은 Cloud KMS 키를 사용하여 암호화하고 복호화할 수 있는 권한을 서비스 계정에 부여합니다. 자세한 내용은 Cloud KMS 권한 및 역할을 참조하세요.

CMEK 암호화 클러스터 만들기

새 클러스터를 만들 때 기본 Google 관리 암호화로 클러스터를 암호화할지 또는 CMEK 키를 대신 사용할지 여부를 선택할 수 있습니다. 자세한 내용은 클러스터 및 클러스터의 기본 인스턴스 만들기를 참조하세요.

클러스터 암호화 방법 및 CMEK 키 보기

콘솔

클러스터 페이지의 암호화 열에는 프로젝트의 각 클러스터에서 Google 관리 암호화 또는 CMEK를 사용하는지 여부가 표시됩니다.

클러스터 페이지로 이동

CMEK를 사용하는 클러스터의 주요 세부정보를 보려면 리소스 이름 열에서 클러스터 이름을 클릭합니다. 결과 세부정보 페이지의 암호화 키 필드에는 자체 Cloud KMS 세부정보 페이지 링크를 포함한 키 설명이 포함됩니다.

gcloud

gcloud alloydb clusters describe 명령어를 호출합니다.

gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION

다음을 바꿉니다.

  • CLUSTER: 설명할 클러스터의 ID
  • PROJECT: 클러스터 프로젝트 ID
  • REGION: 클러스터 리전(예: us-central1)

출력에는 클러스터 암호화 요약이 포함된 encryptionInfo 필드가 포함됩니다.

백업에 CMEK 적용

새 백업을 만들 때 기본 Google 관리 암호화 또는 CMEK 키를 사용하여 암호화할지 여부를 선택할 수 있습니다. 자세한 내용은 주문형 백업 만들기 또는 자동 백업 예약을 참조하세요.

백업 암호화 방법과 관계없이 백업에서 복원할 때 생성된 클러스터에 CMEK 키를 적용할 수도 있습니다. 자세한 내용은 클러스터 복원을 참조하세요.

CMEK 암호화를 사용하여 키 순환

AlloyDB 클러스터를 사용할 때 Cloud Key Management Service(Cloud KMS)에서 고객 관리 암호화 키(CMEK)를 순환할 때의 영향을 이해하고 있어야 합니다.

CMEK 키를 순환하면 기존 AlloyDB 데이터에 다음과 같은 결과가 발생합니다.

  • 즉시 액세스 계속: 이전 버전의 키가 KMS에서 계속 사용 가능하고 사용 중지되거나 삭제되지 않는 한 데이터는 원래 데이터 암호화 키(DEK) 버전으로 암호화되어 유지됩니다.

  • 수동으로 전체 데이터 다시 암호화: 모든 AlloyDB 데이터를 최신 기본 키 버전으로 가져오려면 다시 암호화해야 합니다.

새 CMEK 키 버전으로 기존 클러스터를 다시 암호화하려면 백업 및 복원 작업을 수행해야 합니다.

  1. 기존 클러스터 백업을 만듭니다.

  2. 복원 프로세스 중에 새 CMEK 기본 키 버전을 지정하여 백업을 새 클러스터로 복원합니다.

자세한 내용은 클러스터 복원을 참조하세요.

AlloyDB에서 CMEK 키를 자주 순환하려면 상당한 운영 오버헤드가 필요합니다. 기존 데이터는 자동으로 다시 암호화되지 않고 수동으로 다시 암호화하려면 전체 백업하고 새 클러스터로 복원해야 하므로 자주 순환하면 번거로울 수 있으며 가용성이나 관리 복잡성이 영향을 받을 수 있습니다.

관련된 모든 AlloyDB 데이터가 수동으로 다시 암호화되고 데이터에서 최신 키 버전을 사용하는지 확인한 후에만 Cloud KMS에서 이전 CMEK 키 버전을 안전하게 삭제할 수 있습니다.

백업 암호화 방법 및 CMEK 키 보기

콘솔

백업 페이지의 암호화 열에는 프로젝트의 각 클러스터에서 Google 관리 암호화 또는 CMEK를 사용하는지 여부가 표시됩니다.

백업 페이지로 이동

CMEK를 사용하는 백업의 주요 세부정보를 확인하려면 복원을 클릭합니다. 후속 세부정보 패널의 암호화 키 필드에는 자체 Cloud KMS 세부정보 페이지 링크를 포함한 키 설명이 포함됩니다.

gcloud

gcloud alloydb backups describe 명령어를 호출합니다.

gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION

다음을 바꿉니다.

  • CLUSTER: 설명할 백업의 ID
  • PROJECT: 백업 프로젝트 ID
  • REGION: 백업 리전(예: us-central1)

출력에는 백업 암호화 요약이 포함된 encryptionInfo 필드가 포함됩니다.

키 중지

클러스터의 CMEK 키를 사용 중지하면 키를 다시 사용 설정할 때까지 해당 클러스터의 데이터에 액세스할 수 없습니다.

하지만 키를 사용 중지하면 AlloyDB 클러스터에 전파되는 데 최대 3시간이 걸릴 수 있습니다. 데이터에 대한 액세스를 즉시 차단하면서 키를 사용 중지하려면 다음 단계를 수행합니다.

  1. 클러스터의 기본 인스턴스를 삭제합니다. 클러스터의 데이터는 영향을 받지 않습니다. 다음 섹션의 설명대로 키를 다시 사용 설정한 후 새 기본 인스턴스를 만들 수 있습니다.

  2. Cloud KMS를 사용하여 키를 사용 중지합니다.

키 사용 설정

키를 사용 설정하려면 다음 단계를 수행합니다.

  1. Cloud KMS를 사용하여 키를 사용 설정합니다.

  2. 키를 사용 중지하기 전에 클러스터의 기본 인스턴스를 삭제한 경우 새 기본 인스턴스를 만듭니다.

키를 사용 설정하면 클러스터에 전파되는 데 최대 3시간이 걸릴 수 있습니다. 전파되면 클러스터의 데이터에 액세스할 수 있게 됩니다.

Cloud KMS 키의 감사 로그 보기

특정 CMEK 키와 연결된 감사 로그를 보려면 다음 단계를 수행합니다.

  1. 프로젝트에서 Cloud KMS API에 로깅이 사용 설정되었는지 확인합니다.

  2. Google Cloud 콘솔에서 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  3. 쿼리 빌더에 다음 줄을 추가하여 로그 항목을 Cloud KMS 키로 제한합니다.

    resource.type="cloudkms_cryptokey"
    resource.labels.location="REGION"
    resource.labels.key_ring_id="KEYRING"
    resource.labels.crypto_key_id="KEY"
    

    다음을 바꿉니다.

    • REGION: 키 리전(예: us-central1)
    • KEYRING: 키의 Cloud KMS 키링 ID
    • KEY: 키의 Cloud KMS ID
  4. 일반 작업에서 암호화 및 복호화 작업이 INFO 심각도로 로깅됩니다. 이러한 항목은 AlloyDB 클러스터의 인스턴스가 Cloud KMS 키를 검증할 때 로깅되며 약 5분 간격으로 로깅됩니다.

  5. AlloyDB가 키에 액세스하지 못하면 작업이 ERROR로 로깅됩니다.

Cloud EKM 키의 액세스 근거 보기

Cloud EKM 키를 사용하는 경우 키 액세스 근거를 사용하여 각 Cloud EKM 요청 사유를 볼 수 있습니다. 또한 제공된 근거에 따라 요청을 자동으로 승인하거나 거부할 수 있습니다. 자세한 내용은 근거 확인 및 조치를 참조하세요.