9.2. Comment les comptes de service assument les rôles AWS IAM dans les projets définis par l’utilisateur


Lorsque vous installez un service Red Hat OpenShift sur le cluster AWS qui utilise le service de jetons de sécurité AWS (STS), les ressources de webhook d’identité de pod sont incluses par défaut.

Le webhook d’identité de pod permet d’activer un compte de service dans un projet défini par l’utilisateur pour assumer un rôle AWS Identity and Access Management (IAM) dans un pod dans le même projet. Lorsque le rôle IAM est assumé, des informations d’identification STS temporaires sont fournies pour utilisation par le compte de service dans la pod. Lorsque le rôle assumé dispose des privilèges AWS nécessaires, le compte de service peut exécuter les opérations SDK AWS dans la pod.

Afin d’activer le webhook d’identité de pod pour un pod, vous devez créer un compte de service avec un eks.amazonaws.com/role-arn annotation dans votre projet. L’annotation doit faire référence au nom de ressource Amazon (ARN) du rôle AWS IAM que vous souhaitez que le compte de service assume. Il faut également faire référence au compte de service dans votre spécification Pod et déployer le pod dans le même projet que le compte de service.

Flux de travail webhook d’identité pod dans les projets définis par l’utilisateur

Le diagramme suivant illustre le flux de travail webhook d’identité pod dans les projets définis par l’utilisateur:

Figure 9.2. Flux de travail webhook d’identité pod dans les projets définis par l’utilisateur

Le flux de travail comporte les étapes suivantes:

  1. Dans un projet défini par l’utilisateur, un utilisateur crée un compte de service qui inclut une annotation eks.amazonaws.com/role-arn. L’annotation indique l’ARN du rôle AWS IAM que vous souhaitez que votre compte de service assume.
  2. Lorsqu’un pod est déployé dans le même projet à l’aide d’une configuration qui fait référence au compte de service annoté, le webhook d’identité de pod mute le pod. La mutation injecte les composants suivants dans le pod sans avoir besoin de les spécifier dans vos configurations de ressources Pod ou Deployment:

    • La variable d’environnement $AWS_ARN_ROLE qui contient l’ARN pour le rôle IAM qui a les autorisations requises pour exécuter les opérations SDK AWS.
    • La variable d’environnement $AWS_WEB_IDENTITY_TOKEN_FILE qui contient le chemin complet dans le pod vers le jeton OpenID Connect (OIDC) pour le compte de service. Le chemin complet est /var/run/secrets/eks.amazonaws.com/serviceaccount/token.
    • Aws-iam-token volume monté sur le point de montage /var/run/secrets/eks.amazonaws.com/serviceaccount. Le volume contient un fichier de jetons OIDC nommé token.
  3. Le jeton OIDC est transmis du pod au fournisseur OIDC. Le fournisseur authentifie l’identité du compte de service si les exigences suivantes sont remplies:

    • La signature d’identité est valide et signée par la clé privée.
    • L’audience sts.amazonaws.com est listée dans le jeton OIDC et correspond à l’audience configurée dans le fournisseur OIDC.

      Note

      Le webhook d’identité de pod applique l’audience sts.amazonaws.com au jeton OIDC par défaut.

      Dans Red Hat OpenShift Service sur AWS avec des clusters STS, le fournisseur OIDC est créé lors de l’installation et défini comme émetteur de compte de service par défaut. L’audience sts.amazonaws.com est définie par défaut dans le fournisseur OIDC.

    • Le jeton OIDC n’a pas expiré.
    • La valeur de l’émetteur dans le jeton contient l’URL pour le fournisseur OIDC.
  4. Lorsque le compte de projet et de service est dans le champ d’application de la politique de confiance pour le rôle de l’IAM qui est assumé, l’autorisation réussit.
  5. Après authentification et autorisation réussies, les informations d’identification AWS STS temporaires sous la forme d’un jeton de session sont transmises à la pod pour utilisation par le compte de service. En utilisant les informations d’identification, le compte de service reçoit temporairement les autorisations AWS activées dans le rôle IAM.
  6. Lorsque vous exécutez des opérations SDK AWS dans la pod, le compte de service fournit les informations d’identification STS temporaires à l’API AWS pour vérifier son identité.
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat