기본적으로 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로 보호됩니다.
- 파일 데이터
- 파일 이름과 같은 파일 시스템 메타데이터
제한사항
다음과 같은 제한사항이 적용됩니다.
CMEK로 보호되는 Managed Lustre 인스턴스의 동적 프로비저닝은 Google Kubernetes Engine에서 지원되지 않지만 정적 프로비저닝은 지원됩니다.
Cluster Toolkit은 CMEK로 보호되는 Managed Lustre 인스턴스를 지원하지 않습니다.
VPC 서비스 제어 경계 내에서 CMEK로 보호되는 Managed Lustre 인스턴스를 만들 때 Cloud KMS 키는 다음 중 하나여야 합니다.
- 동일한 VPC 서비스 제어 경계 내에 있거나
- 이그레스 규칙을 통해 액세스할 수 있습니다. 자세한 내용은 고객 관리 암호화 키 (CMEK)와 함께 VPC 서비스 제어 사용 을 참조하세요.
Cloud KMS 키 만들기
CMEK가 사용 설정된 Lustre 인스턴스를 만들려면 먼저 Cloud KMS 키링과 Cloud KMS 키가 있어야 합니다.
Managed Lustre는 세 가지 보호 수준을 지원합니다.
- 소프트웨어 (
SOFTWARE) - 하드웨어 (
HSM) - 인터넷을 통한 외부 (
EXTERNAL)
키를 만들 때 Managed Lustre 인스턴스가 포함된 프로젝트와 다른 프로젝트에서 Cloud KMS 키를 만드는 것이 좋습니다. 업무 분장을 참조하세요.
Cloud KMS 키는 만들려는 Managed Lustre 인스턴스와 동일한 리전에서 만들어야 합니다.
키를 만들려면 다음 안내를 따르세요.
- 키링이 아직 없으면 키링을 만듭니다.
- Cloud KMS 키를 만듭니다.
Managed Lustre 서비스 에이전트에 IAM 권한 부여
Managed Lustre는 서비스 에이전트를 사용하여 리소스에 액세스하고 사용자를 대신하여 작업을 수행합니다. 서비스 에이전트에 액세스 권한을 관리할 수 있는 IAM 역할을 부여합니다. Managed Lustre 서비스 에이전트는 Managed Lustre 인스턴스를 만들 때 자동으로 생성됩니다.
서비스 에이전트 ID는
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com 형식입니다.
콘솔을 사용하여 CMEK로 보호되는 Managed Lustre 를 만드는 경우 이 섹션을 건너뛸 수 있습니다. Google Cloud 콘솔은 인스턴스 생성 흐름의 일부로 필요한 권한을 부여합니다. Google Cloud
서비스 에이전트 만들기 또는 가져오기
Managed Lustre 서비스 에이전트가 아직 없는 경우
프로젝트에서 Managed Lustre 인스턴스를 만든 적이 없다면 다음 명령어를 실행하여 서비스 에이전트를 수동으로 만듭니다.
gcloud beta services identity create \
--service=lustre.googleapis.com \
--project=PROJECT_NUMBER_OR_ID
PROJECT_NUMBER_OR_ID를 Managed Lustre 인스턴스를 만들려는 프로젝트의 프로젝트 번호 또는 ID로 바꿉니다. 출력은 다음과 비슷합니다.
Service identity created: service-1234567890@gcp-sa-lustre.iam.gserviceaccount.com
다음 단계에서 사용할 서비스 에이전트 ID의 값을 복사합니다.
Managed Lustre 인스턴스를 이미 만든 경우
서비스 에이전트 ID를 구성하려면 프로젝트 번호를 가져옵니다. A 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는 키로 작업을 수행할 수 있는 승인이 필요합니다.
Managed 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: 이전 단계의 Managed 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 키는 만들려는 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 콘솔
콘솔을 사용하여 CMEK로 보호되는 인스턴스를 만들려면 인스턴스 만들기의 단계를 따르세요. Google Cloud 콘솔의 인스턴스 만들기 페이지에서 다음 안내를 따르세요. Google Cloud
암호화 섹션에서 Cloud KMS 키 를 선택합니다.
키 관리 유형으로 Cloud KMS 를 선택하고 키를 선택합니다. 키가 다른 프로젝트에 있는 경우 (권장) 프로젝트 전환을 클릭하고 키 프로젝트를 선택한 후 키를 선택합니다. Cloud KMS 키는 만들려는 Managed Lustre 인스턴스와 동일한 리전에 있어야 합니다.
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)"
각 항목의 의미는 다음과 같습니다.
- ORGANIZATION_ID는 조직의 숫자 ID입니다. 조직 리소스 ID 가져오기를 참조하세요.
키 인벤토리 페이지에서 키 정보를 볼 수도 있습니다.