顧客管理の暗号鍵(CMEK)
デフォルトでは、 Google Cloud は、Google が管理する暗号鍵を使用して、保存されているデータを自動的に暗号化します。
データを保護する鍵について特定のコンプライアンス要件や規制要件がある場合は、Document AI に顧客管理の暗号鍵(CMEK)を使用できます。Google がデータを保護する暗号鍵を管理するのではなく、ユーザーが Cloud Key Management Service(KMS)で制御、管理する鍵を使用して、Document AI プロセッサを保護します。
このガイドでは、Document AI の CMEK について説明します。CMEK 全般についての詳細は、Cloud Key Management Service のドキュメントをご覧ください。
前提条件
Document AI サービス エージェントには、使用する鍵に対する Cloud KMS CryptoKey Encrypter/Decrypter ロールが必要です。
次の例では、Cloud KMS 鍵へのアクセスを提供するロールを付与します。
gcloud
gcloud kms keys add-iam-policy-binding key \ --keyring key-ring \ --location location \ --project key_project_id \ --member serviceAccount:service-project_number@gcp-sa-prod-dai-core.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
key を鍵の名前に置き換えます。key-ring は、鍵が配置されている鍵リングの名前に置き換えます。location は、鍵リングの Document AI のロケーションに置き換えます。key_project_id は、鍵リングのプロジェクトに置き換えます。project_number は、プロジェクト番号に置き換えます。
C#
詳細については、Document AI C# API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Document AI Go API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Document AI Java API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Document AI Node.js API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Document AI PHP API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Document AI Python API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Document AI Ruby API のリファレンス ドキュメントをご覧ください。
Document AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
CMEK の使用
暗号化設定は、プロセッサを作成するときに使用できます。CMEK を使用するには、[CMEK] オプションを選択し、鍵を選択します。
CMEK 鍵は、プロセッサとその子リソースに関連付けられたすべてのデータに使用されます。プロセッサに送信されるすべての顧客関連データは、ディスクに書き込む前に指定されたキーで自動的に暗号化されます。
プロセッサを作成した後に、その暗号化設定を変更することはできません。別のキーを使用するには、新しいプロセッサを作成する必要があります。
外部鍵
Cloud External Key Manager(EKM)を使用して、外部鍵を作成して管理し、 Google Cloud内のデータを暗号化できます。
Cloud EKM 鍵を使用する場合、Google は外部管理鍵の可用性をコントロールできません。外部で管理されている鍵で暗号化されたリソースへのアクセスをリクエストし、その鍵が利用できない場合、Document AI はリクエストを拒否します。鍵が使用可能になってからリソースにアクセスできるようになるまでに、最大 10 分の遅延が生じる場合があります。
外部鍵を使用する際のその他の考慮事項については、EKM の考慮事項をご覧ください。
CMEK でサポートされるリソース
リソースをディスクに保存するときに、顧客データがリソースの一部として保存されている場合、Document AI はまず CMEK 鍵を使用してコンテンツを暗号化します。
リソース | 暗号化されたマテリアル |
---|---|
Processor |
該当なし - ユーザーデータなし。ただし、プロセッサの作成時に CMEK 鍵を指定する場合は、有効な鍵である必要があります。 |
ProcessorVersion |
すべて |
Evaluation |
すべて |
CMEK 対応の API
暗号化に CMEK 鍵を使用する API には、次のようなものがあります。
メソッド | 暗号化 |
---|---|
processDocument |
なし - ディスクにデータは保存されません。 |
batchProcessDocuments |
データは一時的にディスクに保存され、エフェメラル キーを使用して暗号化されます(CMEK 準拠をご覧ください)。 |
trainProcessorVersion |
トレーニングに使用されるドキュメントは、指定された KMS/CMEK 鍵を使用して暗号化されます。 |
evaluateProcessorVersion |
評価は、指定された KMS/CMEK 鍵を使用して暗号化されます。 |
暗号化されたリソースにアクセスする API リクエストは、鍵が無効になっているか、到達できない場合、失敗します。以下に例を示します。
メソッド | 復号 |
---|---|
getProcessorVersion |
顧客データを使用してトレーニングされたプロセッサ バージョンは暗号化されます。アクセスには復号が必要です。 |
processDocument |
暗号化されたプロセッサ バージョンを使用してドキュメントを処理するには、復号が必要です。 |
Import Documents |
暗号化されたプロセッサ バージョンを使用して auto-labeling が有効になっているドキュメントをインポートするには、復号が必要です。 |
CMEK と Cloud Storage
batchProcess
などの API は、Cloud Storage バケットの読み取りと書き込みを行うことができます。
Document AI によって Cloud Storage に書き込まれるデータは、バケットに構成された暗号鍵を使用して暗号化されます。この鍵は、プロセッサの CMEK 鍵とは異なる場合があります。
詳細については、Cloud Storage の CMEK のドキュメントをご覧ください。