Passer à la version bêta des règles de sécurité

Deux API de sécurité en version bêta, PeerAuthentication et RequestAuthentication, ont été introduites avec Anthos Service Mesh 1.5. La règle d'authentification alpha est obsolète. Cette page explique comment passer de la règle d'authentification alpha aux règles de sécurité bêta.

Remplacer la règle sélectionnée par le service par une règle basée sur le sélecteur de charge de travail

Toutes les règles de sécurité bêta doivent utiliser des modèles de configuration basés sur l'espace de noms ou le sélecteur de charge de travail, et non des modèles basés sur le service.

Passer à RequestAuthentication

L'exemple suivant montre comment passer de la Policy alpha à 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"

Passez à la ressource RequestAuthentication bêta correspondante :

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"

Passer à PeerAuthentication

Vous devez également mettre à jour les règles d'authentification du protocole d'authentification TLS mutuelle (mTLS). La MeshPolicy alpha activait le protocole mTLS PERMISSIVE ou STRICT au niveau du maillage. La ressource PeerAuthentication bêta remplace la MeshPolicy alpha. Plus précisément, si vous disposez d'une MeshPolicy semblable à la suivante :

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

Remplacez-la par une ressource PeerAuthentication dans l'espace de noms racine :

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

Dans les versions d'Anthos Service Mesh antérieures à 1.7.8, l'installation par défaut inclut MeshPolicy en mode PERMISSIVE. Anthos Service Mesh 1.7.8 ne génère plus MeshPolicy.

  1. Nous vous recommandons d'utiliser l'authentification PeerAuthentication basée sur l'espace de noms. Bien qu'Anthos Service Mesh soit compatible avec le protocole mTLS automatique, il ne fonctionne bien qu'avec l'authentification PeerAuthentication au niveau du maillage ou de l'espace de noms. Lorsque vous utilisez PeerAuthentication au niveau de la charge de travail, vous devez configurer une authentification DestinationRule correspondante.
  2. Vous pouvez configurer la règle d'authentification alpha afin d'utiliser l'authentification d'origine pour refuser les requêtes. Toutefois, la nouvelle authentification RequestAuthentication ne rejette les requêtes que lorsque le jeton n'est pas valide. Nous vous recommandons d'utiliser une authentification AuthorizationPolicy pour définir un contrôle des accès plus précis.
  3. Bien que la règle d'authentification alpha fonctionne toujours dans Anthos Service Mesh 1.7.8-asm.10, elle sera complètement obsolète dans la prochaine release. Nous vous recommandons de terminer la migration le plus rapidement possible.
  4. Bien que les règles alpha et bêta co-existent pendant la phase de transition, seules les règles bêta sont appliquées, et les règles alpha sont ignorées.
  5. Pour en savoir plus, consultez la page Authentication Policy (Règle d'authentification) dans la documentation d'Istio.

Étapes suivantes