このページでは、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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Cloud KMS 管理者 (
roles/cloudkms.admin) -
Cloud KMS 暗号鍵の暗号化 (
roles/cloudkms.cryptoKeyEncrypter) キーリングの作成
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: projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: 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=PROJECT_ID: プロジェクトの ID。BASE64_ENCODED_AES_KEY: Base64 エンコードされた AES 鍵を作成するで返された base64 エンコード文字列。暗号鍵によるデータのトークン化の詳細を確認する。
ラップされた鍵の作成、コンテンツのトークン化、トークン化されたコンテンツの再識別の方法を示す例を確認する。
必要なロール
ラップされた AES 鍵の作成に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
キーリングと鍵を作成する
この手順を開始する前に、機密データの保護で匿名化と再識別リクエストを処理する場所を決定してください。Cloud KMS 鍵を作成するときは、global か、機密データの保護リクエストに使用するリージョンと同じリージョンに保管する必要があります。そうしないと、Sensitive Data Protection リクエストは失敗します。
サポートされているロケーションのリストについては、機密データの保護のロケーションをご覧ください。選択したリージョンの名前をメモします(例: us-west1)。
この手順では、すべての API リクエストのロケーションとして global を使用します。別のリージョンを使用する場合は、global をリージョン名に置き換えます。
base64 でエンコードされた AES 鍵を作成する
このセクションでは、Advanced Encryption Standard(AES)鍵を作成して、base64 形式でエンコードする方法について説明します。
Cloud KMS 鍵を使用して AES 鍵をラップする
このセクションでは、キーリングと鍵を作成するで作成した Cloud KMS 鍵を使用して、base64 でエンコードされた AES 鍵を作成するで作成した 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/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1",
"ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
"ciphertextCrc32c": "901327763",
"protectionLevel": "SOFTWARE"
}
この出力では、PROJECT_ID はプロジェクトの ID です。
レスポンスの ciphertext の値をメモします。それがラップされた鍵です。