vSAN 암호화 정보

vSAN 저장 데이터를 암호화하려면 키 관리 시스템 (KMS)이 필요합니다. Google Cloud VMware Engine은 vSAN 데이터 암호화를 위한 키 관리에 여러 옵션을 제공합니다.

키 관리 솔루션 선택

키 관리 솔루션을 선택하는 데 도움이 되도록 다음 비교를 검토하세요.

기능 GMEK (기본값) CMEK 외부 KMS
키 관리 책임 Google 고객 고객
키 저장소 Cloud Key Management Service (Google 프로젝트) Cloud Key Management Service (고객 프로젝트) 외부 KMS
격리 수준 리전 서비스 개별 프라이빗 클라우드 개별 프라이빗 클라우드
순환 자동화 Google에서 자동화 KMS 순환 시 Google에서 자동화 고객이 관리
추가 라이선스 비용 없음 Google Cloud KMS 요금 적용 서드 파티 KMS 라이선스

이 페이지에서는 vSAN 암호화 동작을 설명하고 외부 KMS를 사용하여 VMware Engine의 가상 머신 저장 데이터를 암호화하는 방법을 요약합니다.

vSAN 데이터 암호화

기본적으로 VMware Engine은 기본 클러스터와 나중에 프라이빗 클라우드에 추가된 클러스터의 데이터에 vSAN 암호화를 사용 설정합니다. vSAN 저장 데이터 암호화는 암호화 후 클러스터의 로컬 물리적 디스크에 저장되는 데이터 암호화 키 (DEK)를 사용합니다. DEK는 ESXi 호스트에서 자동으로 생성되는 FIPS 140-2 수준 1 규정 준수 AES-256비트 암호화 키입니다. 시스템은 Cloud Key Management Service 또는 외부 KMS에서 제공하는 키 암호화 키 (KEK)를 사용하여 DEK를 암호화합니다.

저장 데이터의 vSAN 암호화를 중지하는 것은 권장하지 않습니다. Google Cloud VMware Engine의 서비스별 약관을 위반할 수 있기 때문입니다. 클러스터에서 저장 데이터의 vSAN 암호화를 중지하면 VMware Engine 모니터링 로직에서 알림이 발생합니다. 이 알림은 서비스 약관 위반이 방지되도록 Cloud Customer Care 기반 작업을 트리거하여 영향을 받는 클러스터에서 vSAN 암호화를 다시 사용 설정합니다.

마찬가지로 외부 KMS를 구성하는 경우 vCenter Server에서 Cloud Key Management Service의 키 제공업체 구성을 삭제하지 않을 것을 적극 권장합니다.

Google-owned and Google-managed encryption keys (GMEK)

기본적으로 프라이빗 클라우드는 Google-owned and Google-managed encryption keys (GMEK)를 사용합니다. GMEK를 사용하면 VMware Engine은 GMEK 제공업체에 연결하도록 vCenter Server를 구성합니다. VMware Engine은 리전당 키 제공자의 인스턴스를 하나씩 만들고 키 제공자는 KEK 암호화에 Cloud KMS를 사용합니다. VMware Engine은 키 제공자를 완벽하게 관리하고 모든 리전에서 가용성이 높도록 구성합니다.

GMEK 제공업체는 vCenter Server(vSphere 7.0 업데이트 2 이상 버전)의 기본 키 제공업체를 보완하며, 프로덕션 환경에 권장되는 접근 방법입니다. 기본 키 제공업체는 VMware Engine의 vSphere 클러스터에서 실행되는 vCenter Server 내에서 프로세스로 실행됩니다. VMware는 vCenter Server를 호스팅하는 클러스터를 암호화하는 데 기본 키 제공업체를 사용하지 않을 것을 권장합니다. 대신 GMEK, CMEK 또는 외부 KMS를 사용하는 것이 좋습니다.

GMEK 자동 키 순환

Google Cloud VMware Engine은 모든 클러스터에 대해 GMEK의 자동 키 순환을 주기적으로 트리거합니다. 이는 사용자 개입이 필요하지 않고 클러스터 가용성에 영향을 미치지 않는 백그라운드 유지보수 작업입니다.

고객 관리 암호화 키 (CMEK)

Google Cloud VMware Engine은 Cloud Key Management Service를 사용하여 개별 프라이빗 클라우드에 고객 관리 암호화 키 (CMEK)를 지원합니다. 전체 프로젝트에서 단일 키를 공유하는 대신 각 프라이빗 클라우드를 고유한 CMEK 키로 구성할 수 있습니다. 이는 다음과 같은 이점을 제공합니다.

  • 격리 강화: 하나의 프라이빗 클라우드에 대한 키가 손상되거나 순환되더라도 다른 프라이빗 클라우드에는 영향을 미치지 않습니다.
  • 세분화된 규정 준수: 각 프라이빗 클라우드 내 워크로드의 특정 데이터 상주 또는 규정 준수 요구사항에 따라 키를 할당합니다.

