1.2.2.18.2. 授权策略所需的更新

Istio 为主机名本身和所有匹配端口生成主机名。例如,用于 "httpbin.foo" 主机的虚拟服务或网关会生成匹配 "httpbin.foo 和 httpbin.foo:*" 的配置。但是,完全匹配授权策略仅与为 hostsnotHosts 字段给出的确切字符串匹配。

如果您使用精确字符串比较的 AuthorizationPolicy 来确定 主机或非主机,则会影响您的集群。

您必须更新授权策略 规则,以使用前缀匹配而不是完全匹配。例如,在第一个 AuthorizationPolicy 示例中,将 hosts: ["httpbin.com"] 替换为 hosts: ["httpbin.com:*"]

第一个 AuthorizationPolicy 示例使用前缀匹配

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: foo
spec:
  action: DENY
  rules:
  - from:
    - source:
        namespaces: ["dev"]
    to:
    - operation:
        hosts: [“httpbin.com”,"httpbin.com:*"]

第二个 AuthorizationPolicy 示例使用前缀匹配

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: default
spec:
  action: DENY
  rules:
  - to:
    - operation:
        hosts: ["httpbin.example.com:*"]