Accès à des Comptes AWS appartenant à des tiers - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès à des Comptes AWS appartenant à des tiers

Lorsque des tiers ont besoin d'accéder à des ressources AWS de votre organisation, vous pouvez utiliser des rôles pour leur déléguer l'accès. Par exemple, un tiers peut fournir un service de gestion de vos ressources AWS. Les rôles IAM vous permettent d'accorder à ces tiers l'accès à vos ressources AWS sans partager vos informations d'identification de sécurité AWS. Par contre, le tiers peut accéder à vos ressources AWS en endossant un rôle que vous créez dans votre Compte AWS. Pour savoir si les principaux des comptes situés en dehors de votre zone de confiance (organisation ou compte de confiance) ont accès à vos rôles, consultez Qu'est-ce qu'IAM Access Analyzer ?.

Les tiers doivent vous fournir les informations suivantes pour vous permettre de créer un rôle qu'ils peuvent endosser :

  • L’ID du Compte AWS du tiers. Vous spécifiez leur ID d'Compte AWS en tant que principal lorsque vous définissez la politique d'approbation pour le rôle.

  • Un ID externe à attacher uniquement à ce rôle. L'ID externe peut être n'importe quel identifiant qui n'est connu que de vous et de la tierce partie. Par exemple, vous pouvez utiliser un ID de facture entre les tiers et vous-même, mais n'utilisez aucun élément pouvant être deviné, tels que le nom ou le numéro de téléphone du tiers. Vous devez spécifier cet ID lorsque vous définissez la politique d'approbation pour le rôle. Les tiers doivent fournir cette ID lorsqu'ils endosser le rôle.

  • Les autorisations dont le tiers a besoin pour utiliser vos ressources AWS. Vous devez spécifier ces autorisations lors de la définition de la politique d'autorisation du rôle. Cette politique définit les actions que les utilisateurs tiers peuvent entreprendre et les ressources auxquelles ils peuvent accéder.

Après avoir créé le rôle, vous devez fournir l'Amazon Resource Name (ARN) du rôle au tiers. Il a besoin de l'ARN de votre rôle pour endosser le rôle.

Important

Lorsque vous accordez à des tiers l'accès à vos ressources AWS, ceux-ci peuvent accéder aux ressources que vous spécifiez dans la politique. L'utilisation de vos ressources par ces tiers vous est facturée. Veillez à limiter leur utilisation de vos ressources de façon appropriée.

ID externe pour l’accès d’un tiers

Un identifiant externe permet à l’utilisateur qui assume le rôle d’affirmer les circonstances dans lesquelles il travaille. Il permet également au titulaire du compte d'autoriser que le rôle soit endossé uniquement dans des circonstances spécifiques. La fonction principale de l'ID externe consiste à traiter et à prévenir Le problème de l'adjoint confus.

Important

AWS ne considère pas l'ID externe comme un secret. Une fois que vous avez créé un secret comme une paire de clés d'accès ou un mot de passe dans AWS, vous ne pouvez plus l'afficher. L'ID externe d'un rôle peut être vu par n'importe qui ayant l'autorisation de consulter le rôle.

Quand est-il conseillé d'utiliser un ID externe ?

Utilisez un ID externe dans les situations suivantes :

  • Vous êtes propriétaire d'un Compte AWS et vous avez configuré un rôle afin de permettre à une tierce partie d'accéder à d'autres Comptes AWS en plus du vôtre. Vous devez demander à ce tiers un ID externe qu'il inclura lorsqu'il endossera votre rôle. Ensuite, vous vérifiez cet ID externe dans la politique d'approbation de votre rôle. Ainsi, la tierce partie peut endosser votre rôle uniquement lorsqu'elle agit en votre nom.

  • Vous êtes en position d'endosser des rôles pour le compte de différents clients comme Exemple Corp dans notre précédent scénario. Vous devez attribuer un ID externe unique à chaque client et leur demander de l'ajouter à leur politique d'approbation du rôle. Vous devez ensuite vous assurer de toujours inclure l'ID externe correct dans vos demandes pour endosser des rôles.

    Vous disposez probablement déjà d'un identifiant unique pour chacun de vos clients, et cet ID unique est suffisant pour être utilisé comme ID externe. L'ID externe n'est pas une valeur spéciale que vous devez créer de manière explicite, ou suivre séparément, juste à cette fin.

    Vous devez toujours spécifier l'ID externe dans vos appels d'API AssumeRole. De plus, lorsqu'un client vous fournit un ARN de rôle, vérifiez que vous pouvez endosser le rôle avec et sans l'ID externe correct. Si vous pouvez endosser le rôle sans l'ID externe approprié, ne stockez pas l'ARN du rôle du client dans votre système. Attendez que le client mette à jour la politique d'approbation du rôle pour demander l'ID externe. Ainsi, vous aidez vos clients à faire ce qu'il faut, ce qui vous permet de vous protéger tous les deux contre le problème du député confus.

Exemple de scénario utilisant un ID externe

Par exemple, disons que vous décidez d'embaucher une entreprise tierce appelée Example Corp pour surveiller votre Compte AWS et vous aider à optimiser les coûts. Pour effectuer le suivi de vos dépenses quotidiennes, Example Corp doit accéder à vos ressources AWS. Example Corp surveille également de nombreux autres comptes AWS pour d'autres clients.