CMEK 암호화 관리

콘솔 및 VMware Engine API를 사용하여 프라이빗 클라우드의 고객 관리 암호화 키 (CMEK)를 구성하고 관리할 수 있습니다. Google Cloud CMEK를 사용하려면 사용하려는 특정 Cloud KMS 키에 대해 VMware Engine 서비스 계정(service-<var>PROJECT_NUMBER</var>@gcp-sa-vmwareengine.iam.gserviceaccount.com)에 roles/cloudkms.cryptoKeyEncrypterDecrypter IAM 역할을 부여해야 합니다. 이 권한을 사용하면 VMware Engine에서 프로젝트의 선택된 Cloud KMS 키를 사용하여 vSAN 데이터를 보호하는 키 암호화 키 (KEK)를 암호화하고 복호화할 수 있습니다.

키 권한 할당

CMEK를 사용 설정하려면 먼저 필요한 권한을 할당해야 합니다.

  1. KMS 리소스 식별: 콘솔의 키 관리 페이지로 이동하여 데이터 Google Cloud 보호에 사용할 특정 Cloud KMS 키를 찾습니다.

    키 관리로 이동

  2. IAM 역할 설정: Cloud KMS 키 대시보드에서 VMware Engine 서비스 계정(service-<var>PROJECT_NUMBER</var>@gcp-sa-vmwareengine.iam.gserviceaccount.com)에 roles/cloudkms.cryptoKeyEncrypterDecrypter 역할을 직접 부여합니다.

Google Cloud CMEK 관리를 위한 콘솔 및 VMware Engine API 안내는 다음과 같습니다.

Google Cloud 콘솔

콘솔을 사용하여 고객 관리 암호화 키 (CMEK)를 구성하려면 다음 단계를 따르세요. Google Cloud

CMEK로 프라이빗 클라우드 만들기

콘솔을 사용하여 CMEK로 프라이빗 클라우드를 만들려면 다음 단계를 따르세요. Google Cloud

  1. 콘솔에서 프라이빗 클라우드 페이지로 이동합니다. Google Cloud

    프라이빗 클라우드로 이동

  2. 만들기 를 클릭합니다.

  3. 암호화 섹션에서 고객 관리 암호화 키 (CMEK) 를 선택합니다.

  4. Cloud KMS 키의 전체 리소스 이름을 입력합니다.

  5. 만들기 또는 저장 을 클릭합니다.

기존 프라이빗 클라우드의 CMEK 키 업데이트

콘솔을 사용하여 기존 프라이빗 클라우드의 CMEK 키를 업데이트하려면 다음 단계를 따르세요. Google Cloud

  1. 콘솔에서 프라이빗 클라우드 페이지로 이동합니다. Google Cloud

    프라이빗 클라우드로 이동

  2. 업데이트할 기존 프라이빗 클라우드를 선택합니다.

  3. 암호화 섹션에서 고객 관리 암호화 키 (CMEK) 를 선택합니다.

  4. Cloud KMS 키의 전체 리소스 이름을 입력합니다.

  5. 만들기 또는 저장 을 클릭합니다.

기존 프라이빗 클라우드의 암호화를 GMEK로 업데이트

콘솔을 사용하여 기존 프라이빗 클라우드의 암호화 유형을 GMEK로 업데이트하려면 다음 단계를 따르세요. Google Cloud

  1. 콘솔에서 프라이빗 클라우드 페이지로 이동합니다. Google Cloud

    프라이빗 클라우드로 이동

  2. 업데이트할 기존 프라이빗 클라우드를 선택합니다.

  3. 암호화 섹션에서 Google-owned and Google-managed encryption keys (GMEK)를 선택합니다.

  4. 만들기 또는 저장 을 클릭합니다.

VMware Engine API

API 명령어를 사용하려면 먼저 다음 변수를 사용자 환경의 값으로 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다. Google Cloud
  • LOCATION: VMware Engine 리전(예: us-east4)입니다.
  • PC_ID: 새 프라이빗 클라우드의 ID입니다.
  • NETWORK_ID: VPC 네트워크의 ID입니다.
  • CIDR_RANGE: 프라이빗 클라우드의 관리 CIDR 범위입니다.
  • CLUSTER_ID: 관리 클러스터의 ID입니다.
  • NODE_TYPE: 노드 유형(예: standard-72)입니다.
  • COUNT: 클러스터의 노드 수입니다.
  • RING: Cloud KMS 키링의 이름입니다.
  • KEY: Cloud KMS 암호화 키의 이름입니다.
  • PC_NAME: 기존 프라이빗 클라우드의 이름입니다.

