客户管理的加密密钥 (CMEK)
默认情况下, Google Cloud 会使用 Google 管理的加密密钥自动加密静态数据。
如果您对保护数据的密钥有特定的合规性或监管要求,则可以将客户管理的加密密钥 (CMEK) 用于 Document AI。您的 Document AI 处理器使用由您在 Cloud Key Management Service (KMS) 中控制和管理的密钥进行保护,而不是由 Google 管理用于保护您的数据的加密密钥。
本指南介绍了适用于 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 合规性)。 |
reviewDocument |
待审核的文件会存储在使用所提供的 KMS/CMEK 密钥加密的 Cloud Storage 存储分区中。 |
trainProcessorVersion |
用于训练的文档会使用提供的 KMS/CMEK 密钥进行加密。 |
evaluateProcessorVersion |
评估会使用提供的 KMS/CMEK 密钥进行加密。 |
如果密钥已停用或无法访问,则用于访问加密资源的 API 请求会失败。示例如下:
方法 | 解密 |
---|---|
getProcessorVersion |
使用客户数据训练的处理器版本会被加密。访问需要解密。 |
processDocument |
使用加密处理器版本处理文档需要解密。 |
Import Documents |
使用加密的处理器版本导入启用了 auto-labeling 的文档需要解密。 |
CMEK 和 Cloud Storage
batchProcess
和 reviewDocument
等 API 可以从 Cloud Storage 存储分区读取和写入数据。
Document AI 写入 Cloud Storage 的所有数据都使用存储分区配置的加密密钥进行加密,该密钥可能与处理器的 CMEK 密钥不同。
如需了解详情,请参阅 Cloud Storage 的 CMEK 文档。