관리형 Lustre의 고객 관리 암호화 키

기본적으로 Google Cloud Managed Lustre는 저장된 고객 콘텐츠를 암호화합니다. Managed Lustre는 사용자 측의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 합니다.

암호화 키를 제어하려면 Managed Lustre를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.

CMEK로 리소스를 설정한 후 Managed Lustre 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.

다음 Managed Lustre 데이터는 CMEK로 보호됩니다.

  • 파일 데이터
  • 파일 이름과 같은 파일 시스템 메타데이터

Managed Lustre에서 CMEK를 사용하는 경우 프로젝트에서 Cloud KMS 암호화 요청 할당량을 사용할 수 있습니다. CMEK 암호화 인스턴스는 Managed Lustre에서 데이터를 읽거나 쓸 때 할당량을 사용합니다. CMEK 키를 사용하는 암호화 및 복호화 작업은 외부(Cloud EKM) 키를 사용하는 경우에만 Cloud KMS 할당량에 영향을 미칩니다. 자세한 내용은 Cloud KMS 할당량을 참조하세요.

제한사항

다음과 같은 제한사항이 적용됩니다.

  • CMEK로 보호되는 Managed Lustre 인스턴스의 동적 프로비저닝은 Google Kubernetes Engine에서 지원되지 않지만 정적 프로비저닝은 지원됩니다.

  • VPC 서비스 제어 경계 내에서 CMEK로 보호되는 Managed Lustre 인스턴스를 만들 때 Cloud KMS 키는 다음 중 하나여야 합니다.

Cloud KMS 키 만들기

CMEK 지원 Lustre 인스턴스를 만들려면 먼저 Cloud KMS 키링과 Cloud KMS 키가 있어야 합니다.

Managed Lustre는 세 가지 보호 수준을 지원합니다.

  • 소프트웨어(SOFTWARE)
  • 하드웨어(HSM)
  • 인터넷을 통한 외부(EXTERNAL)

키를 만들 때는 Managed Lustre 인스턴스가 포함된 프로젝트와 다른 프로젝트에 Cloud KMS 키를 만드는 것이 좋습니다. 직무 분리를 참조하세요.

Cloud KMS 키는 생성 중인 Managed Lustre 인스턴스와 동일한 리전에 생성되어야 합니다.

키를 만들려면 다음 안내를 따르세요.

  1. 아직 키링이 없으면 키링을 만듭니다.
  2. Cloud KMS 키를 만듭니다.

Managed Lustre 서비스 에이전트에 IAM 권한 부여

Managed Lustre는 서비스 에이전트를 사용하여 리소스에 액세스하고 사용자를 대신하여 작업을 수행합니다. CMEK를 사용하려면 서비스 에이전트에 Cloud KMS 키에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter IAM 역할을 부여해야 합니다.

Google Cloud 콘솔 사용자

Google Cloud 콘솔을 사용하여 CMEK로 보호되는 Managed Lustre 인스턴스를 만드는 경우 이 섹션을 건너뛸 수 있습니다. Google Cloud 콘솔은 인스턴스 생성 흐름의 일부로 필요한 권한을 부여합니다.

CMEK가 사용 설정된 Managed Lustre 인스턴스 만들기로 이동합니다.

프로젝트의 서비스 에이전트 ID를 모르는 경우 서비스 에이전트 ID 만들기 또는 검색을 참조하세요.

서비스 에이전트에 권한 부여

서비스 에이전트에 역할을 부여하려면 gcloud kms keys add-iam-policy-binding 명령어를 사용합니다.

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:SERVICE_AGENT_IDENTITY \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

다음 변수를 바꿉니다.

  • KEY_NAME: Cloud KMS 키의 이름입니다.
  • KEY_RING: 키가 포함된 키링의 이름입니다.
  • REGION: 키링이 있는 리전입니다.
  • KMS_PROJECT_ID: Cloud KMS 키가 포함된 프로젝트의 ID입니다.
  • SERVICE_AGENT_IDENTITY: Managed Lustre 서비스 에이전트 ID(service-<var>PROJECT_NUMBER</var>@gcp-sa-lustre.)입니다.

CMEK가 사용 설정된 Managed Lustre 인스턴스 만들기

CMEK로 보호되는 Managed Lustre 인스턴스를 만들려면 다음 인터페이스 중 하나를 사용합니다. 클러스터 툴킷 청사진에서 CMEK를 구성하려면 클러스터 툴킷 문서의 고객 관리 암호화 키(CMEK) 사용을 참조하세요.

gcloud

