고객 관리 암호화 키로 데이터 암호화

이 페이지에서는 Filestore 인스턴스백업에서 자체 암호화 키를 사용하여 데이터를 암호화하는 방법을 보여줍니다.

기본적으로 Google Cloud는 Google Cloud에서 관리하는 암호화 키를 사용하여 자동으로 저장 데이터를 암호화합니다. 데이터를 보호하는 키를 더 세밀하게 제어해야 하는 경우 Filestore용 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다.

고객 관리 암호화 키 옵션

Cloud Key Management Service에서는 HSM 클러스터에 또는 Cloud 외부 키 관리자(Cloud EKM) 외부에 소프트웨어 키로 저장할 수 있는 고객 관리 암호화 키(CMEK)를 지원합니다. 몇 가지 옵션이 제공됩니다.

자세한 내용은 Cloud Key Management Service를 참조하세요.

Cloud 외부 키 관리자

이제 Filestore에 대한 Cloud EKM 지원이 정식 버전(GA)으로 제공됩니다. 자세한 내용은 Cloud 외부 키 관리자를 참조하세요.

EKM 서비스 중단

기본적으로 외부 키는 타사에서 관리되며, 이 경우 Google Cloud는 키 가용성에 대한 책임이 없습니다.

Cloud Key Management Service(Cloud KMS)외부 키 관리자(EKM)에 의해 외부 키에 연결할 수 없다는 알림이 표시되면 사용자에게 ekm_key_unreachable_detected 알림이 수신됩니다. 최대 1시간 동안 사용자의 인스턴스 작업 액세스가 제한됩니다. 1시간 후에도 키 상태가 변경되지 않으면 다음 작업이 적용됩니다.

  • 키가 사용 중지됩니다.
  • 모든 암호화 및 복호화 작업이 실패합니다.
  • Filestore 인스턴스가 정지됩니다.

VM 재시작과 같은 계획되지 않은 이벤트가 발생할 때는 1시간 이전에 인스턴스 액세스가 중단될 수 있습니다.

연결할 수 없는 키 알림은 Filestore 인스턴스 세부정보 페이지에서 확인할 수 있습니다.

Filestore 인스턴스 페이지로 이동

또한 처음 보고된 알림의 1시간 이내에 수행된 경우 사용자에게 다음 작업에 대한 ekm_key_unreachable_detected 알림이 수신됩니다.

지원 등급

다음 표에서는 고객 관리 암호화 키를 지원하는 Filestore 서비스 등급을 보여줍니다.

등급 CMEK 지원
기본 HDD 아니요
기본 SSD 아니요
저용량 대역 영역
고용량 대역 영역(이전의 대규모 SSD)
Enterprise

인스턴스에 사용할 키링 및 키 만들기

키링과 키는 Filestore 인스턴스와 다른 프로젝트에 있을 수 있지만 위치는 같아야 합니다. Filestore에 사용할 Cloud KMS 키링 및 키가 이미 있으면 다음 섹션으로 건너뜁니다. 그렇지 않으면 대칭 암호화 키 만들기의 안내에 따라 키링 및 키를 만듭니다.

Filestore 서비스 계정에 키 액세스 권한 부여

고객 관리 암호화 키를 사용하는 Filestore 인스턴스를 만들려면 Filestore 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할(roles/cloudkms.cryptoKeyEncrypterDecrypter)이 있어야 합니다.

  1. 프로젝트에 Filestore 인스턴스를 처음 만들 때 Filestore 서비스 계정이 생성됩니다. 아직 Filestore 서비스 계정이 없으면 다음 services identity create 명령어를 실행합니다.

    gcloud beta services identity create --service=file.googleapis.com --project=INSTANCE_PROJECT_NUMBER_OR_ID
    

    INSTANCE_PROJECT_NUMBER_OR_ID를 Filestore 인스턴스를 만들려는 프로젝트 번호 또는 프로젝트 ID로 바꿉니다.

  2. projects add-iam-policy-binding 명령어를 실행하여 Filestore 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 할당합니다.

    gcloud projects add-iam-policy-binding KMS_PROJECT_NUMBER_OR_ID \
        --member serviceAccount:service-INSTANCE_PROJECT_NUMBER@cloud-filer.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    다음을 바꿉니다.

    • KMS_PROJECT_NUMBER_OR_ID를 사용하려는 Cloud KMS 키가 포함된 프로젝트의 프로젝트 번호 또는 ID로 바꿉니다.
    • INSTANCE_PROJECT_NUMBER를 Filestore 인스턴스를 만들려는 프로젝트의 프로젝트 번호(프로젝트 ID가 아님)로 바꿉니다.

