顧客管理の暗号鍵でモデルを保護する
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
制限事項
顧客管理の暗号鍵には、機械学習モデルを暗号化する際に次の制限があります。
Global
リージョンの CMEK 鍵は、DNN、ワイド&ディープ、オートエンコーダ、ブーストツリー モデルの作成時にはサポートされません。Global
リージョンの CMEK 鍵とマルチリージョン(eu
、us
など)の CMEK 鍵は、AutoML Table モデルの作成時にはサポートされません。
モデルが Cloud KMS によって保護されているかどうかを確かめる
モデルが Cloud KMS 鍵で保護されている場合、bq show
コマンドで鍵を表示できます。暗号化で使用する鍵は kmsKeyName
の下にあります。
bq show -m my_dataset.my_model
Google Cloud コンソールを使用して、暗号化されたモデルの Cloud KMS 鍵を確認することもできます。詳しくは、BigQuery で Cloud KMS 鍵を表示する方法をご覧ください。
暗号化されたモデルの Cloud KMS 鍵を変更する
Cloud KMS で保護されているモデルの鍵を変更するには、--destination_kms_key
フラグを指定して bq update
コマンドを使用します。
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 関数
評価関数(ML.EVALUATE
、ML.ROC_CURVE
、ML.CONFUSION_MATRIX
)、予測関数(ML.PREDICT
)、モデル検査と機能検査の関数(ML.TRAINING_INFO
、ML.FEATURE_INFO
、ML.WEIGHTS
、ML.CENTROIDS
)を含む他のすべての BigQuery 関数は、暗号鍵を指定することなく、暗号化されたモデルで使用できます。