App Engine – 限制部署到特定服务
App Engine – Restrict deploy to specific service
我们在 Google App Engine 上有两个服务 运行。
我们想将部署限制为仅特定用户到默认 (prod) 目标,但允许任何开发人员部署到开发目标。
无法找出它的 IAM 条件。
App Engine 似乎不是这里的官方资源类型https://cloud.google.com/iam/docs/conditions-resource-attributes#resource-name
并且与服务过滤器下拉列表一致
我尝试使用从 gcloud app services describe dev
:
获得的 name
resource.name == 'apps/my-project/services/dev'
Bt 似乎也不起作用,它只是拒绝访问,所以猜测这不是正确的资源名称过滤器。
有没有办法像上面那样限制这个?
据我所知,您不能限制部署到特定服务的权限,因为用户可以为每个 GCP 帐户创建自定义服务。
我可以建议的两个选项:
为产品创建不同的 GCP 项目。如果您使用的是 CLI,产品开发人员可以简单地更改 GCP 项目并进行部署。
将 CICD 与 Cloud Build 结合使用,并且只将对 prod 分支的合并访问权限授予 prod 开发人员。在这种情况下,没有开发人员需要访问您的 GCP 项目。
App Engine permissions 在项目级别授予,无法针对应用程序的每个不同服务进行过滤。
有一个开放的功能请求 https://issuetracker.google.com/115904598 允许特定版本的部署,我建议您加注星标并关注。
在不同的 GCP 项目中分离您的生产环境和开发环境(我知道这有时会带来不便)可能是目前唯一可行的选择。
我们在 Google App Engine 上有两个服务 运行。
我们想将部署限制为仅特定用户到默认 (prod) 目标,但允许任何开发人员部署到开发目标。
无法找出它的 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 似乎也不起作用,它只是拒绝访问,所以猜测这不是正确的资源名称过滤器。
有没有办法像上面那样限制这个?
据我所知,您不能限制部署到特定服务的权限,因为用户可以为每个 GCP 帐户创建自定义服务。
我可以建议的两个选项:
为产品创建不同的 GCP 项目。如果您使用的是 CLI,产品开发人员可以简单地更改 GCP 项目并进行部署。
将 CICD 与 Cloud Build 结合使用,并且只将对 prod 分支的合并访问权限授予 prod 开发人员。在这种情况下,没有开发人员需要访问您的 GCP 项目。
App Engine permissions 在项目级别授予,无法针对应用程序的每个不同服务进行过滤。
有一个开放的功能请求 https://issuetracker.google.com/115904598 允许特定版本的部署,我建议您加注星标并关注。
在不同的 GCP 项目中分离您的生产环境和开发环境(我知道这有时会带来不便)可能是目前唯一可行的选择。