CMEK로 프라이빗 클라우드를 만들려면 privateClouds.create 메서드를 사용하고 encryptionConfig 매개변수를 지정합니다.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  "https://vmwareengine.googleapis.com/v1/projects//locations//privateClouds?private_cloud_id=" \
  -d '{
  "networkConfig": {
    "vmwareEngineNetwork": "projects//locations/global/vmwareEngineNetworks/",
    "managementCidr": ""
  },
  "managementCluster": {
    "clusterId": "",
    "nodeTypeConfigs": {
      "": {
        "nodeCount": 
      }
    }
  },
  "encryptionConfig": {
    "cryptoKeyName": "projects//locations//keyRings//cryptoKeys/"
  }
}'

기존 프라이빗 클라우드의 CMEK 키를 업데이트하려면 privateClouds.patch 메서드를 사용합니다.

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  "https://vmwareengine.googleapis.com/v1/projects//locations//privateClouds/?updateMask=encryptionConfig" \
  -d '{
  "encryptionConfig": {
    "cryptoKeyName": "projects//locations//keyRings//cryptoKeys/"
  }
}'

기존 프라이빗 클라우드를 GMEK (Google-owned and Google-managed encryption keys)로 다시 전환하려면 빈 encryptionConfig 객체와 함께 privateClouds.patch 메서드를 사용합니다.

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  "https://vmwareengine.googleapis.com/v1/projects//locations//privateClouds/?updateMask=encryptionConfig" \
  -d '\''{
  "encryptionConfig": {}
}'\''

CMEK 제약 조건 및 제한사항 이해

  • 리전 요구사항: 프라이빗 클라우드와 선택한 Cloud KMS 키가 모두 동일한 리전에 있어야 합니다. Google Cloud KMS 전역 키는 vSAN 암호화에서 지원되지 않습니다.
  • 키 가용성: 암호화 키가 사용 중지되거나 취소되어 액세스할 수 없게 되면 모든 종속 vSAN 작업이 실패합니다. 키 액세스가 다시 설정될 때까지 호스트 재부팅 및 얕은 키 재설정을 비롯한 중요한 절차를 진행할 수 없습니다.

CMEK 자동 KEK 순환을 통한 운영 효율성

CMEK를 선택하는 조직의 경우 vSAN 저장 데이터 암호화를 위한 자동 KEK 순환 기능은 수동 보안 작업을 자동화합니다.

  • 자동 동기화: 시스템은 Cloud KMS를 모니터링하고 키 순환을 자동으로 감지합니다.
  • 원활한 백그라운드 KEK 순환: 순환 시 시스템은 얕은 KEK 순환을 시작하여 vCenter에서 수동 개입 없이 지속적인 보호를 보장합니다. 이 작업은 데이터 암호화 키(DEK)의 키 암호화 키를 새 키 암호화 키 (KEK)로 업데이트합니다. DEK는 vSAN 데이터를 직접 암호화하므로 이 프로세스에서는 vSAN 데이터를 완전히 다시 암호화할 필요가 없습니다.
  • 무중단 관리: 시스템은 백그라운드에서 KEK를 생성하고 적용하여 워크로드의 성능과 가용성을 유지합니다. 이 프로세스는 일반적으로 Cloud KMS 키 순환 후 48시간 이내에 완료됩니다.

암호화된 가상 머신 요구사항

기본 Google-owned and managed key 제공업체 또는 Cloud Key Management Service를 사용하여 VM의 암호화 키를 관리할 수 있습니다.

프라이빗 클라우드의 VM에 VM 암호화 (또는 vTPM)를 사용 설정하고 KMS를 사용하여 암호화 키를 관리하는 경우 KMS 키를 순환한 후 각 VM을 다시 암호화 (얕은 키 재설정)해야 합니다.

얕은 키 재설정은 키 암호화 키 (KEK)만 대체하고 VM의 데이터 암호화 키 (DEK)는 변경하지 않습니다. 일반적으로 vSphere Client에서 다시 암호화 작업을 사용하여 얕은 키 재설정을 트리거합니다.

이 작업 중에 시스템은 새 KEK를 사용하여 기존 DEK를 다시 래핑 (다시 암호화)합니다. 이 프로세스는 디스크의 실제 데이터를 다시 쓰는 대신 암호화된 DEK가 포함된 작은 키 번들만 업데이트하므로 빠릅니다. 자세한 내용은 다음 VMware 문서를 참조하세요.

암호화된 VM의 키를 다시 설정하지 못할 경우의 위험

순환된 (이전) KMS 키 버전을 삭제하기 전에 암호화된 VM의 키를 다시 설정하지 못하면 다음과 같은 문제가 발생할 수 있습니다.

  • vMotion 실패: KMS 키 순환 후 VM 키를 다시 설정하기 전에 대상 호스트를 재부팅하거나 클러스터에 추가하면 ESXi 호스트가 vMotion 중에 VM DEK를 복호화할 수 없습니다.
  • 전원 켜기 실패: 호스트가 재부팅되거나 로컬 키 캐시를 지우면 KMS에서 키를 다시 가져올 수 없습니다. KMS에서 필요한 키를 삭제한 경우 호스트가 DEK를 복호화할 수 없으므로 암호화된 VM의 전원을 켤 수 없습니다.

