Présentation des identités de charge de travail gérées

La fonctionnalité d'identité de charge de travail gérée fait partie de l'API Identity and Access Management. L'identité de charge de travail gérée simplifie le mTLS en provisionnant et en gérant automatiquement les certificats X.509 à partir de Certificate Authority Service.

L'identité de charge de travail gérée est basée sur la norme Secure Production Identity Framework for Everyone (SPIFFE), qui fournit un framework permettant d'identifier, d'authentifier et de sécuriser les communications entre les charges de travail à l'aide d'un ID SPIFFE unique.

Cette page aborde l'identité de charge de travail gérée dans le contexte de l'attribution d'une identité gérée à un équilibreur de charge pour l'authentification mTLS. Pour en savoir plus sur l'identité de charge de travail gérée pour d'autres charges de travail, consultez Présentation des identités de charge de travail gérées.

ID SPIFFE

Une identité gérée est représentée par un ID SPIFFE. L'ID SPIFFE est un URI qui identifie de manière unique une charge de travail. Dans le cas de mTLS de backend, la charge de travail est le service de backend d'un équilibreur de charge. Son format est le suivant :

spiffe://TRUST_DOMAIN_NAME/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

Un TRUST_DOMAIN_NAME est développé comme suit :

WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog

Pour résumer, les charges de travail Compute Engine, telles que la ressource de service de backend d'un équilibreur de charge, peuvent avoir une identité gérée comme suit :

spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

La section suivante décrit les différentes ressources d'identité de charge de travail gérée.

Hiérarchie des ressources d'identité de charge de travail gérée

Pour configurer une identité de charge de travail gérée pour un équilibreur de charge, vous devez créer les ressources suivantes. Ces ressources sont décrites dans les sections suivantes de ce document.

  • Pool d'identité de charge de travail
  • Espace de noms
  • Identité de charge de travail gérée
  • Règles d'attestation

Pool d'identité de charge de travail

Les identités de charge de travail gérées sont définies dans un pool d'identités de charge de travail, qui sert de domaine de confiance.

Le domaine de confiance représente une limite de sécurité logique dans laquelle les charges de travail peuvent s'authentifier et s'autoriser mutuellement à l'aide de leurs ID SPIFFE. Toutes les charges de travail d'un même domaine de confiance partagent une racine de confiance commune, ce qui leur permet de valider mutuellement leurs identités.

Pour utiliser des identités gérées, vous devez configurer le pool d'identités de charge de travail en mode TRUST_DOMAIN. Toutes les identités d'un pool se composent d'un seul espace de noms et d'un identifiant de charge de travail individuel.

Dans le schéma suivant, l'équilibreur de charge et le backend font partie du même domaine de confiance et partagent le même certificat racine. Le certificat racine permet de créer une chaîne de confiance et de valider l'identité des charges de travail dans le domaine de confiance.

Par défaut, vos charges de travail appartenant au même domaine de confiance peuvent s'authentifier mutuellement à l'aide d'identités de charge de travail gérées. Si vous souhaitez que les charges de travail appartenant à des domaines de confiance différents s'authentifient mutuellement, vous devez déclarer explicitement la relation d'approbation dans le pool d'identités de charge de travail. Pour ce faire, vous devez créer une configuration de confiance intégrée qui reconnaît et accepte les certificats provenant d'autres domaines de confiance.

Hiérarchie des ressources d'identité de charge de travail gérée.
Hiérarchie des ressources d'identité de charge de travail gérée (cliquez pour agrandir)

Espace de noms

Dans un pool d'identités de charge de travail, les identités de charge de travail gérées sont organisées en limites administratives appelées espaces de noms. Les espaces de noms vous aident à organiser les identités de charge de travail associées et à leur accorder l'accès.

Identité de charge de travail gérée

Une identité de charge de travail gérée ou identité gérée est un identifiant de charge de travail configuré dans un pool d'identités de charge de travail. Elle est associée à une ressource Google Cloud. Chaque identité gérée est identifiée de manière unique par un espace de noms et un identifiant de charge de travail individuel.

Dans le contexte de l'obtention du mTLS de backend, l'identité gérée est associée à la ressource de service de backend de l'équilibreur de charge.

La valeur d'une identité gérée est un ID SPIFFE entièrement spécifié qui doit respecter le format suivant :

spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

Règles d'attestation

L'identité de charge de travail gérée pour les ressources Compute Engine nécessite que vous configuriez des règles d'attestation.

Les règles d'attestation de charge de travail contiennent des règles qui spécifient les charges de travail pouvant recevoir un certificat X.509 pour une identité de charge de travail gérée. Les règles d'attestation utilisent des attributs de charge de travail vérifiables, tels que l'ID du projet ou le nom de la ressource, pour s'assurer que seules les charges de travail approuvées peuvent utiliser une identité gérée spécifique.

Étape suivante