고객 관리 암호화 키(CMEK)

기본적으로 Google Cloud 는 Google에서 관리하는 암호화 키를 사용하여 데이터를 저장할 때 자동으로 암호화합니다. 데이터를 보호하는 키와 관련된 특정 규정 준수 또는 규제 요구사항이 있으면 고객 관리 암호화 키 (CMEK)를 사용할 수 있습니다.

CMEK를 사용하면 Cloud Key Management Service (Cloud KMS)를 통해 제어하는 암호화 키를 사용하여 백업 및 DR 데이터를 보호할 수 있습니다. CMEK를 사용하면 Cloud Key Management Service에서 키를 관리하고 키에 대한 Identity and Access Management 권한을 관리하여 키에 액세스할 수 있는 사용자를 제어할 수 있습니다. CMEK 키를 일시적으로 중지하거나 영구 삭제하면 이 키로 보호되는 데이터에 액세스할 수 없게 됩니다. 일반적인 CMEK에 대한 자세한 내용은 고객 관리 암호화 키 (CMEK)를 참고하세요.

백업 및 DR에서 CMEK를 사용하는 방법

백업 및 DR은 리소스 유형에 따라 Backup Vault에 구성된 CMEK 키를 사용하거나 소스 리소스의 CMEK 키를 사용하여 두 가지 방법으로 CMEK를 사용하여 백업을 보호할 수 있습니다.

Backup Vault 컨테이너

Backup Vault는 변경할 수 없는 백업을 위한 안전하고 격리된 스토리지를 제공하며 보관 기간이 적용된 백업용 컨테이너입니다. 백업 및 DR은 Backup Vault에 구성된 CMEK 키를 사용하여 CMEK를 통해 백업을 보호할 수 있습니다.

Backup Vault CMEK 키를 사용한 암호화

일부 리소스 유형의 경우 CMEK 지원 Backup Vault는 보관소의 Cloud Key Management Service 키를 사용하여 백업 데이터를 암호화합니다.

예를 들어 Compute Engine 인스턴스 백업에 적용됩니다. Compute Engine 인스턴스에 연결된 디스크가 하나 이상 CMEK를 사용하는 경우 백업 및 DR은 인스턴스가 CMEK로 보호된다고 간주합니다. 이러한 인스턴스를 CMEK 지원 Backup Vault에 백업해야 합니다. 인스턴스에 연결된 모든 디스크가 Google 관리 암호화를 사용하는 경우 Google Cloud 콘솔에서 CMEK가 아닌 Backup Vault에 백업을 저장해야 합니다. 하지만 Google Cloud CLI, API 또는 Terraform을 사용하는 경우 Google 관리 암호화가 적용된 인스턴스의 백업이 CMEK 지원 Backup Vault를 사용하도록 구성할 수 있습니다. CMEK 지원 백업 볼트에 백업을 저장하면 인스턴스의 디스크 암호화 상태와 관계없이 볼트의 Cloud Key Management Service 키가 백업 데이터를 암호화합니다.

안정 상태의 백업

백업은 보호된 리소스의 특정 시점 데이터 사본으로, Backup Vault 내에 저장됩니다. 리소스 유형에 따라 백업은 소스 워크로드의 키를 상속하거나 백업 보관소의 CMEK 키를 사용하여 CMEK를 통해 백업을 보호합니다.

소스 리소스 CMEK 키를 사용한 암호화

백업이 소스 워크로드와 다른 키를 사용하는 것을 허용하지 않는 워크로드 유형의 경우 백업 및 DR은 소스 워크로드의 암호화 키를 사용하여 백업을 보호하므로 소스 리소스의 암호화가 유지됩니다.

예를 들어 영구 디스크 백업에 적용됩니다. 소스 영구 디스크가 CMEK를 사용하는 경우 백업도 동일한 CMEK 키를 사용합니다. 소스 영구 디스크가 Google 관리 암호화를 사용하는 경우 백업도 Google 관리 암호화를 사용합니다. 이러한 백업은 CMEK로 구성되지 않은 Backup Vault에 저장해야 합니다.

다음 표에는 다양한 워크로드 유형의 백업에 사용되는 암호화 키가 요약되어 있습니다.

워크로드 백업에 사용된 암호화 키 CMEK 지원 상태
Compute Engine 인스턴스 Backup Vault CMEK 키 지원됨
Compute Engine 디스크 소스 디스크의 암호화 키 지원됨
Cloud SQL - 지원되지 않음
AlloyDB 클러스터 - 지원되지 않음
Filestore 인스턴스 - 지원되지 않음
Google Cloud VMware Engine, Oracle 데이터베이스, SQL Server 데이터베이스 - 지원되지 않음

