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.
- 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'authentificationPeerAuthentication
au niveau du maillage ou de l'espace de noms. Lorsque vous utilisezPeerAuthentication
au niveau de la charge de travail, vous devez configurer une authentificationDestinationRule
correspondante. - 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 authentificationAuthorizationPolicy
pour définir un contrôle des accès plus précis. - 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.
- 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.
- Pour en savoir plus, consultez la page Authentication Policy (Règle d'authentification) dans la documentation d'Istio.