gcloud를 사용하여 CMEK로 보호되는 인스턴스를 만들려면 인스턴스 만들기의 단계를 따르세요. 아래와 같이 키 식별자를 --kms-key-name 값으로 지정합니다.

gcloud lustre instance create INSTANCE_ID \
  --filesystem=FILESYSTEM_NAME \
  --per-unit-storage-throughput=PERF_TIER \
  --capacity-gib=CAPACITY_GIB \
  --location=ZONE \
  --network=NETWORK_NAME \
  --project=PROJECT_ID \
  --kms-key-name=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Cloud KMS 키는 만들려는 Managed Lustre 인스턴스와 동일한 리전에 있어야 합니다.

REST

REST API를 사용하여 CMEK로 보호되는 인스턴스를 만들려면 인스턴스 만들기의 단계를 따르세요. 아래와 같이 키 식별자를 kmsKey 값으로 지정합니다.

POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
  "filesystem": "FILESYSTEM_NAME",
  "perUnitStorageThroughput": PERF_TIER,
  "capacityGib": CAPACITY_GIB,
  "network": "NETWORK_NAME",
  "kmsKey": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
}

Cloud KMS 키는 생성 중인 Managed Lustre 인스턴스와 동일한 리전에 있어야 합니다.

필드 및 설명의 전체 목록은 Instance 리소스 참고 문서를 확인하세요.

Google Cloud 콘솔

Google Cloud 콘솔을 사용하여 CMEK로 보호되는 인스턴스를 만들려면 인스턴스 만들기의 단계를 따르세요. Google Cloud 콘솔의 인스턴스 만들기 페이지에서 다음을 수행합니다.

  1. 암호화 섹션에서 Cloud KMS 키를 선택합니다.

  2. 키 관리 유형으로 Cloud KMS를 선택하고 키를 선택합니다. 키가 다른 프로젝트에 있는 경우(권장) 프로젝트 전환을 클릭하고 키 프로젝트를 선택한 후 키를 선택합니다. Cloud KMS 키는 만들려는 Managed Lustre 인스턴스와 동일한 리전에 있어야 합니다.

  3. Managed Lustre 서비스 에이전트에 CMEK를 사용하는 데 필요한 권한이 없으면 cloudkms.cryptoKeyEncrypterDecrypter 역할을 부여하라는 메시지가 표시됩니다. 부여를 클릭하여 역할을 적용합니다.

Cloud KMS 키를 사용할 수 없거나 만들기 작업을 시작할 때 권한 문제가 있으면 작업이 실패하고 FAILED_PRECONDITION 오류가 반환됩니다.

키 관리

Cloud Key Management Service 키는 순환, 사용 중지, 다시 사용 설정 또는 폐기할 수 있습니다. 다양한 이유로 사용할 수 없게 될 수 있습니다.

키 순환

Cloud KMS 키를 순환할 수 있습니다. 키를 순환하면 새 키 버전이 생성됩니다.

  • 키를 순환해도 Managed Lustre 인스턴스의 데이터는 다시 암호화되지 않습니다. Managed Lustre는 데이터 복호화 또는 재암호화를 지원하지 않습니다.

  • Managed Lustre 인스턴스의 기존 용량은 인스턴스가 생성될 때 사용 중인 키 버전으로 계속 암호화됩니다.

  • 인스턴스의 스토리지 용량을 늘리면 용량 증가를 요청할 때 기본인 키 버전으로 새 용량이 보호되고 해당 용량에 기록된 모든 데이터는 해당 키 버전으로 보호됩니다.

즉, 키 버전을 순환한 후 인스턴스 용량을 늘린 경우 Managed Lustre 인스턴스를 암호화하는 여러 키 버전이 있을 수 있습니다.

키 중지

키 버전을 사용 중지할 수 있습니다. Managed Lustre 인스턴스에서 사용하는 키 버전이 사용 중지된 동안에는 인스턴스가 정지됩니다. 인스턴스를 재개하려면 인스턴스를 보호하는 모든 키 버전을 사용 가능한 상태로 되돌립니다. 정지된 인스턴스에 대한 자세한 내용은 사용할 수 없는 키를 참조하세요.

자세한 내용은 키 버전 사용 설정 및 사용 중지를 참조하세요.

키 다시 사용 설정

키 버전이 사용 중지된 경우 Cloud KMS API를 통해 다시 사용 설정할 수 있습니다. 키 버전 사용 설정 및 사용 중지를 참조하세요.

Managed Lustre 인스턴스를 재개하려면 스토리지 용량을 암호화하는 모든 키 버전을 사용 설정하거나 복원해야 합니다.

