이 페이지에서는 고객 관리 암호화 키(CMEK)를 사용하여 서비스 확장 프로그램 플러그인에 저장된 콘텐츠를 암호화하는 방법을 설명합니다.
개요
기본적으로 서비스 확장 프로그램은 저장된 고객 콘텐츠를 암호화합니다. 서비스 확장 프로그램은 사용자의 추가 작업 없이 암호화를 처리합니다. 이 옵션을 Google 기본 암호화 라고 합니다.
암호화 키를 제어하려면 서비스 확장 프로그램을 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키 (CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계 를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키 (KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 서비스 확장 프로그램 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키 (CMEK)를 참조하세요.
모든 암호화 작업은 키 유형과 관계없이 키를 소유한 Google Cloud 프로젝트 에 청구됩니다. 가격 책정에 대한 자세한 내용은 Cloud KMS 가격 책정을 참조하세요.
키 만들기 및 권한 부여
다음 안내에서는 플러그인 키를 만들고 키로 플러그인 데이터를 암호화 및 복호화할 수 있는 권한을 부여하는 방법을 설명합니다.
키를 관리할 Google Cloud 프로젝트에서 다음을 수행합니다.
다음 옵션 중 하나를 사용하여 키링과 키를 만듭니다.
Cloud KMS 키 위치는 암호화할 플러그인의 위치와 일치해야 합니다.
서비스 확장 프로그램 서비스 계정은 서비스 확장 프로그램 프로젝트에 있어야 합니다. 서비스 계정 이름은
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com, 여기서PROJECT_NUMBER는 서비스 확장 프로그램이 실행되는 Google Cloud 프로젝트의 프로젝트 번호 입니다.서비스 계정은 서비스 확장 프로그램 프로젝트에서 첫 번째 플러그인을 만들 때 자동으로 생성됩니다. 아직 프로젝트에서 플러그인을 만들지 않은 경우 다음 명령어를 실행하여 서비스 계정을 만듭니다.
gcloud beta services identity create \ --service=networkactions.googleapis.com \ --project=PROJECTPROJECT를 서비스 확장 프로그램이 실행되는 프로젝트의 ID로 바꿉니다.
생성한 키에 대해 서비스 확장 프로그램 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할 (
roles/cloudkms.cryptoKeyEncrypterDecrypter)을 부여합니다.콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
생성된 키를 선택합니다.
서비스 확장 프로그램 서비스 계정에 대한 액세스 권한을 부여합니다.
- 정보 패널 표시 를 선택합니다.
- 구성원 추가 를 클릭합니다.
- 서비스 확장 프로그램 서비스 계정을 추가합니다. 서비스
계정은
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com입니다. - 역할 선택에서 Cloud KMS > Cloud KMS CryptoKey 암호화/복호화를 선택합니다.
- 저장 을 클릭합니다.
이전 단계를 반복하여 플러그인 생성자의 계정에 대한 액세스 권한을 부여합니다.
키 관리 페이지로 돌아가서 키를 다시 선택합니다.
정보 패널 표시 를 선택합니다. 역할/구성원 열에 역할이 표시됩니다.
gcloud
서비스 확장 프로그램 서비스 계정에 대한 액세스 권한을 부여합니다.
gcloud kms keys add-iam-policy-binding명령어를 실행합니다.gcloud kms keys add-iam-policy-binding [--project=PROJECT] KEY_NAME \ --location LOCATION --keyring=KEYRING_NAME \ --member=serviceAccount:service-PROJECT-NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter다음을 바꿉니다.
PROJECT: 키가 포함된 프로젝트의 IDKEY_NAME: 키 이름LOCATION: 키의 위치KEYRING_NAME: 키링 이름PROJECT-NUMBER: 프로젝트의 프로젝트 번호 Google Cloud
member를 플러그인 생성자의 계정으로 설정하여 이전 단계를 반복합니다.
플러그인을 만들거나 업데이트할 때 CMEK 키를 지정합니다. 키는 플러그인 이미지 및 구성 데이터에 암호화를 제공합니다. 다른 플러그인 데이터는 Google 기본 암호화로 보호됩니다.
자동 재암호화
KMS 키의 기본 버전이 수동 사용자 변경 또는 자동 순환으로 변경되면 키로 보호되는 플러그인 데이터 가 새 키 버전으로 자동으로 다시 암호화됩니다.
키 추적
키 추적을 사용하여 키가 보호하는 플러그인 리소스를 나열할 수 있습니다. 자세한 내용은 키 사용량 보기를 참조하세요.
Cloud Key Management Service 할당량 및 서비스 확장 프로그램
다음과 같은 작업에서 서비스 확장 프로그램에 CMEK 키를 사용하면 프로젝트에서 Cloud KMS 암호화 요청 할당량을 사용할 수 있습니다.
- CMEK로 보호되는 플러그인 만들기 또는 업데이트
- 새 버전 추가 또는 CMEK로 보호되는 플러그인의 기본 버전 변경
plugin_config_data필드가 설정된 CMEK로 보호되는 플러그인의 버전 나열- 확장 프로그램에 플러그인 연결
연결된 플러그인은 시간이 지남에 따라 복호화 작업도 발생시킵니다.
하드웨어 (Cloud HSM) 또는 외부 (Cloud EKM) 키를 사용하는 경우 CMEK 키를 사용하는 암호화 및 복호화 작업은 Cloud KMS 할당량에 영향을 미칩니다.
CMEK로 암호화된 플러그인에 대한 액세스 권한 삭제
CMEK로 암호화된 플러그인에 대한 액세스 권한을 삭제하는 방법에는 여러 가지가 있습니다.
- 콘솔 또는 gcloud CLI를 사용하여 서비스 확장 프로그램 서비스 계정에서 Cloud KMS CryptoKey 암호화/복호화 역할 을 취소합니다.Google Cloud 권한 변경사항은 몇 초 안에 적용되지만 키가 취소된 후 플러그인의 모든 제공 복제본이 트래픽 제공을 중지하는 데 수십 분이 걸릴 수 있습니다.
- 고객 관리 암호화 키를 일시적으로 사용 중지합니다.
- CMEK 키를 영구적으로 폐기합니다.
키를 사용 중지하거나 폐기하기 전에 서비스 확장 프로그램 서비스 계정에서 권한을 취소하는 것이 좋습니다.
액세스 권한 삭제의 영향
CMEK로 보호되는 데이터는 Artifact Registry에서 다운로드한 이미지와 직접 제공된 플러그인 구성 데이터 (plugin_config_data 필드를 통해)로 구성됩니다.
플러그인의 암호화 키를 사용 중지하거나 폐기하면 CMEK로 보호되는 모든 플러그인 데이터에 몇 분 이내에 액세스할 수 없게 됩니다. 키가 취소된 후 플러그인의 모든 제공 복제본이 트래픽 제공을 중지하는 데 수십 분이 걸릴 수 있습니다.
플러그인 이름, 설명, 라벨 또는 로깅 구성과 같은 플러그인 메타데이터는 계속 액세스할 수 있습니다.
따라서 활성 플러그인 (확장 프로그램에 연결된 플러그인)을 보호하는 키에 대한 액세스 권한을 삭제하면 플러그인이 트래픽을 제공할 수 없게 됩니다. 플러그인에 대한 모든 요청이 실패합니다.
플러그인 호출이 실패하면 확장 프로그램의 동작은 fail_open 필드에 따라 달라집니다.
- 필드가
true로 설정된 경우 플러그인 호출이 실패했음을 나타내지 않고 요청이 대상 서비스로 진행됩니다. - 필드가
false로 설정된 경우 요청이 대상 서비스에 도달하지 않습니다.
제한사항
플러그인에 설정된 CMEK 보호는 서비스 확장 프로그램으로 제한됩니다.
다른 Google 제품에서 플러그인 리소스를 보호하려면 해당 제품을 통해 CMEK를 사용 설정하세요. Artifact Registry에 업로드된 플러그인 이미지의 경우 Artifact Registry용 CMEK를 설정합니다. 플러그인에서 생성된 로그를 보호하려면 Cloud Logging용 CMEK를 구성합니다.
플러그인의 암호화 모드 (Google 관리 또는 CMEK)는 변경할 수 없습니다. 하지만 다른 KMS 키를 사용하도록 플러그인을 업데이트할 수 있습니다.
리전 플러그인만 지원됩니다. 또한 플러그인은 플러그인과 동일한 리전의 키로만 암호화할 수 있습니다.
다음 단계
- 플러그인 만들기에 대해 자세히 알아보세요.
- CMEK 자세히 알아보기
- 기본 저장 데이터 암호화에 대해 자세히 알아보기