17.2. Tutoriel : ROSA avec AWS STS expliqué


Ce tutoriel décrit les deux options permettant à Red Hat OpenShift Service sur AWS (ROSA) d’interagir avec les ressources dans le compte Amazon Web Service (AWS) d’un utilisateur. Il détaille les composants et les processus utilisés par ROSA avec Security Token Service (STS) pour obtenir les informations d’identification nécessaires. Il examine également pourquoi ROSA avec STS est la méthode la plus sûre et préférée.

Note

Ce contenu couvre actuellement ROSA Classic avec AWS STS. Dans le cas de ROSA avec des avions de contrôle hébergés (HCP) avec AWS STS, voir AWS STS et ROSA avec HCP expliqué.

Ce tutoriel sera:

  • Énumérez deux des options de déploiement:

    • La ROSA avec les utilisateurs IAM
    • La ROSA avec STS
  • Expliquer les différences entre les deux options
  • Expliquez pourquoi ROSA avec STS est plus sûr et l’option préférée
  • Expliquez comment fonctionne ROSA avec STS

Dans le cadre de ROSA, Red Hat gère les ressources d’infrastructure de votre compte AWS et doit recevoir les autorisations nécessaires. Il existe actuellement deux méthodes prises en charge pour accorder ces autorisations:

  • En utilisant des identifiants d’utilisateur IAM statiques avec une stratégie AdministratorAccess

    Ceci est appelé "ROSA avec les utilisateurs IAM" dans ce tutoriel. Ce n’est pas la méthode d’identification préférée.

  • AWS STS avec des jetons dynamiques et de courte durée

    Ceci est appelé "ROSA avec STS" dans ce tutoriel. C’est la méthode d’identification préférée.

17.2.1.1. La Rosa avec les utilisateurs de l’IAM

Lorsque ROSA a été publié pour la première fois, la seule méthode d’identification était ROSA avec IAM Users. Cette méthode accorde aux utilisateurs de l’IAM un accès complet à la stratégie AdministratorAccess pour créer les ressources nécessaires dans le compte AWS qui utilise ROSA. Le cluster peut ensuite créer et étendre ses informations d’identification au besoin.

17.2.1.2. La ROSA avec STS

Avec STS, ROSA accorde aux utilisateurs un accès limité et à court terme aux ressources de votre compte AWS. La méthode STS utilise des rôles et des politiques prédéfinis pour accorder des autorisations temporaires et moins privilégiées aux utilisateurs IAM ou aux utilisateurs fédérés authentifiés. Les informations d’identification expirent généralement une heure après avoir été demandées. Lorsqu’ils ont expiré, ils ne sont plus reconnus par AWS et n’ont plus accès au compte à partir des demandes d’API faites avec eux. Consultez la documentation AWS pour plus d’informations. Alors que les deux ROSA avec les utilisateurs IAM et ROSA avec STS sont actuellement activés, ROSA avec STS est l’option préférée et recommandée.

17.2.2. La ROSA avec la sécurité STS

De nombreux composants essentiels rendent ROSA avec STS plus sécurisé que ROSA avec IAM Users:

  • Ensemble explicite et limité de rôles et de politiques que l’utilisateur crée à l’avance. L’utilisateur connaît toutes les autorisations demandées et chaque rôle utilisé.
  • Le service ne peut rien faire en dehors de ces autorisations.
  • Chaque fois que le service doit effectuer une action, il obtient des informations d’identification qui expirent en une heure ou moins. Cela signifie qu’il n’est pas nécessaire de faire pivoter ou de révoquer les informations d’identification. De plus, l’expiration des informations d’identification réduit les risques de fuite et de réutilisation des informations d’identification.

17.2.3. AWS STS expliqué

La ROSA utilise AWS STS pour accorder des autorisations les moins privilégiées avec des informations d’identification de sécurité à court terme pour des rôles IAM spécifiques et séparés. Les informations d’identification sont associées à des rôles IAM spécifiques à chaque composant et cluster qui font des appels API AWS. Cette méthode s’harmonise avec les principes des pratiques moins privilégiées et sécurisées dans la gestion des ressources de service cloud. L’outil d’interface de ligne de commande ROSA (CLI) gère les rôles et les stratégies STS qui sont assignés pour des tâches uniques et agit sur les ressources AWS dans le cadre de la fonctionnalité OpenShift.