Cloud KMS 키를 사용하는 인스턴스 만들기

Google Cloud 콘솔

데이터 암호화에 Cloud KMS 키를 사용하는 인스턴스를 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Filestore 인스턴스 페이지로 이동합니다.

    Filestore 인스턴스 페이지로 이동

  2. 인스턴스 만들기를 클릭합니다.

  3. CMEK를 지원하는 인스턴스 등급을 선택하고 평소와 같이 다른 모든 필수 필드와 선택적 필드를 입력합니다.

  4. 고급 옵션 표시를 클릭합니다.

  5. 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택합니다.

  6. 인스턴스에 사용할 Cloud KMS 키를 선택합니다.

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

gcloud CLI

데이터 암호화에 Cloud KMS 키를 사용하는 Filestore 인스턴스를 만들려면 filestore instances create 명령어에서 --kms-key 플래그를 지정합니다.

gcloud filestore instances create nfs-server \
    --tier=<var>TIER</var> \
    --location=us-central1 \
    --file-share=name="vol1",capacity=1TiB \
    --network=name="default" \
    --kms-key=KMS_KEY

다음을 바꿉니다.

  • TIER를 고객 관리 암호화 키를 지원하는 Filestore 등급으로 바꿉니다.
  • KMS_KEY를 사용할 Cloud KMS 키의 정규화된 이름으로 바꿉니다. 또는 다음 형식으로 각 인수를 개별적으로 지정할 수 있습니다.
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID

다음을 바꿉니다.

  • KMS_KEY를 Cloud KMS 키 이름으로 바꿉니다.
  • KMS_PROJECT_NUMBER_OR_ID를 키가 생성된 프로젝트 번호 또는 프로젝트의 ID로 바꿉니다.
  • KMS_KEY_RING을 키링 이름으로 바꿉니다.
  • KMS_REGION을 키링 리전으로 바꿉니다. 키링과 인스턴스는 같은 리전에 있어야 합니다.

키 목록 가져오기

kms keys list 명령어를 실행하여 키 목록을 가져올 수 있습니다.

gcloud kms keys list \
    --project=KMS_PROJECT_NUMBER_OR_ID \
    --keyring=KEY_RING \
    --location=KMS_REGION

다음을 바꿉니다.

  • KMS_PROJECT_NUMBER_OR_ID를 키가 생성된 프로젝트 번호 또는 프로젝트의 ID로 바꿉니다.
  • KEY_RING을 키링 이름으로 바꿉니다.
  • KMS_REGION을 키링 리전으로 바꿉니다.

출력의 이름 열은 기존 키의 정규화된 이름을 제공합니다. 예를 들면 다음과 같습니다.

projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key

인스턴스 키 정보 가져오기

특정 Cloud KMS 키를 사용하는 인스턴스 목록

instances list 명령어를 실행하여 특정 키를 사용하는 Filestore 인스턴스를 나열할 수 있습니다.

gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"

KMS_KEY를 사용하려는 키의 정규화된 이름으로 바꿉니다.

예:

gcloud filestore instances list \
    --filter="kmsKeyName=projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key"

출력 형식은 다음과 같습니다.

