Demande d'informations d'identification temporaires de sécurité - 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.

Demande d'informations d'identification temporaires de sécurité

Pour obtenir des informations d'identification de sécurité temporaires, vous pouvez utiliser les opérations AWS Security Token Service (AWS STS) dans l'API AWS. Elles incluent des opérations destinées à créer et fournir aux utilisateurs des informations d'identification de sécurité temporaires permettant de contrôler l'accès à vos ressources AWS. Pour de plus amples informations sur AWS STS, veuillez consulter Informations d'identification de sécurité temporaires dans IAM. Pour en savoir plus sur les différentes méthodes disponibles pour demander des informations d'identification de sécurité temporaires en assumant un rôle, consultez Utilisation des rôles IAM.

Pour appeler les opérations d'API, vous pouvez utiliser l'un des kits SDK AWS. Les kits SDK sont disponibles pour de nombreux langages de programmation et environnements tels que Java, .NET, Python, Ruby, Android et iOS. Ces kits SDK exécutent des tâches telles que la signature cryptographique de vos demandes, les nouvelles tentatives de demande, lorsque cela est nécessaire, ainsi que la gestion des réponses d'erreur. Vous pouvez également utiliser l'API de requête AWS STS, décrite dans le document AWS Security Token Service API Reference. Enfin, deux outils de ligne de commande prennent en charge les commandes AWS STS, à savoir l'AWS Command Line Interface et les Outils AWS pour Windows PowerShell.