Les rôles et les politiques STS doivent être créés pour chaque cluster ROSA. Afin de faciliter cette tâche, les outils d’installation fournissent toutes les commandes et fichiers nécessaires pour créer les rôles en tant que stratégies et une option permettant à la CLI de créer automatiquement les rôles et les stratégies. Consultez Créer un cluster ROSA avec STS en utilisant des personnalisations pour plus d’informations sur les différentes options --mode.

17.2.4. Composants spécifiques à ROSA avec STS

  • Infrastructure AWS - Cela fournit l’infrastructure requise pour le cluster. Il contient les instances, le stockage et les composants de réseau EC2. Consultez les types de calcul AWS pour voir les types d’instance pris en charge pour les nœuds de calcul et l’infrastructure AWS provisionnée pour la configuration des avions de contrôle et des nœuds d’infrastructure.
  • AWS STS - Voir la section de méthode d’identification ci-dessus.
  • Connexion OpenID (OIDC) - Cela fournit un mécanisme permettant aux opérateurs de clusters d’authentifier avec AWS, d’assumer les rôles de cluster grâce à une politique de confiance et d’obtenir des informations d’identification temporaires de STS pour effectuer les appels API requis.
  • Les rôles et les politiques - Les rôles et les politiques sont l’une des principales différences entre ROSA avec STS et ROSA avec les utilisateurs IAM. Dans le cas de ROSA avec STS, les rôles et les politiques utilisés par ROSA sont divisés en rôles et politiques à l’échelle du compte et rôles et politiques des opérateurs.

    Les politiques déterminent les actions autorisées pour chacun des rôles. Consultez les ressources de l’IAM pour plus de détails sur les rôles et les politiques individuels.

    • Les rôles suivants à l’échelle du compte sont requis:

      • GérerOpenShift-Installer-Role
      • GéréOpenShift-ControlPlane-Role
      • GéréOpenShift-Worker-Role
      • GéréOpenShift-Support-Role
    • Les politiques suivantes à l’échelle du compte sont requises:

      • GéréOpenShift-Installer-Role-Policy
      • GéréOpenShift-ControlPlane-Role-Policy
      • GéréOpenShift-Worker-Role-Policy
      • GéréOpenShift-Soutien-Rôle-Politique
      • GérerOpenShift-openshift-ingress-operator-cloud-credentials [1]
      • ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent [1]
      • ManagedOpenShift-openshift-cloud-network-config-controller-cloud [1]
      • GérerOpenShift-openshift-machine-api-aws-cloud-credentials [1]
      • GérerOpenShift-openshift-cloud-credential-operator-cloud-crede [1]
      • ManagedOpenShift-openshift-image-registry-installer-cloud-creden [1]

        1. Cette politique est utilisée par les rôles d’opérateur de cluster, énumérés ci-dessous. Les rôles d’opérateur sont créés dans une deuxième étape parce qu’ils dépendent d’un nom de cluster existant et ne peuvent pas être créés en même temps que les rôles à l’échelle du compte.
    • Les rôles d’opérateur sont:

      • <cluster-name\>-xxxx-openshift-cluster-csi-drivers-ebs-cloud-credent
      • <cluster-name\>-xxxx-openshift-cloud-network-config-controller-cloud
      • <cluster-name\>-xxxx-openshift-machine-api-aws-cloud-credentials
      • <cluster-name\>-xxxx-openshift-cloud-credential-operator-cloud-crede
      • <cluster-name\>-xxxx-openshift-image-registry-installer-cloud-creden
      • <cluster-name\>-xxxx-openshift-ingress-operator-cloud-credentials
    • Des politiques de confiance sont créées pour chaque rôle de l’ensemble du compte et de l’opérateur.

17.2.5. Déploiement d’un cluster ROSA STS

Il n’est pas prévu de créer les ressources énumérées dans les étapes ci-dessous à partir de zéro. Le ROSA CLI crée les fichiers JSON requis pour vous et affiche les commandes dont vous avez besoin. Le ROSA CLI peut également aller plus loin et exécuter les commandes pour vous, si vous le souhaitez.

Étapes pour déployer un ROSA avec le cluster STS

  1. Créer les rôles et les politiques à l’échelle du compte.
  2. Attribuez la politique d’autorisations au rôle correspondant à l’échelle du compte.
  3. Créez le cluster.
  4. Créez les rôles et les politiques de l’opérateur.
  5. Attribuez la politique d’autorisation au rôle correspondant de l’opérateur.
  6. Créez le fournisseur OIDC.

