Ce document explique comment configurer l'accès basé sur les certificats pour la fédération d'identité de charge de travail à l'aide de certificats X.509.
L'accès basé sur les certificats utilise l'authentification TLS mutuelle (mTLS) pour authentifier le client et le serveur lors d'un handshake TLS. Dans ce processus, une liaison mTLS intègre des stratégies basées sur le contexte de transport et utilise l'état du certificat du client dans la session TLS pour prendre des décisions d'autorisation.
Pour la fédération d'identité de charge de travail X.509, une liaison mTLS garantit que l'ensemble du flux d'authentification est lié de manière sécurisée à une charge de travail approuvée. Cela réduit le risque de vol d'identifiants, car l'authentification est liée à un point de terminaison spécifique et approuvé.
Présentation de la configuration de l'accès basé sur les certificats pour la fédération d'identité de charge de travail
Voici une présentation générale du processus de configuration de l'accès basé sur les certificats pour la fédération d'identité de charge de travail :
Établissez une fédération d'identité de charge de travail en configurant la confiance avec l'ancre de confiance des certificats X.509.
Créez un niveau d'accès pour l'accès basé sur les certificats.
Ajoutez le niveau d'accès à une stratégie d'accès contextuel qui applique la liaison mTLS.
Avant de commencer
Vérifiez que vous remplissez les conditions préalables suivantes :
La dernière version de Google Cloud CLI
Pour passer à la dernière version de Google Cloud CLI, exécutez la commande suivante :
gcloud components updateSi vous devez installer Google Cloud CLI, consultez Installer Google Cloud CLI.
Pour utiliser cette fonctionnalité, remplissez le formulaire suivant afin d'être ajouté à une liste d'autorisation : Formulaire de demande de liste d'autorisation. Vous serez contacté une fois que vous aurez été ajouté à la liste d'autorisation.
Créer un niveau d'accès pour les certificats
Créez un niveau d'accès mTLS. Le niveau d'accès mTLS valide les certificats lors de la détermination de l'accès aux ressources.
Console
Dans Access Context Manager, créez un niveau d'accès personnalisé et saisissez l'expression suivante dans le champ d'expression CEL :
request.auth.matchesMtlsTokens(origin) == true.gcloud
Pour créer un niveau d'accès personnalisé, exécutez la commande suivante :
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \ --title=TITLE \ --custom-level-spec=FILE \ --description=DESCRIPTION \ --policy=POLICY_NAME
Remplacez les éléments suivants :
ACCESS_LEVEL_NAME: nom du niveau d'accès.TITLE: titre du niveau d'accès.FILE: fichier YAML contenant les éléments suivants :expression: "request.auth.matchesMtlsTokens(origin) == true".DESCRIPTION: description du niveau d'accès.POLICY_NAME: nom de la règle d'accès.
Exportez le niveau d'accès que vous avez créé vers une variable d'environnement. Cette variable est utilisée dans les étapes suivantes.
export ACCESS_LEVEL_ID=ACCESS_LEVEL_ID
Remplacez
ACCESS_LEVEL_IDpar le nom du niveau d'accès, par exempleaccessPolicies/12345/accessLevels/acl_1.
Créer une liaison d'accès contextuel pour un pool d'identités de charge de travail
Définissez les variables d'environnement suivantes.
export ORG_ID=ORG_ID export CALLER_PROJECT_ID=CALLER_PROJECT_ID export FEDERATED_PRINCIPAL=FEDERATED_PRINCIPAL
Remplacez les éléments suivants :
ORG_ID: ID de votre organisation.CALLER_PROJECT_ID: ID du projet à utiliser pour appeler les API.FEDERATED_PRINCIPAL: nom du compte principal d'identité dans le pool d'identités de charge de travail qui respecte la stratégie d'accès contextuel. Vous pouvez utiliser l'une des options suivantes :Une seule identité au format -
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUEOU
Toutes les identités d'un pool au format -
principalSet://iam.googleapis.com/projects/