Les opérations d'API AWS STS créent une nouvelle session avec des informations d'identification temporaires qui incluent une paire de clés d'accès et un jeton de sécurité. La paire de clés d'accès comprend un ID de clé d'accès et une clé secrète. Ces informations d'identification permettent aux utilisateurs (ou une application exécutée par l'utilisateur) d'accéder à vos ressources. Vous pouvez créer une session de rôle et transmettre des stratégies de session et des balises de sessions par programme à l'aide des opérations d'API AWS STS. Les autorisations de la session obtenues sont une combinaison des stratégies basées sur l'identité du rôle et des stratégies de session. Pour de amples informations sur les stratégies de session, veuillez consulter Stratégies de session. Pour de plus amples informations sur les balises de session, veuillez consulter Transmission des balises de session dans AWS STS.

Note

La taille du jeton de sécurité renvoyé par les opérations API AWS STS n'est pas fixe. Nous vous recommandons fortement de ne pas formuler d'hypothèses quant à sa taille maximale. La taille du jeton est en général inférieure à 4 096 octets, mais elle peut varier.

Utilisation d'AWS STS avec les régions AWS

Vous pouvez acheminer les appels d'API AWS STS vers un point de terminaison global ou un des points de terminaison régionaux. En choisissant un point de terminaison plus proche de vous, il est possible de réduire la latence et d'améliorer les performances de vos appels d'API. Vous pouvez également diriger vos appels vers un autre point de terminaison régional si vous n'êtes plus en mesure de communiquer avec le point de terminaison initial. Si vous utilisez l'un des kits SDK AWS disponibles, utilisez sa méthode pour spécifier une région avant d'effectuer l'appel d'API. Si vous créez manuellement des demandes d'API HTTP, vous devez les diriger vous-même vers le point de terminaison approprié. Pour plus d'informations, consultez la section AWS STS de Régions et points de terminaison et Gestion de AWS STS dans une région AWS.

Les opérations d'API suivantes vous permettent d'obtenir des informations d'identification temporaires à utiliser dans votre environnement et vos applications AWS

AssumeRole — Délégation entre comptes et fédération via un broker d'identité personnalisé

L'opération d'API AssumeRole est utile, car elle permet aux utilisateurs IAM existants d'accéder aux ressources AWS auxquelles ils n'ont pas encore accès. Par exemple, l'utilisateur peut avoir besoin d'accéder aux ressources d'un autre compte AWS. Elle permet également d'octroyer un accès privilégié temporaire, par exemple pour fournir l'authentification multi-facteurs (MFA). Vous devez appeler cette API à l'aide des informations d'identification d'utilisateurs IAM existants. Pour plus d'informations, consultez Création d'un rôle pour la délégation d'autorisations à un utilisateur IAM et Configuration de l'accès aux API protégé par MFA.

Cet appel doit être effectué à l'aide d'informations d'identification de sécurité AWS valides. Lorsque vous effectuez cet appel, vous transmettez les informations suivantes :

  • L'ARN (Amazon Resource Name) du rôle que l'application doit assumer.

  • (Facultatif) La durée, qui indique la durée des informations d'identification temporaires. Utilisez le paramètre DurationSeconds pour spécifier la durée de la session du rôle entre 900 secondes (15 minutes) et la durée de session maximale pour le rôle. Pour savoir comment afficher la valeur maximale pour votre rôle, consultez Affichage du paramètre de durée de session maximale pour un rôle. Si vous ne transmettez pas ce paramètre, les informations d'identification temporaires expirent au bout d'une heure. Le paramètre DurationSeconds de cette API est différent du paramètre HTTP SessionDuration que vous utilisez pour spécifier la durée de la session d'une console. Utilisez le paramètre HTTP SessionDuration de la demande au point de terminaison de fédération d'un jeton de connexion à la console. Pour plus d'informations, consultez Activation de l'accès de broker d'identité personnalisé à la console AWS.

  • Nom de la session de rôle. Utilisez cette valeur de chaîne pour identifier la session lorsqu'un rôle est utilisé par différents mandataires. Pour des raisons de sécurité, les administrateurs peuvent afficher ce champ dans les journaux AWS CloudTrail pour identifier qui a effectué une action dans AWS. Votre administrateur peut vous demander de spécifier votre nom d'utilisateur IAM comme nom de session lorsque vous assumez le rôle. Pour de plus amples informations, consultez sts:RoleSessionName.

  • (Facultatif) Identité source. Vous pouvez exiger des utilisateurs qu'ils spécifient une identité source lorsqu'ils endossent un rôle. Une fois l'identité source définie, la valeur ne peut pas être modifiée. Elle est présente dans la demande pour toutes les actions qui sont prises durant la session de rôle. La valeur d'identité source persiste dans les sessions de rôles chaînées. Vous pouvez utiliser les informations d'identité source dans les journaux AWS CloudTrail pour déterminer qui a effectué des actions avec un rôle. Pour de plus amples informations sur l'utilisation de l'identité source, consultez Surveiller et contrôler les actions entreprises avec les rôles endossés.

  • (Facultatif) Stratégies de session en ligne ou gérées. Ces stratégies limitent les autorisations à partir de la stratégie basée sur l'identité du rôle qui sont attribuées à la session de rôle. Les autorisations de la session obtenues sont une combinaison des stratégies basées sur l'identité du rôle et des stratégies de session. Les stratégies de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la stratégie basée sur l'identité du rôle assumé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Stratégies de session.

  • (Facultatif) Balises de session. Vous pouvez endosser un rôle, puis utiliser les informations d'identification temporaires pour effectuer une demande. Lorsque vous le faites, les balises du mandataire de la session incluent les balises du rôle et les balises de session transmises. Si vous effectuez cet appel à l'aide d'informations d'identification temporaires, la nouvelle session hérite également des balises de session transitive de la session appelante. Pour de plus amples informations sur les balises de session, veuillez consulter Transmission des balises de session dans AWS STS.

  • (Facultatif) Informations sur MFA. Si la configuration utilise une authentification multi-facteurs (MFA), vous incluez l'identificateur d'un dispositif MFA et le code unique fourni par ce dispositif.

  • (Facultatif) Une valeur ExternalId qui peut être utilisée lorsque vous déléguez l'accès à votre compte à un tiers. Cette valeur permet de s'assurer que seul le tiers spécifié peut accéder au rôle. Pour de plus amples informations, veuillez consulter Procédure d'utilisation d'un ID externe lorsque vous accordez l'accès à vos ressources AWS à un tiers.

L'exemple suivant illustre une demande et une réponse qui utilisent AssumeRole. Cet exemple de demande endosse le rôle demo pour la durée spécifiée avec la stratégie de session, les balises de session, l'ID externe et l'identité source inclus. La session obtenue est nommée John-session.

Exemple de demande

https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=AssumeRole &RoleSessionName=John-session &RoleArn=arn:aws::iam::123456789012:role/demo &Policy=%7B%22Version%22%3A%222012-10-17%22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%20%22Stmt1%22%2C%22Effect%22%3A%20%22Allow%22%2C%22Action%22%3A%20%22s3%3A*%22%2C%22Resource%22%3A%20%22*%22%7D%5D%7D &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &ExternalId=123ABC &SourceIdentity=DevUser123 &AUTHPARAMS

La valeur de stratégie indiquée dans l'exemple précédent est la version encodée en URL de la stratégie suivante :

{"Version":"2012-10-17","Statement":[{"Sid":"Stmt1","Effect":"Allow","Action":"s3:*","Resource":"*"}]}

Le paramètre AUTHPARAMS de l'exemple est un espace réservé pour votre signature. Une signature correspond aux informations d'authentification que vous devez inclure avec les demandes d'API AWS HTTP. Lors de la création de demandes d'API, nous vous recommandons d'utiliser les kits SDK AWS, car ceux-ci gèrent diverses tâches pour vous, notamment la signature des demandes. Si vous devez créer des demandes d'API et les signer manuellement, consultez Signature de demandes AWS à l'aide de Signature Version 4 dans le Références générales sur Amazon Web Services pour savoir comment procéder.

Outre les informations d'identification de sécurité temporaires, la réponse inclut l'ARN (Amazon Resource Name) de l'utilisateur fédéré et la date d'expiration des informations d'identification.

Exemple de réponse

<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <AssumeRoleResult> <SourceIdentity>DevUser123</SourceIdentity> <Credentials> <SessionToken> AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2019-07-15T23:28:33.359Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId> </Credentials> <AssumedRoleUser> <Arn>arn:aws:sts::123456789012:assumed-role/demo/John</Arn> <AssumedRoleId>ARO123EXAMPLE123:John</AssumedRoleId> </AssumedRoleUser> <PackedPolicySize>8</PackedPolicySize> </AssumeRoleResult> <ResponseMetadata> <RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId> </ResponseMetadata> </AssumeRoleResponse>
Note

Une conversion AWS compresse les stratégies de session et les balises de session transmises dans un format binaire compressé, qui possède une limite distincte. Votre demande peut échouer pour cette limite, même si votre texte brut répond aux autres exigences. L'élément de réponse PackedPolicySize indique en pourcentage la proximité des stratégies et des balises de votre requête par rapport à la limite de taille supérieure.

AssumeRoleWithWebIdentity — Fédération via un fournisseur d'identité web

L'opération d'API AssumeRoleWithWebIdentity renvoie un ensemble d'informations d'identification de sécurité temporaires pour les utilisateurs fédérés authentifiés par le biais d'un fournisseur d'identité public. Login with Amazon, Facebook, Google ou tout fournisseur d'identité compatible avec OpenID Connect (OIDC) sont des exemples de fournisseurs d'identité publics. Cette opération est utile pour créer des applications mobiles ou des applications web basées sur le client qui requièrent l'accès à AWS. À l'aide de cette opération, les utilisateurs n'ont pas besoin de leurs propres identités AWS ou IAM. Pour de plus amples informations, veuillez consulter À propos de la fédération d'identité web.

Plutôt que d'appeler directement AssumeRoleWithWebIdentity, il est recommandé d'appeler Amazon Cognito et le fournisseur d'informations d'identification Amazon Cognito avec les kits SDK AWS pour le développement mobile. Pour de plus amples informations, veuillez consulter les ressources suivantes :

Si vous n'utilisez pas Amazon Cognito, vous appelez l'action AssumeRoleWithWebIdentity d'AWS STS. Il s'agit d'un appel non signé, ce qui signifie que l'application n'a pas besoin d'accéder aux informations d'identification AWS pour effectuer l'appel. Lorsque vous effectuez cet appel, vous transmettez les informations suivantes :

  • L'ARN (Amazon Resource Name) du rôle que l'application doit assumer. Si votre application permet aux utilisateurs de se connecter de plusieurs façons, vous devez définir plusieurs rôles, à raison d'un rôle par fournisseur d'identité. L'appel de AssumeRoleWithWebIdentity doit inclure l'ARN du rôle spécifique au fournisseur par le biais duquel l'utilisateur se connecte.

  • Le jeton que l'IdP fourni à l'application une fois que celle-ci a authentifié l'utilisateur.

  • Vous pouvez configurer votre fournisseur d'identité pour qu'il transmette des attributs à votre jeton en tant que balises de session.

  • (Facultatif) La durée, qui indique la durée des informations d'identification temporaires. Utilisez le paramètre DurationSeconds pour spécifier la durée de la session du rôle entre 900 secondes (15 minutes) et la durée de session maximale pour le rôle. Pour savoir comment afficher la valeur maximale pour votre rôle, consultez Affichage du paramètre de durée de session maximale pour un rôle. Si vous ne transmettez pas ce paramètre, les informations d'identification temporaires expirent au bout d'une heure. Le paramètre DurationSeconds de cette API est différent du paramètre HTTP SessionDuration que vous utilisez pour spécifier la durée de la session d'une console. Utilisez le paramètre HTTP SessionDuration de la demande au point de terminaison de fédération d'un jeton de connexion à la console. Pour plus d'informations, consultez Activation de l'accès de broker d'identité personnalisé à la console AWS.

  • Nom de la session de rôle. Utilisez cette valeur de chaîne pour identifier la session lorsqu'un rôle est utilisé par différents mandataires. Pour des raisons de sécurité, les administrateurs peuvent afficher ce champ dans les journaux AWS CloudTrail pour savoir qui a effectué une action dans AWS. Votre administrateur peut vous demander de fournir une valeur spécifique pour le nom de session lorsque vous assumez le rôle. Pour de plus amples informations, consultez sts:RoleSessionName.

  • (Facultatif) Identité source. Vous pouvez exiger des utilisateurs fédérés qu'ils spécifient une identité source lorsqu'ils endossent un rôle. Une fois l'identité source définie, la valeur ne peut pas être modifiée. Elle est présente dans la demande pour toutes les actions qui sont prises durant la session de rôle. La valeur d'identité source persiste dans les sessions de rôles chaînées. Vous pouvez utiliser les informations d'identité source dans les journaux AWS CloudTrail pour déterminer qui a effectué des actions avec un rôle. Pour de plus amples informations sur l'utilisation de l'identité source, consultez Surveiller et contrôler les actions entreprises avec les rôles endossés.

  • (Facultatif) Stratégies de session en ligne ou gérées. Ces stratégies limitent les autorisations à partir de la stratégie basée sur l'identité du rôle qui sont attribuées à la session de rôle. Les autorisations de la session obtenues sont une combinaison des stratégies basées sur l'identité du rôle et des stratégies de session. Les stratégies de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la stratégie basée sur l'identité du rôle assumé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Stratégies de session.

    Note

    Un appel à AssumeRoleWithWebIdentity n'est pas signé (chiffré). Par conséquent, vous devez uniquement inclure des stratégies de session facultatives si la demande est transmise via un intermédiaire approuvé. Dans ce cas, une personne peut modifier la stratégie afin de supprimer les restrictions.

Lorsque vous appelez AssumeRoleWithWebIdentity, AWS vérifie l'authenticité du jeton. Par exemple, selon le fournisseur utilisé, AWS peut appeler ce fournisseur et inclure le jeton transmis par l'application. En supposant que le fournisseur d'identité valide le jeton, AWS retourne les informations suivantes :

  • Un ensemble d'informations d'identification de sécurité temporaires. Il s'agit d'un ID de clé d'accès, d'une clé d'accès secrète et d'un jeton de session.

  • L'ID de rôle et l'ARN du rôle assumé.

  • Une valeur SubjectFromWebIdentityToken qui contient l'ID utilisateur unique.

Une fois que vous disposez d'informations d'identification de sécurité temporaires, vous pouvez les utiliser pour effectuer des appels d'API AWS. Le processus est identique à un appel d'API AWS avec les informations d'identification de sécurité à long terme. La différence est que vous devez inclure le jeton de session, ce qui permet à AWS de vérifier la validité des informations d'identification de sécurité temporaires.

Votre application met en cache les informations d'identification. Comme indiqué précédemment, par défaut, les informations d'identification expirent au bout d'une heure. Si vous n'utilisez pas l'opération AmazonSTSCredentialsProvider du kit SDK AWS, il vous revient, à vous et à votre application, de rappeler AssumeRoleWithWebIdentity. Appelez cette opération pour obtenir un nouvel ensemble d'informations d'identification de sécurité temporaires avant l'expiration des anciennes.

AssumeRoleWithSAML — Fédération via un fournisseur d'identité d'entreprise compatible avec SAML 2.0

L'opération d'API AssumeRoleWithSAML renvoie un ensemble d'informations d'identification de sécurité temporaires pour les utilisateurs fédérés authentifiés par le système d'identité existant de votre organisation. Les utilisateurs doivent également utiliser SAML 2.0 (Security Assertion Markup Language) pour transmettre les informations d'authentification et d'autorisation à AWS. Cette opération d'API s'avère utile pour les organisations qui ont intégré leurs systèmes d'identité (comme Windows Active Directory ou OpenLDAP) à un logiciel capable de générer des assertions SAML. Cette intégration fournit des informations sur l'identité et les autorisations des utilisateurs (comme Active Directory Federation Services ou Shibboleth). Pour plus d'informations, consultez À propos de la fédération SAML 2.0.

Il s'agit d'un appel non signé, ce qui signifie que l'application n'a pas besoin d'accéder aux informations d'identification AWS pour effectuer l'appel. Lorsque vous effectuez cet appel, vous transmettez les informations suivantes :

  • L'ARN (Amazon Resource Name) du rôle que l'application doit assumer.

  • L'ARN du fournisseur SAML créé dans IAM qui décrit le fournisseur d'identité.

  • L'assertion SAML, encodée en base64, qui a été fournie par le fournisseur d'identité SAML dans sa réponse d'authentification SAML à la demande de connexion de votre application.

  • Vous pouvez configurer votre fournisseur d'identité pour qu'il transmette des attributs à votre assertion SAML en tant que balises de session.

  • (Facultatif) La durée, qui indique la durée des informations d'identification temporaires. Utilisez le paramètre DurationSeconds pour spécifier la durée de la session du rôle entre 900 secondes (15 minutes) et la durée de session maximale pour le rôle. Pour savoir comment afficher la valeur maximale pour votre rôle, consultez Affichage du paramètre de durée de session maximale pour un rôle. Si vous ne transmettez pas ce paramètre, les informations d'identification temporaires expirent au bout d'une heure. Le paramètre DurationSeconds de cette API est différent du paramètre HTTP SessionDuration que vous utilisez pour spécifier la durée de la session d'une console. Utilisez le paramètre HTTP SessionDuration de la demande au point de terminaison de fédération d'un jeton de connexion à la console. Pour de plus amples informations, veuillez consulter Activation de l'accès de broker d'identité personnalisé à la console AWS.

  • (Facultatif) Stratégies de session en ligne ou gérées. Ces stratégies limitent les autorisations à partir de la stratégie basée sur l'identité du rôle qui sont attribuées à la session de rôle. Les autorisations de la session obtenues sont une combinaison des stratégies basées sur l'identité du rôle et des stratégies de session. Les stratégies de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la stratégie basée sur l'identité du rôle assumé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Stratégies de session.

  • (Facultatif) Identité source. Vous pouvez exiger des utilisateurs fédérés qu'ils spécifient une identité source lorsqu'ils endossent un rôle. Une fois l'identité source définie, la valeur ne peut pas être modifiée. Elle est présente dans la demande pour toutes les actions qui sont prises durant la session de rôle. La valeur d'identité source persiste dans les sessions de rôles chaînées. Vous pouvez utiliser les informations d'identité source dans les journaux AWS CloudTrail pour déterminer qui a effectué des actions avec un rôle. Pour de plus amples informations sur l'utilisation de l'identité source, consultez Surveiller et contrôler les actions entreprises avec les rôles endossés.

Lorsque vous appelez AssumeRoleWithSAML, AWS vérifie l'authenticité de l'assertion SAML. En supposant que le fournisseur d'identité valide l'assertion, AWS retourne les informations suivantes :

  • Un ensemble d'informations d'identification de sécurité temporaires. Il s'agit d'un ID de clé d'accès, d'une clé d'accès secrète et d'un jeton de session.

  • L'ID de rôle et l'ARN du rôle assumé.

  • Une valeur Audience qui contient la valeur de l'attribut Recipient de l'élément SubjectConfirmationData de l'assertion SAML.

  • Une valeur Issuer qui contient la valeur de l'élément Issuer de l'assertion SAML.

  • Un élément NameQualifier qui contient une valeur de hachage créée à partir de la valeur Issuer, l'ID de compte AWS et le nom convivial du fournisseur SAML. Lors de la combinaison avec l'élément Subject, ils identifient de manière unique l'utilisateur fédéré.

  • Un élément Subject qui contient la valeur de l'élément NameID dans l'élément Subject de l'assertion SAML.

  • Un élément SubjectType qui indique le format de l'élément Subject. La valeur peut être persistent, transient ou l'URI Format complet des éléments Subject et NameID utilisés dans votre assertion SAML. Pour plus d'informations sur l'attribut NameID de l'élément Format, consultez Configuration des assertions SAML pour la réponse d'authentification.

Une fois que vous disposez d'informations d'identification de sécurité temporaires, vous pouvez les utiliser pour effectuer des appels d'API AWS. Le processus est identique à un appel d'API AWS avec les informations d'identification de sécurité à long terme. La différence est que vous devez inclure le jeton de session, ce qui permet à AWS de vérifier la validité des informations d'identification de sécurité temporaires.

Votre application met en cache les informations d'identification. Par défaut, les informations d'identification expirent au bout d'une heure. Si vous n'utilisez pas l'action AmazonSTSCredentialsProvider du kit SDK AWS, il vous revient, à vous et à votre application, de rappeler AssumeRoleWithSAML. Appelez cette opération pour obtenir un nouvel ensemble d'informations d'identification de sécurité temporaires avant l'expiration des anciennes.

GetFederationToken — Fédération via un broker d'identité personnalisé

L'opération d'API GetFederationToken retourne un ensemble d'informations d'identification de sécurité temporaires pour les utilisateurs fédérés. La différence entre cette API et AssumeRole réside dans le fait que le délai d'expiration par défaut est considérablement plus long (12 heures au lieu d'une heure). De plus, vous pouvez utiliser le paramètre DurationSeconds pour spécifier une durée pour que les informations d'identification de sécurité temporaires restent valides. Les informations d'identification obtenues sont valides pendant la durée spécifiée, à savoir entre 900 secondes (15 minutes) et 129 600 secondes (36 heures). Un délai d'expiration plus long permet de réduire le nombre d'appels à AWS, car vous devez obtenir de nouvelles informations d'identification moins souvent. Pour plus d'informations, consultez Demande d'informations d'identification temporaires de sécurité.

