更新授权政策

从 Anthos Service Mesh 1.4.5 版开始,Anthos Service Mesh 证书授权机构 (Mesh CA) 负责管理 GKE Pod 的 mTLS 证书和密钥的颁发及轮替。开源 Istio 和早期版本的 Anthos Service Mesh 使用 Citadel 作为证书授权机构。

如果要从 Istio 或早期版本的 Anthos Service Mesh 升级,并且您已有使用自定义信任网域授权政策,则您必须更新您的授权政策以使用 cluster.local 来引用本地信任网域。如果您的现有授权政策已使用 cluster.local,则无需执行任何操作。

如需更新您的授权政策,请执行以下操作:

  1. 通过 grep 查找您的授权政策以找到自定义信任网域的所有发生实例。在以下示例中,old-td 是自定义信任网域的名称。

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: service-httpbin.default.svc.cluster.local
      namespace: default
    spec:
      rules:
      - from:
        - source:
            principals:
            - old-td/ns/sleep-allow/sa/sleep
        to:
        - operation:
            methods:
            - GET
      selector:
        matchLabels:
          app: httpbin
    
  2. 将该自定义信任网域更改为 cluster.local,然后应用更新后的政策。

    kubectl apply -f - <<EOF
    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: service-httpbin.default.svc.cluster.local
      namespace: default
    spec:
      rules:
      - from:
        - source:
            principals:
            - cluster.local/ns/sleep-allow/sa/sleep
        to:
        - operation:
            methods:
            - GET
      selector:
        matchLabels:
          app: httpbin
    ---
    EOF
    

后续步骤