云 运行 - 允许用户根据权限部署单个资源
Cloud Run - Allowing users to deploy a single resource, based on permissions
在尝试允许不同用户访问 GCP Cloud 运行 以及使用权限属性的特定服务时,我几乎感到头疼。
让我们考虑一下我有不同的服务 运行,我想指派我的开发人员只对其中的一部分使用 gcloud run deploy
。就我而言,如下所示:
- 后端服务 > 修订只能由后端用户部署;
- 前端服务 > 修订只能由前端用户部署;
两个用户都具有“Cloud 运行 Developer”角色,两个服务帐户都具有“ServiceAccountUser”角色,如所述here in GCP docs
然而,我面临的问题是当我尝试限制单个资源的用户权限时。
使用 GCP 网络控制台,我创建了一个基于 Resource > Name
的条件为 backend-service
。
我在使用 gcloud run deploy
时立即收到此错误:
ERROR: (gcloud.run.deploy) PERMISSION_DENIED: Permission 'run.services.update' denied on resource 'namespaces/PROJECT_ID/services/SERVICE_NAME' (or resource may not exist).
make: *** [deploy] Error 1
因为我找不到与 Cloud 运行 (they're not even listed afaik) 相关的 IAM 权限条件相关的任何内容,所以我尝试将 Resource > Name
条件值更改为 namespaces/PROJECT_ID/services/SERVICE_NAME
,但没有成功也工作
附带说明一下,在 Cloud 运行 Web Console 中检查权限时,它显示
云端条件运行开发者
{
"expression": "resource.name == \"backend-service\"",
"title": "BackendService"
}
Cloud Run doesn't support IAM conditions。您有几种解决方法
- 等待更新
- 创建不同的项目
- 自动化部署(只有CI/CD管道可以部署,不能直接部署用户)
- 在资源级别而非项目级别添加权限。
在尝试允许不同用户访问 GCP Cloud 运行 以及使用权限属性的特定服务时,我几乎感到头疼。
让我们考虑一下我有不同的服务 运行,我想指派我的开发人员只对其中的一部分使用 gcloud run deploy
。就我而言,如下所示:
- 后端服务 > 修订只能由后端用户部署;
- 前端服务 > 修订只能由前端用户部署;
两个用户都具有“Cloud 运行 Developer”角色,两个服务帐户都具有“ServiceAccountUser”角色,如所述here in GCP docs
然而,我面临的问题是当我尝试限制单个资源的用户权限时。
使用 GCP 网络控制台,我创建了一个基于 Resource > Name
的条件为 backend-service
。
我在使用 gcloud run deploy
时立即收到此错误:
ERROR: (gcloud.run.deploy) PERMISSION_DENIED: Permission 'run.services.update' denied on resource 'namespaces/PROJECT_ID/services/SERVICE_NAME' (or resource may not exist).
make: *** [deploy] Error 1
因为我找不到与 Cloud 运行 (they're not even listed afaik) 相关的 IAM 权限条件相关的任何内容,所以我尝试将 Resource > Name
条件值更改为 namespaces/PROJECT_ID/services/SERVICE_NAME
,但没有成功也工作
附带说明一下,在 Cloud 运行 Web Console 中检查权限时,它显示 云端条件运行开发者
{
"expression": "resource.name == \"backend-service\"",
"title": "BackendService"
}
Cloud Run doesn't support IAM conditions。您有几种解决方法
- 等待更新
- 创建不同的项目
- 自动化部署(只有CI/CD管道可以部署,不能直接部署用户)
- 在资源级别而非项目级别添加权限。