Lorsque vous effectuez cette requête, vous utilisez les informations d'identification d'un utilisateur IAM spécifique. Les autorisations octroyées avec les informations d'identification de sécurité temporaires sont déterminées par les stratégies de session transmises lors de l'appel de GetFederationToken. Les autorisations de session obtenues sont une combinaison des stratégies d'utilisateur IAM et des stratégies de session que vous transmettez. Les stratégies de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la stratégie basée sur les identités de l'utilisateur IAM qui demande la fédération. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Stratégies de session.

Lorsque vous utilisez les informations d'identification temporaires renvoyées par l'opération GetFederationToken, les balises principales de la session incluent les balises de l'utilisateur et les balises de session transmises. Pour de plus amples informations sur les balises de session, veuillez consulter Transmission des balises de session dans AWS STS.

L'appel de GetFederationToken retourne des informations d'identification de sécurité temporaires constituées d'un jeton de sécurité, d'une clé d'accès, d'une clé secrète et d'un délai d'expiration. Vous pouvez utiliser GetFederationToken si vous souhaiter gérer les autorisations au sein de l'organisation (par exemple, pour octroyer des autorisations à l'aide de l'application proxy). Pour obtenir un exemple d'application qui utilise GetFederationToken, consultez Exemple d'application de la fédération d'identité pour un cas d'utilisation d'Active Directory dans les Exemples de code et bibliothèques AWS.

