【问题标题】:App Engine – Restrict deploy to specific serviceApp Engine – 限制部署到特定服务
【发布时间】:2021-06-07 05:01:08
【问题描述】:

我们在 Google App Engine 上运行了两项服务。

我们希望仅将特定用户部署到默认 (prod) 目标,但允许任何开发人员部署到 dev 目标。

无法弄清楚它的 IAM 条件。

App engine 好像不是这里的官方资源类型https://cloud.google.com/iam/docs/conditions-resource-attributes#resource-name

并且与服务过滤器下拉菜单一致

我尝试使用从gcloud app services describe dev 获得的名称

resource.name == 'apps/my-project/services/dev'

Bt 似乎也不起作用,它只是拒绝访问,所以猜测这不是正确的资源名称过滤器。

有没有办法像上面那样限制这个?

【问题讨论】:

    标签: google-cloud-platform google-cloud-iam


    【解决方案1】:

    App Engine permissions 在项目级别授予,不能针对应用程序的每个不同服务进行过滤。

    有一个开放的功能请求 https://issuetracker.google.com/115904598 允许我建议您加注并关注的版本的特定部署。

    在不同的 GCP 项目中分离您的 prod 和 dev 环境(我知道这有时会很不方便)可能是目前唯一可行的选择。

    【讨论】:

    • 哈哈!很遗憾。功能请求没有任何 ETA,也没有实施保证。理论上,产品团队会根据特定线程中给出的星数和交互的数量对功能请求采取行动,如here 所解释的那样。我希望特定的功能请求能得到关注。
    【解决方案2】:

    AFAIK,您不能限制部署到特定服务的权限,因为用户可以为每个 GCP 帐户创建自定义服务。

    我可以建议的两个选项:

    1. 为 prod 创建一个不同的 GCP 项目。如果您使用 CLI,产品开发人员可以简单地更改 GCP 项目并进行部署。

    2. 将 CICD 与 Cloud Build 结合使用,并且仅将产品分支的合并访问权限授予产品开发人员。在这种情况下,没有开发人员需要访问您的 GCP 项目。

    【讨论】:

    • 你能澄清users can create custom services per GCP account的意思吗?
    • 如果您能够部署,您可以创建一个名为“test”的服务,另一个可以创建一个名为“test2”的服务。对每个服务进行访问控制的意义不大,而限制整体部署的能力则更有意义。
    • 这有点像整个问题
    • 我的回答是不可能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 2018-07-31
    • 2018-08-29
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多