デフォルトでは、 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. \
--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 バケットから読み取り、Cloud Storage バケットに書き込むことができます。
Document AI によって Cloud Storage に書き込まれたデータは、バケットに構成された暗号鍵を使用して暗号化されます。これは、プロセッサの CMEK 鍵とは異なる場合があります。
詳細については、Cloud Storage の CMEK ドキュメントをご覧ください。