L'exemple suivant illustre une demande et une réponse qui utilisent GetFederationToken. Cet exemple de requête fédère l'utilisateur appelant pour la durée spécifiée avec l'ARN de stratégie de session et les balises de session. La session obtenue est nommée Jane-session.

Exemple de demande

https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetFederationToken &Name=Jane-session &PolicyArns.member.1.arn==arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2FRole1policy &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &AUTHPARAMS

L'ARN de stratégie illustrée dans l'exemple précédent inclut les ARN encodés en URL suivants :

arn:aws:iam::123456789012:policy/Role1policy

Notez également que le paramètre &AUTHPARAMS dans l'exemple est conçu comme un espace réservé pour les informations d'authentification. Il s'agit de la signature, que vous devez inclure avec les requêtes d'API HTTP AWS. Lors de la création de demandes d'API, nous vous recommandons d'utiliser les kits SDK AWS, car ceux-ci gèrent diverses tâches pour vous, notamment la signature des demandes. Si vous devez créer des demandes d'API et les signer manuellement, consultez Signature de demandes AWS à l'aide de Signature Version 4 dans le document Références générales sur Amazon Web Services pour savoir comment procéder.

Outre les informations d'identification de sécurité temporaires, la réponse inclut l'ARN (Amazon Resource Name) de l'utilisateur fédéré et la date d'expiration des informations d'identification.