INSTANCE_NAME LOCATION    TIER       CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS   STATE CREATE_TIME
nfs-server    us-central1 ENTERPRISE 1024        vol1            10.166.108.2 READY 2021-08-12T11:38:56

인스턴스의 Cloud KMS 키 정보 가져오기

다음 방법 중 하나를 사용하여 Filestore 인스턴스의 Cloud KMS 키 정보를 가져옵니다.

Google Cloud 콘솔

  1. Filestore 인스턴스 페이지로 이동합니다.

    Filestore 인스턴스 페이지로 이동

  2. 인스턴스 ID를 클릭하여 인스턴스 세부정보 페이지를 엽니다.

  3. 개요 탭을 클릭합니다.

인스턴스에서 Google 관리 암호화 키 대신 Cloud KMS 키를 사용하여 데이터를 암호화하면 키 이름이 암호화 키 필드에 표시됩니다.

gcloud CLI

다음 instances describe 명령어를 실행합니다.

gcloud filestore instances describe INSTANCE_ID \
   --location=INSTANCE_LOCATION

다음을 바꿉니다.

  • INSTANCE_ID를 정보를 가져올 Filestore 인스턴스의 인스턴스 ID로 바꿉니다.
  • INSTANCE_LOCATION을 인스턴스가 있는 리전 또는 영역으로 바꿉니다.

출력 형식은 다음과 같습니다.

createTime: '2021-08-12T11:38:56.851157387Z'
fileShares:
- capacityGb: '1024'
  name: vol1
kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
labels:
  key: val
name: projects/consumer-project/locations/us-central1/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.100.2
  modes:
  - MODE_IPV4
  network: network
  reservedIpRange: 10.166.108.0/23
state: READY
tier: ENTERPRISE

인스턴스에서 사용하는 Cloud KMS 키 중지 또는 폐기

Cloud KMS 키 상태 변경이 감지되면 인스턴스에서 데이터 제공을 자동으로 중지합니다. 몇 가지 예를 들면 다음과 같습니다.

  • 키 또는 키 버전을 사용 중지합니다.
  • 키 또는 키 버전을 폐기합니다.
  • 키의 권한 수정

이러한 감지는 일반적으로 키 상태 변경 후 몇 분 이내에 발생하지만 경우에 따라 한 시간까지 걸릴 수 있습니다.

인스턴스가 중지되면 파일 공유 데이터와 스냅샷에 대한 모든 액세스가 차단됩니다. 중지된 인스턴스가 삭제될 때까지 계속 요금이 청구됩니다.

중지된 인스턴스 시작

중지된 Filestore 인스턴스에서 데이터 암호화에 Cloud KMS 키를 사용하는 경우 인스턴스를 다시 시작하기 전에 키의 모든 키 버전을 사용 설정하거나 복원해야 합니다.

Cloud KMS 키 상태가 사용 설정되면 인스턴스가 키 변경을 자동으로 감지하고 추가 작업 없이 일반적으로 20분 이내에 다시 시작됩니다.

백업 체인을 위한 CMEK 지원

CMEK를 사용하여 Filestore 인스턴스뿐만 아니라 백업 체인도 암호화할 수 있습니다.

백업 체인은 단일 버킷 및 리전에 있습니다. 소스 인스턴스 외부의 리전에 백업 데이터를 저장하고 암호화하려면 사용자가 인스턴스용과 백업 체인용의 두 가지 개별 CMEK를 적용해야 합니다. 일부 요구사항은 다음과 같습니다.

  • CMEK는 암호화하는 백업 체인과 동일한 리전에 있어야 합니다.

  • 단일 CMEK는 백업 체인이 저장되고 결합하거나 대체할 수 없는 버킷에 적용됩니다.

  • 새 CMEK를 사용하여 백업을 만들려면 먼저 기존 백업 체인 전체를 삭제해야 합니다.

기본 등급 백업에는 CMEK 지원이 제공되지 않습니다.

자세한 내용은 백업을 참조하세요.

다음 단계