首页 > 解决方案 > 如何将两个不同的 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.

知道如何使这种独占访问成为可能吗?

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginegoogle-cloud-armor

解决方案


此通知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"} 

请参阅将服务端口与 BackendConfig 关联

几乎不可能将两种不同的安全策略应用于同一个集合,如服务/端口。

作为一种解决方法,您可以尝试使用包含两个客户端规则的特殊安全策略的附加服务。


推荐阅读