Exemple de réponse

<GetFederationTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <GetFederationTokenResult> <Credentials> <SessionToken> AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCEXAMPLE== </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2019-04-15T23:28:33.359Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE;</AccessKeyId> </Credentials> <FederatedUser> <Arn>arn:aws:sts::123456789012:federated-user/Jean</Arn> <FederatedUserId>123456789012:Jean</FederatedUserId> </FederatedUser> <PackedPolicySize>4</PackedPolicySize> </GetFederationTokenResult> <ResponseMetadata> <RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId> </ResponseMetadata> </GetFederationTokenResponse>
Note

Une conversion AWS compresse les stratégies de session et les balises de session transmises dans un format binaire compressé, qui possède une limite distincte. Votre demande peut échouer pour cette limite, même si votre texte brut répond aux autres exigences. L'élément de réponse PackedPolicySize indique en pourcentage la proximité des stratégies et des balises de votre requête par rapport à la limite de taille supérieure.

AWS recommande d'accorder des autorisations au niveau des ressources (par exemple, pour attacher une stratégie basée sur les ressources à un compartiment Amazon S3) et d'omettre le paramètre Policy. Toutefois, si vous n'incluez pas de stratégie pour un utilisateur fédéré, les informations d'identification de sécurité temporaires ne lui accordent aucune autorisation. Dans ce cas, vous devez utiliser des stratégies de ressources pour accorder à l'utilisateur fédéré l'accès à vos ressources AWS.