필요한 모든 키가 ENABLED 상태로 돌아가면 Managed Lustre는 키 변경사항을 자동으로 감지하고 인스턴스를 다시 시작합니다. 인스턴스 상태가 ACTIVE이 되고 Managed Lustre 서비스가 정상 작업을 재개합니다. I/O 및 기타 모든 장기 실행 작업을 실행할 수 있습니다.

키 폐기

Cloud KMS 키 버전을 폐기할 수 있습니다. 즉, 키 자료가 영구적으로 삭제됩니다.

Cloud KMS 키는 즉시 폐기할 수 없습니다. 대신 키 버전의 폐기를 예약해야 합니다. 예약된 기간 동안 키 버전을 복원하여 폐기를 취소할 수 있습니다. 자세한 내용은 키 버전 폐기 및 복원을 참조하세요.

폐기 예약된 키 버전은 사용할 수 없습니다. 해당 키 버전으로 보호되는 모든 Managed Lustre 인스턴스가 정지됩니다. 정지된 인스턴스에 대한 자세한 내용은 사용할 수 없는 키를 참조하세요.

키 버전이 폐기되면 복원할 수 없습니다. 인스턴스가 영구적으로 정지된 상태로 유지됩니다. Managed Lustre 인스턴스에서 사용할 수 있는 유일한 작업은 인스턴스 삭제입니다.

사용할 수 없는 키

다음과 같은 이유로 키를 사용할 수 없게 될 수 있습니다.

  • 키가 사용 중지됩니다.
  • 키가 폐기되었거나 폐기될 예정입니다.
  • 필수 권한이 서비스 에이전트에서 삭제됩니다.
  • Cloud KMS 키 프로젝트에서 결제가 사용 중지되고 1시간 넘게 사용 중지된 상태로 유지됩니다.
  • 외부 키에 1시간 넘게 연결할 수 없습니다.

이러한 경우 이벤트가 발생한 후 몇 분 이내에 Managed Lustre 인스턴스가 종료되고 인스턴스 상태가 SUSPENDED로 설정됩니다.

키를 다시 사용할 수 있게 하면 SUSPENDED 인스턴스를 복구할 수 있습니다.

정지 사유는 다음과 같습니다.

키 작업 인스턴스 상태 정지 사유 다시 사용 설정할 수 있음
사용 중지 SUSPENDED KEY_DISABLE 예
폐기 예약 SUSPENDED KEY_DESTROY_SCHEDULED 예
폐기 SUSPENDED KEY_DESTROY 아니요
권한 삭제 SUSPENDED PERMISSION_DENIED 예
1시간 동안 결제 사용 중지 SUSPENDED BILLING_DISABLED 예
1시간 동안 EKM 키에 연결할 수 없음 SUSPENDED EKM_KEY_UNREACHABLE 예

인스턴스가 정지되면 다음이 적용됩니다.

  • 인스턴스 업데이트 및 가져오기/내보내기와 같은 장기 실행 작업이 차단되고 FAILED_PRECONDITION 오류가 반환됩니다.
  • 서버 노드가 종료될 때까지 I/O 작업이 응답을 중지합니다. 이 작업은 30분 이내에 완료됩니다.
  • 허용되는 유일한 장기 실행 작업은 DeleteInstance입니다.

4개월 넘게 정지된 인스턴스는 재개되지 않을 수 있습니다.

정지된 인스턴스에 대한 청구

키를 사용할 수 없어 Managed Lustre 인스턴스가 SUSPENDED 상태가 되면 인스턴스에 대한 요금이 계속 청구됩니다. 정지 상태에서는 청구가 일시중지되지 않습니다. 인스턴스에 대한 요금이 청구되지 않도록 하려면 인스턴스를 삭제해야 합니다.

사용 중인 키 버전에 대해서도 Cloud KMS에서 별도로 청구됩니다.

키 사용량 보기 및 키 버전 나열

Cloud KMS 키로 보호되는 조직 내 Google Cloud 리소스를 볼 수 있습니다. 자세한 내용은 키 사용량 보기를 참조하세요.

Managed Lustre 인스턴스에서 사용하는 키 버전의 전체 목록을 보려면 gcloud kms inventory search-protected-resources 명령어를 사용합니다.

gcloud kms inventory search-protected-resources \
  --keyname=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
  --scope=organizations/ORGANIZATION_ID \
  --filter="name:projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID" \
  --flatten="cryptoKeyVersions" \
  --format="value(cryptoKeyVersions)"

각 항목의 의미는 다음과 같습니다.

키 인벤토리 페이지에서 키 정보를 확인할 수도 있습니다.

키 인벤토리로 이동