제한사항

CMEK에 대한 백업 및 DR 지원에는 다음과 같은 제한사항이 있습니다.

  • CMEK 보호는 Backup Vault에 저장된 Compute Engine 인스턴스 및 영구 디스크 백업에만 지원됩니다.
  • Backup Vault의 CMEK는 생성 시에만 구성할 수 있습니다. 기존 Backup Vault에서는 CMEK를 사용 설정하거나 사용 중지하거나 변경할 수 없습니다.
  • Cloud Key Management Service 키는 백업 보관소와 동일한 위치에 있어야 합니다. 리전의 Backup Vault는 동일한 리전의 키를 사용해야 합니다. 멀티 리전 Backup Vault는 동일한 멀티 리전의 키를 사용해야 합니다.
  • 리전 간 백업은 Backup Vault와 동일한 리전의 키를 사용해야 합니다.

  • 백업 및 DR은 고객 제공 암호화 키(CSEK)를 지원하지 않습니다.

  • 기본 Backup Vault와 기본 백업 계획은 Google 관리 암호화를 사용합니다. CMEK를 사용하려면 새 Backup Vault를 만들고 CMEK를 명시적으로 사용 설정해야 합니다.

시작하기 전에

CMEK를 사용하기 전에 다음 단계를 완료하세요.

  1. CMEK 키를 저장할 프로젝트에서 Cloud Key Management Service API를 사용 설정합니다.

    API 사용 설정하기

  2. Cloud Key Management Service 키링 및 키를 만듭니다. 키를 만들 때 Backup Vault의 위치와 일치하는 위치를 선택해야 합니다. 리전의 Backup Vault는 동일한 리전의 키를 사용해야 합니다. 멀티 리전 Backup Vault는 동일한 멀티 리전의 키를 사용해야 합니다.

  3. 아직 만들지 않은 경우 백업 및 DR 서비스 에이전트를 만듭니다. 서비스 에이전트는 프로젝트에서 첫 번째 백업 및 DR 리소스 (Backup Vault, Google Cloud 콘솔 등)가 생성된 후 자동으로 생성됩니다. 백업 볼트를 만들기 전에 서비스 에이전트에 권한을 부여해야 하는 경우 다음 명령어로 백업 볼트 생성을 트리거할 수 있습니다.

    gcloud beta services identity create --service=backupdr.googleapis.com --project=PROJECT_ID
    
    PROJECT_ID를 프로젝트 ID로 바꿉니다.

CMEK 권한 부여

Backup and DR이 CMEK를 사용하여 백업을 보호하거나 CMEK로 보호된 리소스를 백업하려면 특정 서비스 에이전트에 IAM 역할을 부여해야 합니다.

보관소 CMEK 키 사용 권한 부여

백업 볼트에 CMEK를 구성하면 백업 및 DR에서 CMEK 키를 사용하여 데이터를 암호화하고 복호화할 수 있는 권한이 필요합니다. 이 권한은 백업 및 DR 서비스 에이전트에 부여해야 합니다.

백업 및 DR에서 사용하는 두 가지 서비스 계정을 구분하는 것이 중요합니다.

  • 백업 및 DR 서비스 에이전트: 백업 및 DR 리소스를 관리하고 백업 볼트가 CMEK로 구성된 경우 Cloud Key Management Service 키에 액세스하는 데 사용되는 프로젝트 수준 서비스 계정입니다. CMEK 키에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter 역할이 필요한 서비스 에이전트입니다.
  • Backup Vault 서비스 계정: 소스 워크로드(예: Compute Engine 인스턴스)에 액세스하고 이를 백업할 권한을 부여하는 보관함별 고유 서비스 계정입니다. 이 서비스 계정은 Backup Vault 내 데이터의 CMEK 암호화에 사용되지 않습니다.

Backup and DR에서 CMEK를 사용하려면 Backup and DR 서비스 에이전트에 Cloud KMS CryptoKey 암호화/복호화 역할(roles/cloudkms.cryptoKeyEncrypterDecrypter)을 부여해야 합니다. 이 서비스 에이전트는 암호화 및 복호화 작업 중에 Cloud Key Management Service 키에 액세스하는 등 백업 및 DR이 사용자를 대신하여 리소스에 액세스하는 데 사용하는 서비스 계정입니다.

백업 및 DR 서비스 에이전트의 이름은 다음 형식으로 지정됩니다.

service-VAULT_PROJECT_NUMBER@gcp-sa-backupdr.iam.gserviceaccount.com

VAULT_PROJECT_NUMBER를 Backup Vault를 포함하는 프로젝트의 프로젝트 번호로 바꿉니다.