Supposons, par exemple, que votre numéro de compte AWS soit 111122223333 et que vouliez accorder à Susan l'accès à un compartiment Amazon S3. Les informations d'identification de sécurité temporaires de Susan ne comprennent pas de stratégie pour ce compartiment. Dans ce cas, vous devez vous assurer que le compartiment est doté d'une stratégie avec un ARN correspondant à celui de Susan, par exemple arn:aws:sts::111122223333:federated-user/Susan.

GetSessionToken — Informations d'identification temporaires pour les utilisateurs qui se trouvent dans des environnements non fiables

L'opération 'API GetSessionToken retourne un ensemble d'informations d'identification de sécurité temporaires pour un utilisateur IAM existant. Elle est utile pour fournir une sécurité renforcée, par exemple pour autoriser les demandes AWS uniquement lorsque l'authentification multi-facteurs (MFA) est activée pour l'utilisateur IAM. Dans la mesure où les informations d'identification sont temporaires, elles offrent une sécurité améliorée lorsqu'un utilisateur IAM accède à vos ressources par le biais d'un environnement moins sécurisé. Les exemples d'environnements moins sécurisés incluent un périphérique mobile ou un navigateur web. Pour de plus amples informations, veuillez consulter Demande d'informations d'identification temporaires de sécurité ou GetSessionToken dans le AWS Security Token Service API Reference.

