1

私は最初にGoogle Cloud MLエンジンでネットワークを訓練しましたが、データを暗号化するために自分の暗号化キーを提供することで設定を少し安全にしようとしています。 the manualで説明したように、暗号化されていない場所に自分のカスタム暗号化キーを格納する代わりに、自分のデータをCloud Storageにコピーしました。gcloud jobsで復号鍵を提供するトレーニングを依頼する

しかし、私のセットアップ(明らかに!)が壊れました。私がMLエンジンに提出したPythonコードは、ファイルを復号化できないためです。 --decrypt-keygcloud ml-engine jobs submit trainingのようなオプションが必要ですが、そのようなオプションは見つかりません。私のコードがデータを解読できるようにこのキーを提供する方法?

答えて

0

短い答え:解読キーをトレーニングジョブに渡すべきではありません。代わりにhttps://cloud.google.com/kms/docs/store-secrets

長い答え:技術的には、トレーニングジョブ定義を通過するフラグを解読キーにすることができますが、これはリストトレーニングジョブにアクセスできるユーザーに公開されます。代わりにGoogle Cloud Key Management Serviceにキーを配置し、そこからキーを取得するためのMLトレーニングジョブの実行権限をサービスアカウントに与える必要があります。

あなたはhttps://cloud.google.com/ml-engine/docs/how-tos/working-with-data#using_a_cloud_storage_bucket_from_a_different_project

編集に記載された手順に従ってトレーニングジョブを実行するサービスアカウントを決定することができます。また、アレクセイは以下のコメントで言っていることに注意してください。 Tensorflowは現在、GCSからファイルを直接読み取ったり復号したりすることはできません。gsutil cpに提供された鍵を持つすべての作業者のローカルディスクにコピーする必要があります。

+0

TensorFlowのGCSクライアントライブラリはまだそれらをサポートしていないため、Chrisが述べたことに加えて、TensorFlow経由でGCSから暗号化ファイルを読み取ることができないことを指摘したいと思います。 代わりに、 'gsutil cp'(暗号化キーを提供)を使用してすべてのトレーニングワーカー用のトレーニングデータをGCSからローカルディスクにコピーし、トレーニングディスクのTensorFlowコードをローカルディスクから読み込む必要があります。 –

+0

キーをGCKMSに保存すると、Googleのデフォルトのサーバーサイド暗号化を使用することができるので、その目的を無効にします。 Google Cloud Storageからデータが漏洩した場合、誰もそのファイルを読み取ることはできません。明らかにコードを実行している間は鍵が利用できるはずですが、[このページ](https://cloud.google.com/storage/docs/encryption)から理解しているように、鍵はメモリに保存され、操作が成功した後に消去されます。 – jthread

+0

TL; DR:唯一の安全な解決策は、新しい仕事を提出するときに鍵を渡すことですが、明らかにそれは不可能です。 – jthread

関連する問題