升级到 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.7.8 之前,默认安装包含具有 PERMISSIVE 模式的 MeshPolicy。Anthos Service Mesh 1.7.8 不会再生成 MeshPolicy.

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

后续步骤