IAM 역할을 부여할 권한이 있는 경우 Google Cloud 콘솔을 사용하여 Backup Vault 생성 시 이 역할을 부여하거나 gcloud kms keys add-iam-policy-binding 명령어를 사용하여 미리 부여할 수 있습니다.

gcloud kms keys add-iam-policy-binding KEY_NAME \
    --location=KMS_LOCATION \
    --keyring=KEY_RING \
    --member=serviceAccount:service-VAULT_PROJECT_NUMBER@gcp-sa-backupdr.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

예와 같이 특정 키에 이 역할을 부여하거나 키링 또는 프로젝트 수준에서 부여할 수 있습니다. 키 수준에서 권한을 부여하면 가장 세분화된 제어가 가능하며 최소 권한의 원칙에 따라 권장됩니다. 프로젝트 또는 키링 수준에서 권한을 부여하면 백업 및 DR에서 해당 범위 내의 여러 키를 사용하려는 경우 더 편리하지만 더 광범위한 권한이 부여됩니다.

CMEK 보호 리소스 백업 권한 부여

다른 CMEK 키로 암호화된 리소스(예: CMEK로 암호화된 디스크가 있는 Compute Engine 인스턴스)를 백업하는 경우 추가 권한이 필요합니다. 소스 리소스 서비스의 서비스 에이전트에는 소스 리소스를 보호하는 키를 사용할 권한이 필요합니다. 예를 들어 CMEK로 암호화된 Compute Engine 인스턴스를 백업하려면 소스 인스턴스 프로젝트의 Compute Engine 서비스 에이전트에 인스턴스의 디스크를 암호화하는 데 사용되는 Cloud Key Management Service 키에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter 역할이 있어야 합니다. 대부분의 경우 소스 워크로드가 작동하려면 이 권한이 이미 있어야 합니다.

백업 및 DR에 CMEK 사용

이 섹션에서는 CMEK를 사용하여 백업을 보호하는 워크플로를 설명합니다.

1. CMEK 지원 Backup Vault 만들기

백업 보관함을 만들 때 암호화 섹션에서 고객 관리 암호화 키 (CMEK) 옵션을 선택하고 생성한 Cloud Key Management Service 키를 선택합니다. CMEK는 보관 파일 생성 중에만 사용 설정할 수 있으며 기존 보관 파일에서는 사용 설정, 사용 중지 또는 변경할 수 없습니다.

2. 백업 계획 만들기

백업 계획을 만들 때 이전 단계에서 만든 CMEK 지원 Backup Vault를 백업의 타겟 Backup Vault로 선택합니다.

3. 리소스에 백업 계획 적용

리소스에 백업 계획을 적용할 때는 백업 계획이 리소스의 암호화 구성과 호환되는 Backup Vault를 타겟팅해야 합니다.

  • 하나 이상의 CMEK 암호화 디스크가 연결된 Compute Engine 인스턴스를 백업하는 경우 CMEK 지원 Backup Vault를 타겟팅하는 백업 계획을 사용해야 합니다.
  • 연결된 모든 디스크가 Google 관리 암호화를 사용하는 Compute Engine 인스턴스를 백업하는 경우 CMEK가 아닌 Backup Vault 또는 CMEK 지원 Backup Vault를 타겟팅하는 백업 계획을 사용할 수 있습니다. CMEK 지원 Backup Vault를 사용하는 경우 인스턴스의 백업은 Backup Vault의 CMEK 키로 암호화됩니다.
  • Google 관리 암호화를 사용하는 영구 디스크를 백업하는 경우 CMEK가 아닌 Backup Vault를 타겟팅하는 백업 계획을 사용해야 합니다.

백업이 성공적으로 실행되도록 CMEK 권한 부여에 설명된 대로 필요한 KMS 권한을 부여했는지 확인합니다.

Cloud Key Management Service 키 순환 및 백업 복원 가능성

백업 및 DR은 Cloud Key Management Service 키 순환을 지원합니다. 키를 순환하면 Cloud Key Management Service에서 새 키 버전을 생성하며 이 버전이 기본 버전이 됩니다. 백업 및 DR은 기본 키 버전을 사용하여 해당 키로 구성된 백업 보관소의 모든 새 백업을 암호화합니다.

기존 백업은 다시 암호화되지 않으며 생성될 때 사용한 키 버전으로 암호화된 상태로 유지됩니다. 백업을 복원하려면 백업 암호화에 사용된 키 버전을 Cloud Key Management Service에서 사용할 수 있어야 합니다. 키 버전을 사용 중지하거나 폐기하면 해당 버전으로 암호화된 백업에 액세스할 수 없게 됩니다. 백업을 복원할 수 있도록 하려면 복원해야 할 수 있는 백업에서 아직 사용 중인 키 버전을 사용 중지하거나 폐기하지 마세요.

