GCP的服务账户(Service Account)

使用GCP时,Service Account是肯定躲不开的,今天来聊一下Service Account是个什么东西。

在 GCP 上,Service Account是一种用于认证和授权 GCP 应用程序和服务的机制,就像您在日常生活中使用的用户名和密码一样。Service Account允许应用程序和服务使用它们的身份访问 GCP 资源,而不是使用个人 Google 帐号。这样,您就可以更好地控制应用程序和服务对 GCP 资源的访问,也更容易管理这些应用程序和服务的身份验证和授权。

虽然听起来像是账户,但是我觉得跟平常理解的账户的概念不一样,说白了就是权限的设置,或者说是权限的扩展好一些。

定义一些Service Account,可以给不同的User或者不同的服务提供不同的Service Account,进行一些权限方面的管理。

例如,可以将某个Service Account与拥有 BigQuery 数据阅读权限的 IAM 角色相关联,以允许该Service Account在 GCP 上读取 BigQuery 中的数据。

有些时候,我们需要在代码里指定Service Account,比如我们需要用Python开发一个小的API,要CICD到CloudRun上,CloudRun运行的时候会指定一个Service Account,叫做A;

但是我们在Python逻辑处理的时候,需要访问某个PJ的BigQuery的数据,但是A没有访问权限,管理员出于权限管理的考虑,给了你一个可以访问该BigQuery的Service Account,叫做B;

如何在A和B之间切换?

其实在这种情况下,A只是负责CloudRun运行的,可视为从始至终的Service Account,只不过在处理Bigquery的时候,是需要配置的。
首先需要B的json密钥文件,在IAM页面是可以下载的,可能需要管理员提供。
然后,在应用程序中使用 GCP 客户端库或 REST API 来创建一个新的服务账户对象,然后将其与需要访问的服务相关联。

creds = Credentials.from_service_account_file('serviceaccount.json')
client = bigquery.Client(credentials=creds)

在这个示例中,from_service_account_file() 方法使用密钥文件的路径来加载凭据,然后将它们传递给 bigquery.Client() 方法来创建一个新的 BigQuery 客户端对象。

接下来就可以对Bigquery进行处理了。

处理完成后,并不需要切换至A。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值