Python 使用自定义容器从AI平台培训作业访问Google Secret Manager

Python 使用自定义容器从AI平台培训作业访问Google Secret Manager,python,google-cloud-ml,Python,Google Cloud Ml,我正试图从运行在自定义容器中的AI平台培训作业中访问存储在中的秘密。我正在使用以下Python代码检索机密: 标准库导入 导入操作系统 #导入Secret Manager客户端库。 从google.cloud导入secretmanager def access_secret_version(secret_id,version_id,project_id=os.environ.get(“GCP_项目”)): #创建secretmanager客户端。 client=secretmanager.Sec

我正试图从运行在自定义容器中的AI平台培训作业中访问存储在中的秘密。我正在使用以下Python代码检索机密:

标准库导入 导入操作系统 #导入Secret Manager客户端库。 从google.cloud导入secretmanager def access_secret_version(secret_id,version_id,project_id=os.environ.get(“GCP_项目”)): #创建secretmanager客户端。 client=secretmanager.SecretManagerServiceClient() #生成机密版本的资源名称。 name=client.secret\u version\u path(项目id、秘密id、版本id) #访问机密版本。 响应=客户端。访问\u密码\u版本(名称) #返回秘密有效载荷。 返回响应。有效载荷。数据。解码(“UTF-8”) 我已将
secretmanager Secret Accessor
角色添加到默认的云ML服务帐户(
service)-XXX@cloud-ml.google.com.iam.gserviceaccount.com
),但访问仍被拒绝:

google.api_core.exceptions.PermissionDenied: 403 Request had insufficient authentication scopes.

我是否已将正确的角色授予了正确的服务帐户,或者我缺少了其他内容?

我们有一个alpha特性来启用您的用例。你能给我们发一封电子邮件到cloudml吗-feedback@google.com请?

该功能现在已进入测试阶段。那么,您的评论是否暗示通过ML引擎访问Secret Manager的唯一方法是指定另一个服务帐户作为培训作业运行(根据您的链接)?而将角色
Secret Manager Secret Accessor
授予
..@cloud-ml.google.com.iam.gserviceaccount.com
服务帐户将永远无法工作?我们正在通过google Composer DAGs运行培训作业,在Composer中使用自动身份验证时,似乎无法通过MLEngine操作员使用
委托给
进行服务帐户模拟,根据关于如何从ML引擎/AI平台培训工作访问Secret Manager的任何建议,当通过Google Composer?提交作业时,在发送到ML引擎的作业创建请求中,您可以指定要使用的服务帐户。请注意,此服务需要访问Secret Manager。