升级到 Beta 版安全政策

Anthos Service Mesh 1.5 中引入了两个测试版安全 API:PeerAuthenticationRequestAuthentication。Alpha 版身份验证政策即将被弃用。本页面介绍了如何将 Alpha 版身份验证政策更新为 Beta 版安全政策。

将服务选定的政策更改为工作负载选择器

所有安全 Beta 版政策都必须使用工作负载选择器或基于命名空间的配置模型,而不是基于服务的配置模型。

更新为 RequestAuthentication

以下示例展示了如何从 Alpha 版 Policy 更新为 RequestAuthentication

# Alpha policy for authentication to enable Origin Authentication for service foo.
apiVersion: "authentication.istio.io/v1alpha1"
kind: "Policy"
metadata:
  name: "jwt-example"
spec:
  targets:
  - name: httpbin
  origins:
  - jwt:
      issuer: "testing@secure.istio.io"
      jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

更新为相应的 Beta 版 RequestAuthentication 资源:

apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
  name: "jwt-example"
spec:
  selector:
    matchLabels:
      app: httpbin
  jwtRules:
  - issuer: "testing@secure.istio.io"
    jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

更新为 PeerAuthentication

您还必须更新双向 TLS (mTLS) 的身份验证政策。Alpha 版 MeshPolicy 启用了网格范围的 PERMISSIVESTRICT mTLS。Beta 版 PeerAuthentication 资源会替换 Alpha 版 MeshPolicy。具体来说,如果您有一个如下所示的 MeshPolicy

apiVersion: "authentication.istio.io/v1alpha1"
kind: "MeshPolicy"
metadata:
  name: "default"
  labels:
    release: istio
spec:
  peers:
  - mtls:
      mode: PERMISSIVE

使用根命名空间中的 PeerAuthentication 资源更新该政策:

apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
  name: "default"
  namespace: "istio-system"
spec:
  mtls:
    mode: PERMISSIVE

在 Anthos Service Mesh 1.6.14 之前,默认安装包含具有 PERMISSIVE 模式的 MeshPolicy。Anthos Service Mesh 1.6.14 不会再生成 MeshPolicy.

  1. 我们建议您使用基于命名空间的 PeerAuthentication。尽管 Anthos Service Mesh 支持 [自动 mTLS](https://istio.io/v1.6/docs/tasks/security/authentication/authn-policy/#auto-mutual-tls{: class="external"},但它仅适用于网格级或命名空间级 PeerAuthentication。使用工作负载级 PeerAuthentication 时,您需要配置相应的 DestinationRule
  2. 您可以将 Alpha 版身份验证政策配置为使用原始身份验证来拒绝请求。但是,新的 RequestAuthentication 仅会在令牌无效时拒绝请求。我们建议您使用 AuthorizationPolicy 来定义进一步的访问权限控制。
  3. 虽然 Alpha 版身份验证政策在 Anthos Service Mesh 1.6.14-asm.2 中仍有效,但它将在下一个版本中完全被弃用。我们建议您尽快完成迁移。
  4. 在过渡期间,如果同时存在 Alpha 版和 Beta 版政策,则仅 Beta 版政策会生效,而 Alpha 版政策会被忽略。
  5. 如需了解信息,请参阅 Istio 文档中的身份验证政策

后续步骤