【问题标题】:Is service account impersonation in GCP the best way to handle developer credentials and permissions?GCP 中的服务帐户模拟是处理开发人员凭据和权限的最佳方式吗?
【发布时间】:2020-05-20 22:42:44
【问题描述】:

在 GCP 中,服务帐户模拟是一种创建临时 IAM 凭证以作为开发人员执行操作的方法(请参阅 here)。这被描述为相当于在 AWS 中担任角色 - 请参阅此other question

我的问题是:

  • 这是在谷歌云中推荐/规范的方法吗,即围绕服务帐户分组权限并允许开发人员模拟该服务帐户?
  • 或者,创建自定义角色并将它们直接分配给开发人员身份(而不是通过服务帐户间接分配)更好?但是,你当然会失去短期资格证书的优势。

如果第一个选项有效,这也意味着您最终将拥有与 AWS 中的角色一样多的服务账户。

【问题讨论】:

  • Seth Vargo 的回答是正确的。要添加,这取决于您要完成的任务和方法。 Google Cloud 中的安全性和身份与 AWS 非常不同。最好不要试图用另一种设计来模仿一种安全设计。对于使用控制台和 Google CLI 与 Google Cloud 交互的用户,请使用用户凭据。对于软件程序,请使用服务帐户。模拟在 Google Cloud 中很少使用,并增加了不必要的复杂性。总之,为要执行的任务量身定制的授权使用唯一身份。

标签: google-cloud-platform google-iam


【解决方案1】:

general中,您应该将 IAM 角色授予组,然后将开发人员添加到适当的组。

例如,您可能希望授予所有开发人员“编辑”访问项目的权限。为此,请向项目授予 group:ll-developers@yourcompany.com 编辑角色。然后,使用 LDAP 或 G Suite 确保所有开发者都是该组的成员。

您可以让开发人员能够actAs 服务帐户,但审核日志和主体将是服务帐户,而不是开发人员。

【讨论】:

  • 好的,为了正确理解,我假设拥有长期存在的凭证,它们本身不能做任何事情,但它们可以用来获取可以做某事的临时凭证(假设在 aws 中的角色) 正是 AWS 的做法,而 GCP 有不同的方法(对于开发人员做某事的用例,自动化流程当然是另一回事)。
  • @MarioCast - Google 使用 OAuth。令牌的生命周期最长为 3,600 秒,但通常可以更新。您正在比较两种不同类型的身份验证/授权系统,几乎没有实现重叠。
猜你喜欢
  • 2015-11-02
  • 2023-01-31
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2019-01-01
  • 1970-01-01
相关资源
最近更新 更多