워크로드 VM에서 키 재설정 작업을 수행하는 단계

  1. vSphere Client에서 VM을 마우스 오른쪽 버튼으로 클릭합니다.
  2. VM 정책 > 다시 암호화 를 선택합니다.
  3. 대화상자가 나타나면 다시 암호화 요청을 확인합니다.
  4. 작업이 완료될 때까지 기다립니다.
  5. KMS 키 순환 후 재부팅하거나 클러스터에 추가한 호스트로 VM을 마이그레이션하여 키 재설정을 확인합니다.

외부 KMS

선택적으로 KMIP 1.1을 준수하고 VMware에서 vSAN에 대한 인증을 받은 서드 파티 KMS 솔루션을 선택할 수 있습니다. 다음 공급업체는 VMware Engine으로 KMS 솔루션의 유효성을 검사했으며 배포 가이드 및 지원 문을 게시했습니다.

구성 안내는 다음 문서를 참조하세요.

지원되는 공급업체 사용

외부 KMS를 배포할 때마다 동일한 기본 단계가 필요합니다.

  • 프로젝트를 만들거나 기존 프로젝트를 선택합니다. Google Cloud
  • 새 Virtual Private Cloud (VPC)를 만들거나 기존 VPC 네트워크를 선택합니다.
  • 선택한 VPC 네트워크를 VMware Engine 네트워크에 연결합니다.

그런 다음 Compute Engine VM 인스턴스에 KMS를 배포합니다.

  1. Compute Engine VM 인스턴스를 배포하는 데 필요한 IAM 권한을 설정합니다.
  2. Compute Engine에 KMS를 배포합니다.
  3. vCenter 및 Fortanix KMS 간의 신뢰 설정
  4. vSAN 데이터 암호화 사용 설정

다음 섹션에서는 지원되는 공급업체를 이용하는 프로세스를 간략하게 설명합니다.

IAM 권한 설정

특정 Google Cloud 프로젝트 및 VPC 네트워크에 Compute Engine VM 인스턴스 를 배포하고 VPC 네트워크를 VMware Engine에 연결하고 VPC 네트워크의 방화벽 규칙을 구성하려면 충분한 권한이 있어야 합니다.

프로젝트 소유자와 네트워크 관리자 역할을 갖는 IAM 주 구성원은 할당된 IP 범위를 만들고 비공개 연결을 관리할 수 있습니다. 역할에 대한 자세한 내용은 Compute Engine IAM 역할을 참조하세요.

Compute Engine에 키 관리 서버 배포

일부 KMS 솔루션은 Google Cloud Marketplace의 어플라이언스 폼 팩터에서 사용할 수 있습니다. VPC 네트워크나 프로젝트에서 OVA를 직접 가져와 이러한 어플라이언스를 배포할 수 있습니다. Google Cloud

소프트웨어 기반 KMS의 경우 KMS 공급업체의 권장 구성 (vCPU 수, vMem, 디스크)을 사용하여 Compute Engine VM 인스턴스를 배포합니다. 게스트 운영체제에 KMS 소프트웨어를 설치합니다. VMware Engine 네트워크에 연결된 VPC 네트워크에서 Compute Engine VM 인스턴스를 만듭니다.

vCenter 및 Fortanix KMS 간의 신뢰 설정

Compute Engine에 KMS를 배포한 후 KMS에서 암호화 키를 검색하도록 VMware Engine vCenter를 구성합니다.

먼저 vCenter에 KMS 연결 세부정보를 추가합니다. 그 다음 vCenter와 KMS 간에 신뢰를 설정합니다. vCenter와 KMS 간에 신뢰를 설정하려면 다음을 수행합니다.

  1. vCenter에서 인증서를 생성합니다.
  2. KMS에서 생성된 토큰이나 키를 사용하여 서명합니다.
  3. 이 인증서를 vCenter에 제공하거나 업로드합니다.
  4. vCenter 서버 구성 페이지에서 KMS 설정 및 상태를 확인하여 연결 상태를 확인합니다.

vSAN 데이터 암호화 사용 설정

vCenter에서 기본 CloudOwner 사용자는 vSAN 데이터 암호화를 사용 설정하고 관리할 권한이 있습니다.

외부 KMS에서 다시 기본 Google-owned and managed key 제공업체로 전환하려면 VMware 문서 표준 키 제공업체 구성 및 관리에서 제공하는 키 제공업체를 변경하는 단계를 수행합니다.

다음 단계