BigQuery ML 支持客户管理的加密密钥 (CMEK)。除了 BigQuery 提供的默认加密外,客户现在还可以开始使用自己的 Cloud KMS 密钥来加密机器学习模型。此外,我们还支持加密导入的 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
限制
加密机器学习模型时,客户管理的加密密钥具有以下限制:
创建 DNN、Wide & Deep、Autoencoder 和提升树模型时不支持
Global
区域 CMEK 密钥。AutoML Table 模型不支持使用 CMEK。
确定模型是否受 Cloud KMS 保护
当模型受 Cloud KMS 密钥保护时,可使用 bq show
命令显示密钥。可在 kmsKeyName
下找到用于加密的密钥。
bq show -m my_dataset.my_model
您还可以使用 Cloud Console 来查找加密模型的 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 ML 函数
无需指定其加密密钥,所有其他 BigQuery ML 函数即可与加密模型一起使用,这些函数包括评估函数(ML.EVALUATE
、ML.ROC_CURVE
、ML.CONFUSION_MATRIX
)、预测函数 (ML.PREDICT
)、模型和功能检查函数(ML.TRAINING_INFO
、ML.FEATURE_INFO
、ML.WEIGHTS
、ML.CENTROIDS
)。