어떤 이유로든 백업 및 DR에서 CMEK 키에 액세스할 수 없는 경우 (예: 암호화 또는 복호화에 필요한 키 버전이 사용 중지되거나 폐기된 경우 또는 키에 대한 IAM 권한이 백업 및 DR 서비스 에이전트에서 취소된 경우) 다음 문제가 발생할 수 있습니다.

  • 기본 키 버전에 액세스할 수 없으면 CMEK 사용 Backup Vault에 대한 새 백업이 실패합니다.
  • 백업 암호화에 사용된 특정 키 버전에 액세스할 수 없는 경우 백업 보관소에서 복원할 수 없습니다.
  • 액세스할 수 없는 키를 사용하는 새 백업 보관함을 만들 수 없습니다.

백업에 사용된 키 버전을 사용 중지한 경우 다시 사용 설정하면 해당 버전으로 암호화된 백업에 대한 액세스 권한이 복원됩니다. 키 버전을 폐기하면 해당 키 버전으로 암호화된 모든 백업이 영구적으로 삭제되어 복원할 수 없습니다.

CMEK 조직 정책

조직 정책을 사용하여 조직, 폴더 또는 프로젝트 수준에서 백업 및 DR 리소스에 CMEK 사용을 적용할 수 있습니다. 자세한 내용은 CMEK 조직 정책을 참고하세요.

이러한 정책을 위반하여 Backup Vault를 만들거나 백업을 시도하면 작업이 실패합니다. 백업 계획을 만든 후 CMEK 조직 정책을 적용하면 해당 계획의 기존 백업 일정이 정책을 준수하지 않는 경우 실패합니다. 이러한 정책을 독립적으로 또는 조합하여 사용하여 조직의 CMEK 요구사항을 충족할 수 있습니다.

다음 섹션에서는 CMEK 조직 정책 제약 조건이 다양한 Backup and DR 리소스에 적용되는 방법을 설명합니다.

Backup Vault 컨테이너

CMEK 조직 정책을 사용하는 경우 Backup Vault 생성 중에 다음 제약 조건을 적용할 수 있습니다.

  • backupdr.googleapis.comconstraints/gcp.restrictNonCmekServices가 적용되는 경우 새 Backup Vault를 만들 때 CMEK를 구성해야 합니다. Google 관리 암호화를 사용하는 Backup Vault는 만들 수 없습니다.
  • constraints/gcp.restrictCmekCryptoKeyProjects가 적용되고 CMEK 지원 Backup Vault를 만드는 경우 허용된 프로젝트 또는 폴더의 키를 선택해야 합니다.

안정 상태의 백업

CMEK 조직 정책을 사용하는 경우 백업이 생성될 때 다음 제약 조건을 적용할 수 있습니다.

  • constraints/gcp.restrictNonCmekServicesbackupdr.googleapis.com에 적용되면 CMEK 대신 Google 관리 암호화를 사용하는 경우 새 백업을 만들 수 없습니다.
    • Compute Engine 인스턴스 백업: 대상 Backup Vault에서 Google 관리 암호화를 사용하는 경우 백업이 실패합니다.
    • 영구 디스크 백업: 소스 영구 디스크가 Google 관리 암호화를 사용하는 경우 백업이 실패합니다.
  • constraints/gcp.restrictCmekCryptoKeyProjects가 적용되면 CMEK로 보호되는 리소스는 허용된 프로젝트 또는 폴더의 키를 사용해야 합니다.
    • Compute Engine 인스턴스 백업: Backup Vault가 CMEK로 암호화된 경우 키는 허용된 프로젝트 또는 폴더에서 가져와야 합니다. 그렇지 않으면 이 보관함에 대한 백업이 실패합니다.
    • 영구 디스크 백업: 소스 영구 디스크가 CMEK로 암호화된 경우 키는 허용된 프로젝트 또는 폴더에서 가져와야 합니다. 그렇지 않으면 이 디스크의 백업이 실패합니다. 영구 디스크 백업은 백업 보관소의 키가 아닌 소스 디스크의 암호화 키를 사용하여 백업을 보호합니다.

가격 책정

백업 및 DR에서는 CMEK 사용에 대한 추가 요금을 청구하지 않습니다. 하지만 Cloud Key Management Service에서 키를 사용하는 데는 요금이 청구됩니다. 자세한 내용은 Cloud Key Management Service 가격 책정을 참고하세요.

다음 단계