Python 生成google服务帐户凭据,无需登录云功能
如何在没有服务帐户密钥文件的情况下创建凭据 我的当前设置 我正在使用从应用程序调用云函数Python 生成google服务帐户凭据,无需登录云功能,python,google-cloud-platform,google-api,google-oauth,Python,Google Cloud Platform,Google Api,Google Oauth,如何在没有服务帐户密钥文件的情况下创建凭据 我的当前设置 我正在使用从应用程序调用云函数 curl -X POST CF_URL -H "Authorization: Bearer $TOKEN" -d@Key.json 云中函数 credentials=service\u account.credentials.from\u service\u account\u inforequest\u json, 作用域=['https://www.googleapis.com/auth/cloud
curl -X POST CF_URL -H "Authorization: Bearer $TOKEN" -d@Key.json
云中函数
credentials=service\u account.credentials.from\u service\u account\u inforequest\u json,
作用域=['https://www.googleapis.com/auth/cloud-platform']
service=googleapiclient.discovery.build
'cloudresourcemanager','v1',凭据=凭据,缓存发现=False
政策=
服务项目
.Getiam政策
resource=credentials.project\u id,
body={},
处决
我将服务帐户密钥作为有安全问题的有效负载传递。如何避免将密钥文件作为有效负载传递 在云功能和所有GCP产品中,您都有一个功能名称。这意味着您可以选择在云功能运行时要附加到该功能的服务帐户。如果未定义任何人,则默认情况下使用此人 因此,默认身份自动存在于云功能中。您可以简单地执行此操作,如下所示:
在云功能和所有GCP产品中,您都有一个功能名称。这意味着您可以选择在云功能运行时要附加到该功能的服务帐户。如果未定义任何人,则默认情况下使用此人 因此,默认身份自动存在于云功能中。您可以简单地执行此操作,如下所示:
您不传递服务帐户JSON密钥文件的内容。那是行不通的。如果启用了云函数身份验证,则需要传递OAuth标识令牌作为承载参数。查看这些链接:这是正确的。我正在使用打印身份令牌进行身份验证。我的问题是如何在云函数中生成凭据以执行其他操作。您不传递服务帐户JSON密钥文件的内容。那是行不通的。如果启用了云函数身份验证,则需要传递OAuth标识令牌作为承载参数。查看这些链接:这是正确的。我正在使用打印身份令牌进行身份验证。我的问题是如何在云函数中生成凭证来做其他事情。谢谢。我有一个跨项目的问题。我的云功能部署在项目B中,我想修改项目A中的资源。项目A服务帐户拥有所有角色/权限。我正在从项目A调用项目B云功能。将默认服务帐户电子邮件地址身份添加到项目B中具有所需角色的IAM。不要混淆所有内容!您有权在任何项目中调用函数,并且您有权在任何项目中调用函数。您可以在项目A的资源上授予云功能服务帐户标识,即使您已经在项目B中创建了服务帐户。对于云功能的授权,也是一样。@guilaume。谢谢,我知道了。我没想别的,谢谢。我有一个跨项目的问题。我的云功能部署在项目B中,我想修改项目A中的资源。项目A服务帐户拥有所有角色/权限。我正在从项目A调用项目B云功能。将默认服务帐户电子邮件地址身份添加到项目B中具有所需角色的IAM。不要混淆所有内容!您有权在任何项目中调用函数,并且您有权在任何项目中调用函数。您可以在项目A的资源上授予云功能服务帐户标识,即使您已经在项目B中创建了服务帐户。对于云功能的授权,也是一样。@guilaume。谢谢,我知道了。我没有想别的办法。
import google.auth
credentials, project_id = google.auth.default(scopes='https://www.googleapis.com/auth/cloud-platform']))