기본적으로 Google Cloud Managed Lustre는 저장된 고객 콘텐츠를 암호화합니다. 관리형 Lustre는 사용자 측의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 합니다.
암호화 키를 제어하려면 Managed Lustre를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 키 사용을 추적하고 감사 로그를 보며 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 관리형 Lustre 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.
다음 관리형 Lustre 데이터는 CMEK로 보호됩니다.
- 파일 데이터
- 파일 이름과 같은 파일 시스템 메타데이터
제한사항
Google Kubernetes Engine에서는 CMEK로 보호된 관리형 Lustre 인스턴스의 동적 프로비저닝이 지원되지 않지만 정적 프로비저닝은 지원됩니다.
클러스터 툴킷은 CMEK로 보호된 관리 Lustre 인스턴스를 지원하지 않습니다.
VPC 서비스 제어는 CMEK로 보호되는 관리 Lustre 인스턴스를 지원하지 않습니다. VPC 서비스 제어 경계 내에서 CMEK로 보호된 인스턴스를 만들려고 하면 인스턴스 생성 작업이 실패합니다.
Cloud KMS 키 만들기
CMEK 지원 Lustre 인스턴스를 만들기 전에 Cloud KMS 키링과 Cloud KMS 키가 있어야 합니다.
Managed Lustre는 다음 세 가지 보호 수준을 지원합니다.
- 소프트웨어 (
SOFTWARE) - 하드웨어 (
HSM) - 인터넷을 통한 외부 (
EXTERNAL)
키를 만들 때는 관리형 Lustre 인스턴스가 포함된 프로젝트와 다른 프로젝트에 Cloud KMS 키를 만드는 것이 좋습니다. 업무 분장을 참고하세요.
Cloud KMS 키는 생성 중인 관리형 Lustre 인스턴스와 동일한 리전에서 생성해야 합니다.
키를 만들려면 다음 안내를 따르세요.
- 아직 키링이 없다면 키링을 만듭니다.
- Cloud KMS 키를 만듭니다.
관리형 Lustre 서비스 에이전트에 IAM 권한 부여
Managed Lustre는 서비스 에이전트를 사용하여 리소스에 액세스하고 사용자를 대신하여 작업을 실행합니다. 서비스 에이전트에 액세스 권한을 관리할 수 있는 IAM 역할을 부여합니다. Managed Lustre 서비스 에이전트는 Managed Lustre 인스턴스를 만들 때 자동으로 생성됩니다.
서비스 에이전트 ID는 service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com 형식입니다.
Google Cloud 콘솔을 사용하여 CMEK로 보호되는 관리형 Lustre를 만드는 경우 이 섹션을 건너뛸 수 있습니다. Google Cloud 콘솔은 인스턴스 생성 흐름의 일부로 필요한 권한을 부여합니다.
CMEK가 사용 설정된 관리형 Lustre 인스턴스 만들기로 이동합니다.
서비스 에이전트 만들기 또는 가져오기
Managed Lustre 서비스 에이전트가 아직 없는 경우
프로젝트에서 Managed Lustre 인스턴스를 만든 적이 없는 경우 다음 명령어를 실행하여 서비스 에이전트를 수동으로 만듭니다.
gcloud beta services identity create \
--service=lustre.googleapis.com \
--project=PROJECT_NUMBER_OR_ID
PROJECT_NUMBER_OR_ID를 관리형 Lustre 인스턴스를 만들려는 프로젝트의 번호 또는 ID로 바꿉니다. 출력은 다음과 비슷합니다.
Service identity created: service-1234567890@gcp-sa-lustre.iam.gserviceaccount.com
다음 단계에서 사용할 서비스 에이전트 ID의 값을 복사합니다.
이미 Managed Lustre 인스턴스를 만든 경우
서비스 에이전트 ID를 구성하려면 프로젝트 번호를 가져옵니다. PROJECT_NUMBER는 프로젝트 ID와 다릅니다.
- 프로젝트 ID는 문자, 숫자, 하이픈의 조합으로 구성될 수 있는 고유한 문자열입니다. 프로젝트를 만들 때 프로젝트 ID를 지정합니다. 예를 들면
example-project-123입니다. - 프로젝트 번호는 숫자로만 구성된 프로젝트의 자동 생성 고유 식별자입니다. 예를 들면
1234567890입니다.
특정 프로젝트 ID의 PROJECT_NUMBER를 가져오려면
gcloud projects describe명령어를 사용합니다.gcloud projects describe PROJECT_ID --format="value(projectNumber)"- 프로젝트 ID는 문자, 숫자, 하이픈의 조합으로 구성될 수 있는 고유한 문자열입니다. 프로젝트를 만들 때 프로젝트 ID를 지정합니다. 예를 들면
반환된 프로젝트 번호를 서비스 에이전트 ID에 복사합니다.
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com다음 단계에서 사용할 서비스 에이전트 ID를 복사합니다.
서비스 에이전트에 권한 부여
Managed Lustre가 키로 작업을 수행하려면 승인이 필요합니다.
관리형 Lustre 서비스 에이전트에 Cloud KMS 키에 대한 roles/cloudkms.cryptoKeyEncrypterDecrypter IAM 역할을 부여해야 합니다.
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-SERVICE_AGENT_IDENTITY \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
다음 변수를 바꿉니다.
- KEY_NAME: Cloud KMS 키의 이름입니다.
- KEY_RING: 키가 포함된 키링의 이름입니다.
- REGION: 키링이 있는 리전
- KMS_PROJECT_ID: Cloud KMS 키가 포함된 프로젝트의 ID입니다.
- SERVICE_AGENT_IDENTITY: 이전 단계의 관리형 Lustre 서비스 에이전트 ID입니다. 형식은
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com입니다.
CMEK가 사용 설정된 Managed Lustre 인스턴스 만들기
CMEK로 보호되는 Managed Lustre 인스턴스를 만들려면 다음 단계를 따르세요.
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 키는 생성 중인 관리형 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 키는 생성 중인 관리형 Lustre 인스턴스와 동일한 리전에 있어야 합니다.
필드 및 설명의 전체 목록은 Instance 리소스 참조 문서를 참고하세요.
Google Cloud 콘솔
Google Cloud 콘솔을 사용하여 CMEK로 보호되는 인스턴스를 만들려면 인스턴스 만들기의 단계를 따르세요. Google Cloud 콘솔의 인스턴스 만들기 페이지에서 다음을 수행합니다.
암호화 섹션에서 Cloud KMS 키를 선택합니다.
키 관리 유형으로 Cloud KMS를 선택하고 키를 선택합니다. 키가 다른 프로젝트에 있는 경우 (권장) 프로젝트 전환을 클릭하고 키 프로젝트를 선택한 후 키를 선택합니다. Cloud KMS 키는 생성 중인 관리형 Lustre 인스턴스와 동일한 리전에 있어야 합니다.
관리형 Lustre 서비스 에이전트에 CMEK를 사용할 수 있는 필수 권한이 없는 경우
cloudkms.cryptoKeyEncrypterDecrypter역할을 부여하라는 메시지가 표시됩니다. 부여를 클릭하여 역할을 적용합니다.
Cloud KMS 키를 사용할 수 없거나 생성 작업을 시작할 때 권한 문제가 있는 경우 작업이 실패하고 FAILED_PRECONDITION 오류가 반환됩니다.
키 관리
Cloud Key Management Service 키는 순환, 사용 중지, 다시 사용 설정 또는 폐기할 수 있습니다. 다양한 이유로 사용할 수 없게 될 수 있습니다.
키 순환
Cloud KMS 키를 순환할 수 있습니다. 키를 순환하면 새 키 버전이 생성됩니다.
키를 순환해도 관리형 Lustre 인스턴스의 데이터는 다시 암호화되지 않습니다. Managed Lustre는 데이터 복호화 또는 재암호화를 지원하지 않습니다.
관리형 Lustre 인스턴스의 기존 용량은 인스턴스가 생성될 때 사용 중인 키 버전으로 계속 암호화됩니다.
인스턴스의 스토리지 용량을 늘리면 용량 증가 요청을 할 때 기본 버전인 키 버전으로 새 용량이 보호되며 해당 용량에 기록되는 모든 데이터가 해당 키 버전으로 보호됩니다.
즉, 키 버전을 순환한 후 인스턴스의 용량을 늘린 경우 관리형 Lustre 인스턴스를 암호화하는 키 버전이 여러 개 있을 수 있습니다.
키 중지
키 버전을 사용 중지할 수 있습니다. Managed Lustre 인스턴스에서 사용하는 키 버전이 사용 중지된 동안에는 인스턴스가 일시중지됩니다. 인스턴스를 재개하려면 인스턴스를 보호하는 모든 키 버전을 사용 가능한 상태로 되돌리세요. 정지된 인스턴스에 관한 자세한 내용은 사용할 수 없는 키를 참고하세요.
자세한 내용은 키 버전 사용 설정 및 사용 중지를 참고하세요.
키 다시 사용 설정
키 버전이 사용 중지된 경우 Cloud KMS API를 통해 다시 사용 설정할 수 있습니다. 키 버전 사용 설정 및 사용 중지를 참고하세요.
관리형 Lustre 인스턴스를 재개하려면 저장용량을 암호화하는 키의 모든 버전을 사용 설정하거나 복원해야 합니다.
필요한 모든 키가 ENABLED 상태로 돌아가면 Managed Lustre가 키 변경사항을 자동으로 감지하고 인스턴스를 다시 시작합니다. 인스턴스 상태가 ACTIVE이 되고 관리 Lustre 서비스가 정상 작동을 재개합니다. I/O 및 기타 모든 장기 실행 작업을 실행할 수 있습니다.
키 폐기
Cloud KMS 키 버전은 폐기할 수 있으며, 이는 키 자료가 영구적으로 삭제됨을 의미합니다.
Cloud KMS 키는 즉시 폐기할 수 없습니다. 대신 폐기할 키 버전을 예약해야 합니다. 예약된 기간 동안 키 버전을 복원하여 폐기를 취소할 수 있습니다. 자세한 내용은 키 버전 폐기 및 복원을 참고하세요.
폐기되도록 예약된 키 버전은 사용할 수 없으며 해당 키 버전으로 보호되는 관리 Lustre 인스턴스는 일시 중지됩니다. 정지된 인스턴스에 관한 자세한 내용은 사용할 수 없는 키를 참고하세요.
키 버전이 폐기되면 복원할 수 없습니다. 인스턴스가 영구적으로 정지된 상태로 유지됩니다. Managed Lustre 인스턴스에서 사용할 수 있는 유일한 작업은 인스턴스 삭제입니다.
사용할 수 없는 키
다음과 같은 이유로 키를 사용할 수 없게 될 수 있습니다.
- 키가 사용 중지됩니다.
- 키가 폐기되었거나 폐기될 예정입니다.
- 서비스 에이전트에서 필요한 권한이 삭제됩니다.
- Cloud KMS 키의 프로젝트에서 결제가 사용 중지되었으며 1시간 이상 사용 중지된 상태로 유지됩니다.
- 외부 키에 1시간 넘게 연결할 수 없습니다.
이러한 경우 이벤트가 발생한 후 몇 분 이내에 관리형 Lustre 인스턴스가 종료되고 인스턴스 상태가 SUSPENDED로 설정됩니다.
키를 다시 사용할 수 있도록 하면 SUSPENDED 인스턴스를 복구할 수 있습니다.
계정이 정지될 수 있는 이유는 다음과 같습니다.
| 키 작업 | 인스턴스 상태 | 정지 사유 | 다시 사용 설정할 수 있음 |
|---|---|---|---|
| 사용 중지 | SUSPENDED |
KEY_DISABLE |
예 |
| 폐기 예약 | SUSPENDED |
KEY_DESTROY_SCHEDULED |
예 |
| 폐기 | SUSPENDED |
KEY_DESTROY |
아니요 |
| 권한 삭제 | SUSPENDED |
PERMISSION_DENIED |
예 |
| 1시간 동안 결제 사용 중지 | SUSPENDED |
BILLING_DISABLED |
예 |
| EKM 키에 1시간 동안 연결할 수 없음 | SUSPENDED |
EKM_KEY_UNREACHABLE |
예 |
인스턴스가 일시중지되면 다음 사항이 적용됩니다.
- 인스턴스 업데이트 및 가져오기/내보내기와 같은 장기 실행 작업이 차단되고
FAILED_PRECONDITION오류가 반환됩니다. - 서버 노드가 종료될 때까지 I/O 작업이 응답을 중지합니다. 이 과정은 30분 이내에 완료됩니다.
- 허용되는 유일한 장기 실행 작업은
DeleteInstance입니다.
4개월 이상 정지된 인스턴스는 재개할 수 없습니다.
일시중지된 인스턴스에 대한 청구
키를 사용할 수 없어 Managed Lustre 인스턴스가 SUSPENDED 상태가 되면 인스턴스에 대한 요금이 계속 청구됩니다. 정지 상태에서는 청구가 일시중지되지 않습니다. 인스턴스에 요금이 청구되지 않도록 하려면 인스턴스를 삭제해야 합니다.
사용 중인 키 버전에 대해서는 Cloud KMS에서 별도로 청구합니다.
키 사용량 보기 및 키 버전 나열
Cloud KMS 키로 보호되는 조직 내의 Google Cloud 리소스를 볼 수 있습니다. 자세한 내용은 키 사용량 보기를 참고하세요.
관리형 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)"
각 항목의 의미는 다음과 같습니다.
- ORGANIZATION_ID는 조직의 숫자 ID입니다. 조직 리소스 ID 가져오기를 참고하세요.
키 인벤토리 페이지에서 주요 정보를 확인할 수도 있습니다.