使用客户管理的加密密钥保护模型

BigQuery ML 支持客户管理的加密密钥 (CMEK)。除了 BigQuery 提供的默认加密外,客户现在还可以开始使用自己的 Cloud Key Management Service 密钥来加密机器学习模型。此外,我们还支持加密导入的 TensorFlow 模型。

详细了解如何在 BigQuery 中使用 Cloud KMS 密钥保护数据

使用 Cloud KMS 密钥创建加密模型

要创建加密模型,请使用 CREATE MODEL 语句并在训练选项中指定 KMS_KEY_NAME 等。

CREATE MODEL my_dataset.my_model
OPTIONS(
  model_type='linear_reg',
  input_label_cols=['your_label'],
  kms_key_name='projects/my_project/locations/my_location/keyRings/my_ring/cryptoKeys/my_key')
AS SELECT * FROM my_dataset.my_data

同样的语法也适用于 TensorFlow 模型导入。

CREATE MODEL my_dataset.my_model
OPTIONS(
  model_type='tensorflow',
  path='gs://bucket/path/to/saved_model/*',
  kms_key_name='projects/my_project/locations/my_location/keyRings/my_ring/cryptoKeys/my_key')
AS SELECT * FROM my_dataset.my_data

限制

加密机器学习模型时,客户管理的加密密钥具有以下限制:

确定模型是否受 Cloud KMS 保护

当模型受 Cloud KMS 密钥保护时,可使用 bq show 命令显示密钥。可在 kmsKeyName 下找到用于加密的密钥。

bq show -m my_dataset.my_model

您还可以使用 Google Cloud 控制台找到加密模型的 Cloud KMS 密钥。详细了解如何在 BigQuery 中显示 Cloud KMS 密钥

更改加密模型的 Cloud KMS 密钥

使用带有 --destination_kms_key 标志的 bq update 命令更改受 Cloud KMS 保护的模型的密钥。

bq update --destination_kms_key \
projects/my_project/locations/my_location/keyRings/my_ring/cryptoKeys/my_key \
-t my_dataset.my_model

详细了解如何在 BigQuery 中更改加密密钥

项目和数据集的默认 Cloud KMS 密钥

用户可以在 BigQuery 中的项目级层和/或数据集级层设置默认 Cloud KMS 密钥。在 BigQuery ML 中,创建模型时也支持这些默认密钥。当项目具有默认 Cloud KMS 密钥时,在此项目中创建的模型将自动使用该默认密钥进行加密。用户还可以在训练选项中指定自己的密钥来加密模型。这同样适用于具有默认密钥的数据集。

详细了解如何在 BigQuery 中设置数据集默认密钥

其他 BigQuery ML 函数

无需指定其加密密钥,所有其他 BigQuery 函数即可与加密模型一起使用,这些函数包括评估函数(ML.EVALUATEML.ROC_CURVEML.CONFUSION_MATRIX)、预测函数 (ML.PREDICT)、模型和功能检查函数(ML.TRAINING_INFOML.FEATURE_INFOML.WEIGHTSML.CENTROIDS)。