GCP工作负载身份联盟CEL属性条件配置:指定仓库分支权限限制
GCP Workload Identity Federation 正确的CEL分支/仓库限制语法
你之前的CEL表达式失效是因为错误地用|拼接两个目标字符串做匹配,这不符合CEL的语法规则。正确的写法需要用逻辑或分隔独立判断,或者用in操作符简化多值匹配:
写法一:逻辑或(||)
直接拆分两个独立的相等判断,用||连接:
attribute_condition = "(assertion.sub == 'repo:MyOrg/repo1:ref:refs/heads/main' || assertion.sub == 'repo:MyOrg/repo2:ref:refs/heads/master')"
写法二:in操作符(更简洁)
当需要匹配多个值时,用in结合数组的写法更清晰:
attribute_condition = "(assertion.sub in ['repo:MyOrg/repo1:ref:refs/heads/main', 'repo:MyOrg/repo2:ref:refs/heads/master'])"
注意事项
- 必须保证
assertion.sub的格式和实际传入的断言值完全一致,包括大小写、仓库路径、分支引用格式(比如refs/heads/前缀不能漏) - 表达式外层的括号可选,但保留也不影响生效
- 配置后可以通过GCP的日志系统查看身份断言的匹配情况,验证条件是否生效
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