Ne donnez pas à Exemple Corp l'accès à un utilisateur IAM et à ses informations d'identification à long terme dans votre compte AWS. Utilisez plutôt un rôle IAM et ses informations d'identification de sécurité temporaires. Un rôle IAM fournit un mécanisme visant à autoriser une tierce partie à accéder à vos ressources AWS sans avoir besoin de communiquer vos informations d'identification à long terme (par exemple, une clé d'accès d'utilisateur IAM).

Vous pouvez utiliser un rôle IAM pour établir une relation de confiance entre votre Compte AWS et le compte Exemple Corp. Une fois cette relation établie, un membre du compte exemple Corp peut appeler l'API AssumeRole AWS Security Token Service pour obtenir des informations d'identification de sécurité temporaires. Il peut ensuite s'en servir pour accéder aux ressources AWS de votre compte.

Note

Pour plus d'informations sur AssumeRole et sur les autres opérations d'API AWS que vous pouvez appeler pour obtenir des informations d'identification temporaires, consultez Comparaison des informations d’identification AWS STS.

Voici comment s'articule ce scénario :

  1. Vous embauchez Example Corp qui crée un identifiant client unique pour vous. Ils vous fournissent cet ID de client unique et leur numéro d'Compte AWS. Vous avez besoin de ces informations pour créer un rôle IAM à l'étape suivante.

    Note

    Exemple Corp peut utiliser n'importe quelle valeur de chaîne pour l'ExternalId, tant qu'elle est unique pour chaque client. Il peut s'agir d'un numéro de compte client ou encore d'une chaîne aléatoire de caractères, à condition que chaque client ait une valeur différente. Elle n'est pas censée être « secrète ». Example Corp doit fournir la valeur ExternalId à chaque client. Ce qui compte, c'est qu'elle soit générée par Example Corp et non par ses clients afin de garantir que chaque ID externe est unique.

  2. Vous vous connectez à AWS et vous créez un rôle IAM qui accorde à Example Corp l'accès à vos ressources. Comme tout autre rôle IAM, celui-ci dispose de deux politiques, une politique d'autorisation et une politique d'approbation. La politique d'approbation du rôle spécifie qui peut endosser le rôle. Dans notre exemple de scénario, la politique spécifie le numéro d'Compte AWS d'Example Corp comme Principal. Cela permet aux identités de ce compte d'endosser le rôle. En outre, vous ajoutez un élément Condition à la politique d'approbation. Cette Condition teste la clé de contexte ExternalId afin de s'assurer qu'elle correspond à l'ID client unique issu d'Exemple Corp. Exemple :

    "Principal": {"AWS": "Example Corp's Compte AWS ID"}, "Condition": {"StringEquals": {"sts:ExternalId": "Unique ID Assigned by Example Corp"}}
  3. La politique d'autorisation du rôle spécifie ce que le rôle permet à un utilisateur de faire. Par exemple, vous pouvez spécifier que le rôle permet à un utilisateur de gérer uniquement vos ressources Amazon EC2 et Amazon RDS, mais pas vos utilisateurs ou groupes IAM. Dans notre exemple de scénario, vous utilisez la politique d'autorisation pour accorder à Example Corp un accès en lecture seule à toutes les ressources de votre compte.

  4. Après avoir créé le rôle, vous devez fournir l'Amazon Resource Name (ARN) du rôle à Example Corp.

  5. Lorsque Example Corp doit accéder à vos ressources AWS, quelqu'un de l'entreprise appelle l'API AWS sts:AssumeRole. L'appel inclut l'ARN du rôle à endosser et le paramètre ExternalID qui correspond à son ID client.

Si la demande émane d'une personne utilisant l'Compte AWS d'Example Corp et que l'ARN du rôle et l'ID externe sont corrects, la demande aboutit. Elle fournit alors des informations d'identification de sécurité temporaires que le membre d'Example Corp peut utiliser pour accéder aux ressources AWS autorisées par le rôle.

Autrement dit, quand une politique de rôle inclut un ID externe, tous ceux qui souhaitent endosser le rôle doivent non seulement être spécifiés comme principaux dans le rôle, mais également inclure l'ID externe correct.

Points clés des ID externes

  • Dans un environnement multilocataire où vous prenez en charge plusieurs clients avec différents AWS, nous vous recommandons d'utiliser un ID externe par Compte AWS. Cet ID doit être une chaîne aléatoire générée par le tiers.

  • Pour exiger que le tiers fournisse un ID externe lors de la prise en charge d'un rôle, mettez à jour la politique d'approbation du rôle avec l'ID externe de votre choix.

  • Pour fournir un ID externe lorsque vous endossez un rôle, utilisez l’interface AWS CLI ou l'API AWS pour endosser ce rôle. Pour de plus amples informations, veuillez consulter l'opération d'API STS AssumeRole ou l'opération de CLI STS assume-rôle.

Ressources supplémentaires

Les ressources suivantes peuvent vous aider à en savoir plus sur la fourniture d’un accès aux Comptes AWS appartenant à des tiers.