使用客户管理的加密密钥保护模型
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
限制
加密机器学习模型时,客户管理的加密密钥具有以下限制:
创建 DNN、Wide & Deep、Autoencoder 或提升树模型时不支持
Global
区域 CMEK 密钥。创建 AutoML Tables 模型时,不支持
Global
区域 CMEK 密钥和多区域 CMEK 密钥(如eu
或us
)。
确定模型是否受 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 ML 函数
无需指定其加密密钥,所有其他 BigQuery 函数即可与加密模型一起使用,这些函数包括评估函数(ML.EVALUATE
、ML.ROC_CURVE
、ML.CONFUSION_MATRIX
)、预测函数 (ML.PREDICT
)、模型和功能检查函数(ML.TRAINING_INFO
、ML.FEATURE_INFO
、ML.WEIGHTS
、ML.CENTROIDS
)。