使用 gcloud jobs submit training 提供解密密钥

Providing decryption key with gcloud jobs submit training

我已经使用 Google Cloud ML 引擎成功地训练了我的第一个网络,现在我正尝试通过提供我自己的加密密钥来加密数据来使设置更加安全。如 the manual 中所述,我现在已使用自己的自定义加密密钥将数据复制到云存储,而不是未加密地存储在那里。

但是,现在我的设置(很明显!)坏了,因为我提交给 ML 引擎的 Python 代码无法解密文件。我期待 --decrypt-keygcloud ml-engine jobs submit training 之类的选项,但我找不到这样的选项。如何提供此密钥以便我的代码可以解密数据?

简短回答:您不应将解密密钥传递到训练作业中。请参阅 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

中列出的步骤确定运行训练作业的服务帐户

编辑:另请注意 Alexey 在下面的评论中所说的话; Tensorflow 目前无法直接从 GCS 读取和解密文件,您需要使用提供给 gsutil cp.

的密钥将它们复制到每个工作人员的本地磁盘上