Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption 使用gcloud作业提交培训提供解密密钥_Encryption_Google Cloud Platform_Google Cloud Storage_Google Cloud Ml Engine - Fatal编程技术网

Encryption 使用gcloud作业提交培训提供解密密钥

Encryption 使用gcloud作业提交培训提供解密密钥,encryption,google-cloud-platform,google-cloud-storage,google-cloud-ml-engine,Encryption,Google Cloud Platform,Google Cloud Storage,Google Cloud Ml Engine,我已经成功地使用Google Cloud ML引擎训练了我的第一个网络,现在我正试图通过提供自己的加密密钥来加密数据,从而使设置更加安全。如中所述,我现在使用自己的自定义加密密钥将数据复制到云存储,而不是将其未加密存储在云存储中 然而,现在我的设置(显然!)坏了,因为我提交给ML引擎的Python代码无法解密文件。我希望有一个类似于--decrypt key的选项来gcloud ml engine jobs submit training,但我找不到这样的选项。如何提供此密钥,以便我的代码可以解

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


然而,现在我的设置(显然!)坏了,因为我提交给ML引擎的Python代码无法解密文件。我希望有一个类似于
--decrypt key
的选项来
gcloud ml engine jobs submit training
,但我找不到这样的选项。如何提供此密钥,以便我的代码可以解密数据?

简短回答:不应将解密密钥传递到培训作业中。取而代之的是看到

详细回答:虽然从技术上讲,您可以使解密密钥成为通过培训作业定义的标志,但这会将其公开给任何有权访问列表培训作业的人。您应该将密钥放在Google云密钥管理服务中,并授予运行ML培训作业的服务帐户从那里获取密钥的权限

您可以按照中列出的步骤确定运行培训作业的服务帐户


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

的密钥将其复制到每个工作人员的本地磁盘。简短回答:您不应将解密密钥传递到培训作业中。取而代之的是看到

详细回答:虽然从技术上讲,您可以使解密密钥成为通过培训作业定义的标志,但这会将其公开给任何有权访问列表培训作业的人。您应该将密钥放在Google云密钥管理服务中,并授予运行ML培训作业的服务帐户从那里获取密钥的权限

您可以按照中列出的步骤确定运行培训作业的服务帐户


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

的密钥将它们复制到每个工作人员的本地磁盘。除了Chris所说的,我想指出的是,您无法通过Tensorflow从GCS读取加密文件,因为TensorFlow中的GCS客户端库还不支持它们。相反,您需要使用
gsutil cp
(提供加密密钥)将每个培训工作者的培训数据从GCS复制到本地磁盘,然后引导您的培训TensorFlow代码从本地磁盘读取数据。将密钥存储在GCKMS中无法达到此目的,我也可以使用谷歌默认的服务器端加密。如果数据从谷歌云存储泄漏,我不希望任何人能够读取这些文件。显然,在运行代码时,密钥应该是可用的,但正如我从中了解到的那样,密钥可以存储在内存中,并在操作成功后清除。TL;DR:唯一安全的解决方案是在提交新作业时传递密钥,但显然这是不可能的。除了Chris所说的,我想指出的是,您将无法通过TensorFlow从GCS读取加密文件,因为TensorFlow中的GCS客户端库还不支持这些文件。相反,您需要使用
gsutil cp
(提供加密密钥)将每个培训工作者的培训数据从GCS复制到本地磁盘,然后引导您的培训TensorFlow代码从本地磁盘读取数据。将密钥存储在GCKMS中无法达到此目的,我也可以使用谷歌默认的服务器端加密。如果数据从谷歌云存储泄漏,我不希望任何人能够读取这些文件。显然,在运行代码时,密钥应该是可用的,但正如我从中了解到的那样,密钥可以存储在内存中,并在操作成功后清除。TL;DR:唯一安全的解决方案是在提交新作业时传递密钥,但显然这是不可能的。