首页 > 解决方案 > 具有多个 securityPolicys 的 BackendConfig 不起作用

问题描述

https://cloud.google.com/kubernetes-engine/docs/how-to/cloud-armor-backendconfig

我只看到了分配一个 securityPolicy 的示例,但我想分配多个。

我使用 2 个策略创建了以下后端配置,并将其应用于我的服务beta.cloud.google.com/backend-config: my-backend-config

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  namespace: cloud-armor-how-to
  name: my-backend-config
spec:
  securityPolicy:
    name: "policy-one"
    name: "policy-two"

当我部署时,只应用“策略二”。我可以以某种方式分配两个策略吗?我没有看到这方面的文档

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

解决方案


文档中没有任何内容表明您可以指定多个策略。甚至规范都说securityPolicy是单数,而 YAML 结构不是数组。

此外,如果您查看您的规格:

spec:
  securityPolicy:
    name: "policy-one"
    name: "policy-two"

YAML 标准完全忽略了第一个name: "policy-one",它解释了为什么name: "policy-two"使用 only。你可以在YAMLlint上查看。要在 YAML 上再增加一个值,您必须转换securityPolicy为数组。像这样的东西:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  namespace: cloud-armor-how-to
  name: my-backend-config
spec:
  securityPolicy:
  - name: "policy-one"
  - name: "policy-two"

问题在于 GCP 可能不支持它。


推荐阅读