Par défaut, les informations d'identification de sécurité temporaires d'un utilisateur IAM restent valides pendant 12 heures maximum. Mais vous pouvez demander un durée de validité allant de 15 minutes à 36 heures à l'aide du paramètre DurationSeconds. Pour des raisons de sécurité, la durée de validité du jeton de l'Utilisateur racine d'un compte AWS est limitée à une heure.

GetSessionToken retourne des informations d'identification de sécurité temporaires constituées d'un jeton de sécurité, d'un ID de clé d'accès et d'une clé d'accès secrète. L'exemple suivant illustre une demande et une réponse qui utilisent GetSessionToken. La réponse inclut également l'heure d'expiration des informations d'identification de sécurité temporaires.

Exemple de demande

https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=1800 &AUTHPARAMS

Le paramètre AUTHPARAMS de l'exemple est un espace réservé pour votre signature. Une signature correspond aux informations d'authentification que vous devez inclure avec les demandes d'API AWS HTTP. Lors de la création de demandes d'API, nous vous recommandons d'utiliser les kits SDK AWS, car ceux-ci gèrent diverses tâches pour vous, notamment la signature des demandes. Si vous devez créer des demandes d'API et les signer manuellement, consultez Signature de demandes AWS à l'aide de Signature Version 4 dans le document Références générales sur Amazon Web Services pour savoir comment procéder.

Exemple de réponse

<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <GetSessionTokenResult> <Credentials> <SessionToken> AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L To6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3z rkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtp Z3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2011-07-11T19:55:29.611Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId> </Credentials> </GetSessionTokenResult> <ResponseMetadata> <RequestId>58c5dbae-abef-11e0-8cfe-09039844ac7d</RequestId> </ResponseMetadata> </GetSessionTokenResponse>

La demande GetSessionToken peut également inclure les valeurs SerialNumber et TokenCode pour la vérification de l'authentification multi-facteurs (MFA) AWS. Si les valeurs indiquées sont valides, AWS STS fournit des informations d'identification de sécurité temporaires qui incluent l'état de l'authentification MFA. Les informations d'identification de sécurité temporaires peuvent ensuite être utilisées pour accéder aux opérations d'API protégées par un code MFA ou aux sites web AWS, tant que l'authentification MFA est valide.

L'exemple suivant illustre une demande GetSessionToken qui inclut un code de vérification et un numéro de série de périphérique MFA.

https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=7200 &SerialNumber=YourMFADeviceSerialNumber &TokenCode=123456 &AUTHPARAMS
Note

L'appel à AWS STS peut être dirigé vers un point de terminaison global ou tout point de terminaison régional pour lequel vous activez votre compte AWS. Pour plus d'informations, veuillez consulter la section AWS STS de Régions et points de terminaison.

Le paramètre AUTHPARAMS de l'exemple est un espace réservé pour votre signature. Une signature correspond aux informations d'authentification que vous devez inclure avec les demandes d'API AWS HTTP. Lors de la création de demandes d'API, nous vous recommandons d'utiliser les kits SDK AWS, car ceux-ci gèrent diverses tâches pour vous, notamment la signature des demandes. Si vous devez créer des demandes d'API et les signer manuellement, consultez Signature de demandes AWS à l'aide de Signature Version 4 dans le Références générales sur Amazon Web Services pour savoir comment procéder.

Comparaison des opérations d'API AWS STS

Le tableau suivant compare les fonctions des opérations d'API AWS STS qui renvoient des informations d'identification de sécurité temporaires. Pour en savoir plus sur les différentes méthodes disponibles pour demander des identifiants de sécurité temporaires en assumant un rôle, consultez Utilisation des rôles IAM. Pour en savoir plus sur les différentes opérations d'API AWS STS qui vous permettent de transmettre des balises de session, veuillez consulter Transmission des balises de session dans AWS STS.

Comparaison des options d'API
API AWS STS Qui peut appeler Durée de vie des informations d'identification (min | max | par défaut) Prise en charge de MFA¹ Prise en charge de la stratégie de session² Restrictions applicables aux informations d'identification temporaires générées
AssumeRole Utilisateur IAM ou rôle IAM disposant d'informations d'identification de sécurité temporaires existantes 15 min | Durée de session maximale³ | 1 h Oui Oui

