Mik*_*ike 6 google-cloud-platform google-kubernetes-engine google-cloud-networking google-cloud-armor
我们正在尝试阻止除基于此 Cloud Armor演练的一些外部 IP 地址之外的所有非集群流量。
GKE 集群识别了规则,但仍然阻止允许的 IP。以下是遵循的步骤:
1)创建策略+规则
gcloud beta compute security-policies create allow-team-only \
--description "Cloud Armor deny non-team IPs"
gcloud beta compute security-policies rules create 1000 \
--security-policy allow-team-only \
--description "Deny traffic from 0.0.0.0/0." \
--src-ip-ranges "0.0.0.0/0" \
--action "deny-404"
gcloud beta compute security-policies rules create 999 \
--security-policy allow-team-only \
--description "Allow traffic from <IP ADDRESS>." \
--src-ip-ranges "<IP ADDRESS>/32" \
--action "allow"
Run Code Online (Sandbox Code Playgroud)
2) 将规则应用到我们位于 8080 端口的服务
metadata:
annotations:
beta.cloud.google.com/backend-config: '{"ports": {"8080":"allow-team-only"}}'
Run Code Online (Sandbox Code Playgroud)
我在忽略什么?
谢谢!
小智 5
根据您的策略和规则,您创建了两个策略,其中之一是拒绝所有流量。对于这个规则,我有两个观察
\n\n1) 您已经创建了数字 1000,并且由于它拒绝了一切,因此将来添加数字超过 1000 的规则将不起作用。由于所有流量都将匹配 0.0.0.0/0,并且不会检查 1000 多个规则。\n2) 根据 GCP,您可以使用默认规则,并将操作更改为拒绝(失败关闭)。
\n\n\n\n\n\n\n每个 Cloud Armor 安全策略都包含一个默认规则,如果没有任何更高优先级的规则匹配或者策略中没有其他规则,则该规则将被匹配。默认规则自动分配优先级 2147483647(最大 int32),并且始终存在于 Cloud Armor 安全策略中。默认规则无法删除,但可以修改。默认规则的默认操作是允许(失败打开),但您可以将该操作更改为拒绝(失败关闭)。
\n
我还注意到您的场景与您共享的同一文档中描述的第一个用例“用例 1:限制对 GCP HTTP(S) 负载均衡器的访问”非常相似。
\n\n根据文档,要创建此配置,请按照下列步骤操作:
\n\n1) 创建 Cloud Armor 安全策略。
\n2) 在 Cloud Armor 安全策略中,添加一条将白名单作为第一条规则的规则。该规则的描述为 \xe2\x80\x9callow \xe2\x80\x9d。
\n3) 将策略中的默认规则从允许规则修改为拒绝规则。默认规则管理与任何前述规则都不匹配的流量。这是政策中的最后一条规则。将规则从允许更改为拒绝会阻止所有非源自白名单的流量。
\n4) 将此策略与 HTTP(S) 负载均衡器的后端服务关联。
| 归档时间: |
|
| 查看次数: |
7375 次 |
| 最近记录: |