顧客管理の暗号鍵でモデルを保護する

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 鍵を変更する

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.EVALUATEML.ROC_CURVEML.CONFUSION_MATRIX)、予測関数(ML.PREDICT)、モデル検査と機能検査の関数(ML.TRAINING_INFOML.FEATURE_INFOML.WEIGHTSML.CENTROIDS)を含む他のすべての BigQuery 関数は、暗号鍵を指定することなく、暗号化されたモデルで使用できます。