이 페이지에서는 Cloud Key Management Service(Cloud KMS)를 사용하여 래핑된 키를 만든 후 deidentify
및 reidentify
요청을 민감한 정보 보호의 Cloud Data Loss Prevention API로 보내는 데 사용하는 방법을 설명합니다.
암호화 키를 사용하여 콘텐츠를 익명화하고 재식별하는 프로세스를 가명처리(또는 토큰화)라고 합니다. 이 프로세스의 개념 정보는 가명처리를 참조하세요.
래핑된 키를 만들고, 콘텐츠를 토큰화하고, 토큰화된 콘텐츠를 재식별하는 방법을 보여주는 엔드 투 엔드 예시는 빠른 시작: 민감한 텍스트 익명화 및 재식별을 참조합니다.
시작하기 전에 단계를 제외한 5~10 분 후에 이 주제의 단계를 완료할 수 있습니다.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
키링 만들기
gcloud kms keyrings create "dlp-keyring" \ --location "global"
키를 만듭니다.
gcloud kms keys create "dlp-key" \ --location "global" \ --keyring "dlp-keyring" \ --purpose "encryption"
키링 및 키를 나열합니다.
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"
다음과 같은 출력이 표시됩니다.
NAME PURPOSE ALGORITHM PROTECTION_LEVEL LABELS PRIMARY_ID PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key ENCRYPT_DECRYPT GOOGLE_SYMMETRIC_ENCRYPTION SOFTWARE 1 ENABLED
이 출력에서
PROJECT_ID
는 프로젝트의 ID입니다.NAME
아래의 경로는 Cloud KMS 키의 전체 리소스 이름입니다. 익명화 및 재식별 요청에 이 항목이 필요하므로 기록해 둡니다.128, 192 또는 256비트 AES 키를 만듭니다. 다음 명령어는
openssl
을 사용하여 현재 디렉터리에 256비트 키를 만듭니다.openssl rand -out "./aes_key.bin" 32
aes_key.bin
파일이 현재 디렉터리에 추가됩니다.AES 키를 base64 문자열로 인코딩합니다.
base64 -i ./aes_key.bin
다음과 비슷한 출력이 표시됩니다.
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
암호화 키를 통한 데이터 토큰화 자세히 알아보기
래핑된 키를 만들고 콘텐츠를 토큰화하고 토큰화된 콘텐츠를 재식별하는 방법을 보여주는 엔드 투 엔드 예시를 살펴보세요.
이 래핑된 키를 허용하는 익명화 메서드에 대해 자세히 알아보고 코드 샘플을 살펴보세요.
1단계: 키링 및 키 만들기
이 절차를 시작하기 전에 민감한 정보 보호를 사용하여 익명화 및 재식별 요청을 처리할 위치를 결정합니다. Cloud KMS 키를 만들 때 global
또는 민감한 정보 보호 요청에 사용할 리전과 같은 리전에 저장해야 합니다.
그렇지 않으면 민감한 정보 보호 요청이 실패합니다.
민감한 정보 보호 위치에서 지원되는 위치 목록을 확인할 수 있습니다. 선택한 리전의 이름을 기록합니다(예: us-west1
).
이 절차에서는 모든 API 요청의 위치로 global
을 사용합니다. 다른 리전을 사용하려면 global
을 리전 이름으로 바꿉니다.
2단계: base64 인코딩 AES 키 만들기
이 섹션에서는 고급 암호화 표준(AES) 키를 만들고 base64 형식으로 인코딩하는 방법을 설명합니다.
3단계: Cloud KMS 키를 사용하여 AES 키 래핑
이 섹션에서는 1단계에서 만든 Cloud KMS 키를 사용하여 2단계에서 만든 base64 인코딩 AES 키를 래핑하는 방법을 설명합니다.
AES 키를 래핑하려면 curl
을 사용하여 Cloud KMS API projects.locations.keyRings.cryptoKeys.encrypt
에 다음 요청을 보냅니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
--request "POST" \
--header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
--header "content-type: application/json" \
--data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"
다음을 바꿉니다.
Cloud KMS에서 제공받는 응답은 다음 JSON과 유사합니다.
{ "name": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1", "ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "ciphertextCrc32c": "901327763", "protectionLevel": "SOFTWARE" }
이 출력에서 PROJECT_ID
는 프로젝트의 ID입니다.
제공되는 응답에서 ciphertext
값을 기록해 둡니다.
이것이 래핑된 키입니다.