Impossible d'appeler GetFederationToken ou GetSessionToken.

AssumeRoleWithSAML N'importe quel utilisateur ; le mandataire doit transmettre une réponse d'authentification SAML qui spécifie l'authentification par un fournisseur d'identité reconnu 15 min | Durée de session maximale³ | 1 heure Non Oui

Impossible d'appeler GetFederationToken ou GetSessionToken.

AssumeRoleWithWebIdentity N'importe quel utilisateur ; le mandataire doit transmettre un jeton d'identité web qui spécifie l'authentification par un fournisseur d'identité reconnu 15 min | Durée de session maximale³ | 1 heure Non Oui

Impossible d'appeler GetFederationToken ou GetSessionToken.

GetFederationToken Utilisateur IAM ou Utilisateur racine d'un compte AWS

Utilisateur IAM : 15 min | 36 heures | 12 heures

Utilisateur racine : 15 min | 1 heure | 1 heure

Non Oui

Impossible d'appeler des opérations IAM à l'aide de l'AWS CLI ou de l'API AWS.

Impossible d'appeler des opérations AWS STS, à l'exception de GetCallerIdentity.⁴

Connexion avec authentification unique (SSO) à la console autorisée.⁵

GetSessionToken Utilisateur IAM ou Utilisateur racine d'un compte AWS

Utilisateur IAM : 15 min | 36 heures | 12 heures

Utilisateur racine : 15 min | 1 heure | 1 heure

Oui Non

Impossible d'appeler les opérations d'API IAM si les informations MFA ne figurent pas dans la demande.

Impossible d'appeler les opérations d'API AWS STS, à l'exception de AssumeRole ou de GetCallerIdentity.

Connexion avec authentification unique (SSO) à la console non autorisée.⁶

¹ Prise en charge de MFA. Lorsque vous appelez les opérations d'API AssumeRole et GetSessionToken, vous pouvez inclure des informations relatives à un périphérique d'authentification multi-facteurs (MFA). De cette façon, les informations d'identification de sécurité temporaires obtenues lors l'appel d'API peuvent uniquement être utilisées par des utilisateurs authentifiés à l'aide d'un périphérique MFA. Pour plus d'informations, veuillez consulter Configuration de l'accès aux API protégé par MFA.

² Prise en charge de la stratégie de session. Les stratégies de session sont des stratégies que vous passez en tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Cette stratégie limite les autorisations à partir de la stratégie basée sur l'identité du rôle ou de l'utilisateur qui sont attribuées à la session. Les autorisations de la session obtenues sont une combinaison des stratégies basées sur l'identité de l'entité et des stratégies de session. Les stratégies de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la stratégie basée sur l'identité du rôle assumé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Stratégies de session.

³ Durée de session maximale. Utilisez le paramètre DurationSeconds pour spécifier la durée de la session de votre rôle entre 900 secondes (15 minutes) et la durée de session maximale pour le rôle. Pour savoir comment afficher la valeur maximale pour votre rôle, consultez Affichage du paramètre de durée de session maximale pour un rôle.

GetCallerIdentity. Aucune autorisation n'est requise pour effectuer cette opération. Si un administrateur ajoute une stratégie à votre utilisateur ou rôle IAM qui refuse explicitement l'accès à l'action sts:GetCallerIdentity, vous pouvez toujours effectuer cette opération. Les autorisations ne sont pas requises, car les mêmes informations sont renvoyées lorsqu'un utilisateur ou un rôle IAM se voit refuser l'accès. Pour afficher un exemple de réponse, consultez Je ne suis pas autorisé à exécuter iam:DeleteVirtualMFADevice.

Connexion avec authentification unique (SSO) à la console. Afin de prendre en charge la connexion avec authentification unique (SSO), AWS vous permet d'appeler un point de terminaison de fédération (https://signin.aws.amazon.com/federation) et de transmettre des informations d'identification de sécurité temporaires. Le point de terminaison retourne un jeton que vous pouvez utiliser pour créer une URL qui connecte directement l'utilisateur à la console, sans avoir besoin d'un mot de passe. Pour plus d'informations, consultez Activation de l'accès des utilisateurs fédérés SAML 2.0 à AWS Management Console et How to Enable Cross-Account Access to the AWS Management Console dans le blog sur la sécurité AWS.

⁶ Une fois que vous avez récupéré vos informations d'identification temporaires, vous ne pouvez pas accéder à l'AWS Management Console en transmettant les informations d'identification au point de terminaison d'authentification unique de fédération. Pour plus d'informations, consultez Activation de l'accès de broker d'identité personnalisé à la console AWS.