Les rôles et les stratégies peuvent être créés automatiquement par le ROSA CLI, ou ils peuvent être créés manuellement en utilisant les drapeaux automatiques --mode ou --mode dans le ROSA CLI. Cliquez ici pour plus de détails sur le déploiement, voir Créer un cluster avec des personnalisations ou le tutoriel Déploiement du cluster.

17.2.6. Flux de travail ROSA avec STS

L’utilisateur crée les rôles requis à l’échelle du compte et les politiques à l’échelle du compte. Consultez la section des composants de ce tutoriel pour plus d’informations. Au cours de la création de rôles, une politique de confiance, connue sous le nom de politique de confiance intercompte, est créée, ce qui permet à un rôle appartenant à Red Hat d’assumer les rôles. Des politiques de confiance sont également créées pour le service EC2, ce qui permet aux charges de travail des instances EC2 d’assumer des rôles et d’obtenir des pouvoirs. L’utilisateur peut alors attribuer une stratégie d’autorisation correspondante à chaque rôle.

Après la création des rôles et des politiques à l’échelle du compte, l’utilisateur peut créer un cluster. Lorsque la création de cluster est lancée, les rôles d’opérateur sont créés afin que les opérateurs de cluster puissent faire des appels API AWS. Ces rôles sont ensuite attribués aux politiques d’autorisation correspondantes qui ont été créées plus tôt et à une politique de confiance avec un fournisseur OIDC. Les rôles d’opérateur diffèrent des rôles à l’échelle du compte en ce qu’ils représentent en fin de compte les pods qui ont besoin d’accéder aux ressources AWS. Comme un utilisateur ne peut pas joindre les rôles IAM aux pods, il doit créer une politique de confiance avec un fournisseur OIDC afin que l’opérateur, et donc les pods, puissent accéder aux rôles dont ils ont besoin.

Lorsque l’utilisateur attribue les rôles aux autorisations de stratégie correspondantes, l’étape finale est de créer le fournisseur OIDC.

Lorsqu’un nouveau rôle est nécessaire, la charge de travail actuellement utilisée dans le rôle Red Hat assumera le rôle dans le compte AWS, obtiendra des informations d’identification temporaires d’AWS STS et commencera à effectuer les actions à l’aide d’appels API dans le compte AWS du client, comme le permet la politique de permissions du rôle assumé. Les informations d’identification sont temporaires et ont une durée maximale d’une heure.

L’ensemble du flux de travail est représenté dans le graphique suivant:

Les opérateurs utilisent le processus suivant pour obtenir les informations d’identification requises pour effectuer leurs tâches. Chaque opérateur se voit attribuer un rôle d’opérateur, une politique d’autorisations et une politique de confiance avec un fournisseur OIDC. L’opérateur assumera le rôle en passant un jeton Web JSON qui contient le rôle et un fichier jeton (web_identity_token_file) au fournisseur OIDC, qui authentifie ensuite la clé signée avec une clé publique. La clé publique est créée lors de la création de clusters et stockée dans un seau S3. L’opérateur confirme ensuite que le sujet dans le fichier de jeton signé correspond au rôle dans la politique de confiance des rôles, ce qui garantit que le fournisseur OIDC ne peut obtenir que le rôle autorisé. Le fournisseur OIDC retourne ensuite les informations d’identification temporaires à l’opérateur afin que l’opérateur puisse effectuer des appels API AWS. Dans le cas d’une représentation visuelle, voir ci-dessous:

17.2.7. Cas d’utilisation de ROSA avec STS

Créer des nœuds à l’installation du cluster

Le programme d’installation Red Hat utilise le rôle RH-Managed-OpenShift-Installer et une politique de confiance pour assumer le rôle Managed-OpenShift-Installer-Role dans le compte du client. Ce processus renvoie les informations d’identification temporaires d’AWS STS. Le programme d’installation commence à faire les appels API requis avec les informations d’identification temporaires reçues de STS. Le programme d’installation crée l’infrastructure requise dans AWS. Les informations d’identification expirent dans une heure et le programme d’installation n’a plus accès au compte du client.

Le même processus s’applique également aux cas de soutien. Dans les cas de soutien, un ingénieur de fiabilité du site Red Hat (SRE) remplace le programme d’installation.

Dimensionnement du cluster

L’opérateur machine-api utilise AssumeRoleWithWebIdentity pour assumer le rôle machine-api-aws-cloud-credentials. Cela lance la séquence pour que les opérateurs de cluster reçoivent les informations d’identification. Le rôle d’opérateur de machine-api peut maintenant faire les appels API pertinents pour ajouter plus d’instances EC2 au cluster.

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