kubernetes - 如何将两个不同的 Cloud Armor BackendConfigs 注释到服务
问题描述
我有两个 Cloud Armor 政策。政策“A”允许我们的办公网络连接到特定服务。策略“B”允许客户使用服务来使用 API。
我无法将策略“B”的规则添加到策略“A”,因为这样规则(客户 ip)将有权访问应用策略“A”的所有服务。因此,我将其分离为独立的策略“B”。
所以我现在有两个不同的 BackendConfig 资源。一份参考政策“A”,一份参考政策“B”。
我采取的下一步是以某种方式将两个云装甲后端配置应用于一个特定的服务。办公网络应该可以访问该服务以及我们客户的 IP。这就是我认为它可能工作的方式:
metadata:
annotations:
beta.cloud.google.com/backend-config: '{"default":{"policy-a-cloud-armor-backend-config","policy-b-cloud-armor-backend-config"}}'
不幸的是,这不起作用。在 GCP 的策略面板中会出现以下警告:
This policy has not been applied to any targets yet, so the policy will not affect any traffic.
知道如何使这种独占访问成为可能吗?
解决方案
此通知This policy has not been applied to any targets yet, so the policy will not affect any traffic
表明安全策略未通过后端配置和注释绑定到任何目标。
注释语法看起来与文档不一致:ports
缺少该字段。它应该是这样的:
{"ports": {"http":"config-http", "http2" :"config-http2"}, "default": "config-default"}
几乎不可能将两种不同的安全策略应用于同一个集合,如服务/端口。
作为一种解决方法,您可以尝试使用包含两个客户端规则的特殊安全策略的附加服务。
推荐阅读
- java - Tomcat 8 到 Tomcat 9 升级和 String[]
- postgresql - 在 JSONB 列 POSTGRESQL 中获取嵌套值
- ruby-on-rails - Rails cache_classes 需要关闭才能加载新类
- c# - 如何在 c# 中验证 windows 应用程序的加盐密码和用户名?
- php - 如何将 Cookie 设置为 GuzzleHttp?
- c# - 将用户重定向到卸载 uwp 应用程序的网页
- css - 如何选择在其样式标签中定义了特定 css 变量的元素?
- java - 如何使 For 循环中的控件可见?
- amazon-web-services - 内部 AWS TLS 证书
- ios - Firestore 的字段路径无效