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 demander des informations d'identification de sécurité temporaires, vous pouvez utiliser les opérations AWS Security Token Service (AWS STS) dans l' AWS API. Il s'agit notamment d'opérations visant à créer et à fournir à des utilisateurs de confiance des informations d'identification de sécurité temporaires qui peuvent contrôler l'accès à vos AWS ressources. Pour plus d'informations sur AWS STS, voirInformations 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 endossant un rôle, consultez Utilisation de 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 AWS STS Query, qui est décrite dans la référence des AWS Security Token Service API. Enfin, deux outils de ligne de commande prennent en charge les AWS STS commandes : le AWS Command Line Interface, et le AWS Tools for Windows PowerShell.

Les opérations d' AWS STS API créent une nouvelle session avec des informations d'identification de sécurité temporaires qui incluent une paire de clés d'accès et un jeton de session. 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 politiques de session et des balises de session par programmation à l'aide d'opérations d' AWS STS API. Les autorisations de la session obtenues sont une combinaison des politiques basées sur l'identité du rôle et des politiques de session. Pour de amples informations sur les politiques de session, veuillez consulter Politiques de session. Pour de plus amples informations sur les balises de session, veuillez consulter Transmission des balises de session AWS STS.

Note

La taille du jeton de session renvoyé par les opérations d' AWS STS API 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 AWS STS avec AWS les régions

Vous pouvez envoyer des appels AWS STS d'API à un point de terminaison global ou à l'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 différents AWS SDK, utilisez cette méthode SDK 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 Gérer AWS STS dans un Région AWS.

Voici les opérations d'API que vous pouvez utiliser pour obtenir des informations d'identification temporaires à utiliser dans votre AWS environnement et vos applications.

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

Le fonctionnement de l'AssumeRoleAPI est utile pour permettre aux utilisateurs IAM existants d'accéder à AWS des ressources 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. Il est également utile comme moyen d'obtenir temporairement un accès privilégié, par exemple, pour fournir une authentification multi-facteur (MFA). Vous devez appeler cette API à l'aide d'informations d'identification actives. Pour savoir qui peut appeler cette opération, consultez Comparaison des opérations AWS STS d'API. 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 AWS de sécurité valides. Lorsque vous effectuez cet appel, vous transmettez les informations suivantes :

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

  • (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, veuillez consulter 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, veuillez consulter Activation de l'accès à la AWS console par un courtier d'identité personnalisé.

  • 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 principaux. Pour des raisons de sécurité, les administrateurs peuvent afficher ce champ dans les journaux AWS CloudTrail pour aider à 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 endossez le rôle. Pour plus d’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 entre les sessions de chaînage de rôles. Vous pouvez utiliser les informations d'identité de la source dans AWS CloudTrail les journaux pour déterminer qui a effectué des actions avec un rôle. Pour de plus amples informations sur l'utilisation de l'identité source, veuillez consulter Surveiller et contrôler les actions prises 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 politiques basées sur l'identité du rôle et des politiques de session. Les politiques de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la politique basée sur l'identité du rôle endossé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Politiques 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 principal 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 AWS STS.

  • (Facultatif) Informations sur MFA. Si la configuration utilise une authentification multi-facteur (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 plus d’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 politique de session, les balises de session et 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 politique indiquée dans l'exemple précédent est la version encodée en URL de la politique 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 est l'information d'authentification que vous devez inclure dans 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 et signer des demandes d'API manuellement, consultez la section Signature des AWS demandes à l'aide de la version 4 du Référence générale d'Amazon Web Servicespour savoir comment signer une demande.

Outre les informations d'identification de sécurité temporaires, la réponse inclut l'Amazon Resource Name (ARN) 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 AWS conversion compresse les politiques de session et les balises de session adoptées dans un format binaire compressé doté d'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é basé sur le 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 nécessitent un accès à. AWS L'utilisation de cette opération signifie que vos utilisateurs n'ont pas besoin de leur propre identité AWS ou de leur identité IAM. Pour plus d’informations, consultez Fédération OIDC.

Au lieu d'appeler directementAssumeRoleWithWebIdentity, nous vous recommandons d'utiliser Amazon Cognito et le fournisseur d'informations d'identification Amazon Cognito avec les SDK pour AWS le développement mobile. Pour plus d'informations, consultez Authentification avec Amplify dans la documentation Amplify.

Si vous n'utilisez pas Amazon Cognito, vous appelez l'action AssumeRoleWithWebIdentity de 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'Amazon Resource Name (ARN) du rôle que l'application doit endosser. 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, veuillez consulter 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, veuillez consulter Activation de l'accès à la AWS console par un courtier d'identité personnalisé.

  • 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 principaux. 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 endossez le rôle. Pour plus d’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 entre les sessions de chaînage de rôles. Vous pouvez utiliser les informations d'identité de la source dans AWS CloudTrail les journaux pour déterminer qui a effectué des actions avec un rôle. Pour de plus amples informations sur l'utilisation de l'identité source, veuillez consulter Surveiller et contrôler les actions prises 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 politiques basées sur l'identité du rôle et des politiques de session. Les politiques de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la politique basée sur l'identité du rôle endossé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Politiques de session.

    Note

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

Lorsque vous appelezAssumeRoleWithWebIdentity, AWS vérifie l'authenticité du jeton. Par exemple, selon le fournisseur, vous AWS pouvez passer un appel au fournisseur et inclure le jeton transmis par l'application. En supposant que le fournisseur d'identité valide le jeton, il vous AWS renvoie 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 endossé.

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

Lorsque vous disposez des informations d'identification de sécurité temporaires, vous pouvez les utiliser pour effectuer des appels AWS d'API. Ce processus est identique à celui d'un appel d' AWS API avec des informations 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'CredentialsProvideropération AmazonSTS dans le AWS SDK, c'est à vous et à votre application de réappelerAssumeRoleWithWebIdentity. 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, veuillez consulter Fédération SAML 2.0.

Note

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

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'Amazon Resource Name (ARN) du rôle que l'application doit endosser.

  • 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, veuillez consulter 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, veuillez consulter Activation de l'accès à la AWS console par un courtier d'identité personnalisé.

  • (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 politiques basées sur l'identité du rôle et des politiques de session. Les politiques de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la politique basée sur l'identité du rôle endossé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Politiques de session.

  • 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 principaux. 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 endossez le rôle. Pour plus d’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 entre les sessions de chaînage de rôles. Vous pouvez utiliser les informations d'identité de la source dans AWS CloudTrail les journaux pour déterminer qui a effectué des actions avec un rôle. Pour de plus amples informations sur l'utilisation de l'identité source, veuillez consulter Surveiller et contrôler les actions prises avec les rôles endossés.

Lorsque vous appelezAssumeRoleWithSAML, AWS vérifie l'authenticité de l'assertion SAML. En supposant que le fournisseur d'identité valide l'assertion, il vous AWS renvoie 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 endossé.

  • 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.

  • NameQualifierÉlément contenant une valeur de hachage créée à partir de la Issuer valeur, de l' Compte AWS ID et du 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 Configurer les assertions SAML pour la réponse d'authentification.

Lorsque vous disposez des informations d'identification de sécurité temporaires, vous pouvez les utiliser pour effectuer des appels AWS d'API. Ce processus est identique à celui d'un appel d' AWS API avec des informations 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'CredentialsProvideraction AmazonSTS dans le AWS SDK, c'est à vous et à votre application de rappelerAssumeRoleWithSAML. 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, comprise entre 900 secondes (15 minutes) et 129 600 secondes (36 heures). La période d'expiration plus longue peut contribuer à réduire le nombre d'appels, AWS car vous n'avez pas besoin de nouvelles informations d'identification aussi souvent.

Lorsque vous effectuez cette demande, 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 politiques de session transmises lors de l'appel de GetFederationToken. Les autorisations de session obtenues sont une combinaison des politiques d'utilisateur IAM et des politiques de session que vous transmettez. Les politiques de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la politique 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 Politiques de session.

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

L'appel à GetFederationToken retourne des informations d'identification de sécurité temporaires constituées d'un jeton de session, 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).

L'exemple suivant illustre une demande et une réponse qui utilisent GetFederationToken. Cet exemple de demande fédère l'utilisateur appelant pour la durée spécifiée avec l'ARN de politique 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 politique 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 dans 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 et signer des demandes d'API manuellement, consultez la section Signing AWS Requests By Using Signature Version 4 du Référence générale d'Amazon Web Servicespour savoir comment signer une demande.

Outre les informations d'identification de sécurité temporaires, la réponse inclut l'Amazon Resource Name (ARN) 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 AWS conversion compresse les politiques de session et les balises de session adoptées dans un format binaire compressé doté d'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, si vous attachez une politique basée sur les ressources à un compartiment Amazon S3), vous pouvez omettre le paramètre. Policy Toutefois, si vous n'incluez pas de politique 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 politiques de ressources pour accorder à l'utilisateur fédéré l'accès à vos ressources AWS .

Par exemple, supposons que votre Compte AWS numéro est 111122223333 et que vous souhaitez autoriser Susan à accéder à un compartiment Amazon S3. Les informations d'identification de sécurité temporaires de Susan ne comprennent pas de politique pour ce compartiment. Dans ce cas, vous devez vous assurer que le compartiment est doté d'une politique avec un ARN correspondant à celui de Susan, par exemple arn:aws:sts::111122223333:federated-user/Susan.

GetSessionToken : informations d'identification temporaires pour les utilisateurs dans des environnements non de confiance

L'opération d'API GetSessionToken retourne un ensemble d'informations d'identification de sécurité temporaires pour un utilisateur IAM existant. Cela est utile pour renforcer la sécurité, par exemple pour autoriser les AWS demandes uniquement lorsque la 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 plus d'informations, consultez Demande d'informations d'identification temporaires de sécurité ou consultez GetSessionTokenle Guide de référence des AWS Security Token Service API.

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 d'un jeton 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 session, 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 est l'information d'authentification que vous devez inclure dans 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 et signer des demandes d'API manuellement, consultez la section Signing AWS Requests By Using Signature Version 4 du Référence générale d'Amazon Web Servicespour savoir comment signer une demande.

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>

Facultativement, la GetSessionToken demande peut inclure SerialNumber des TokenCode valeurs pour la vérification de l' AWS authentification multifactorielle (MFA). Si les valeurs fournies 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 ou aux AWS sites Web protégés par le MFA tant que l'authentification MFA est valide.

L'exemple suivant illustre une demande GetSessionToken qui comprend un code de vérification MFA et un numéro de série du dispositif.

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 le point de terminaison mondial ou vers l'un des points de terminaison régionaux pour lesquels 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 est l'information d'authentification que vous devez inclure dans 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 et signer des demandes d'API manuellement, consultez la section Signature des AWS demandes à l'aide de la version 4 du Référence générale d'Amazon Web Servicespour savoir comment signer une demande.

Comparaison des opérations AWS STS d'API

Le tableau suivant compare les fonctionnalités 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 endossant un rôle, consultez Utilisation de rôles IAM. Pour en savoir plus sur les différentes opérations d' AWS STS API qui vous permettent de transmettre des balises de session, consultezTransmission des balises de session AWS STS.

Comparaison des options d'API
AWS STS API Qui peut appeler Durée de vie des informations d'identification (min | max | par défaut) Prise en charge de l'authentification MFA¹ Prise en charge de la politique 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 principal 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 h Non Oui

Impossible d'appeler GetFederationToken ou GetSessionToken.

AssumeRoleWithWebIdentity Tout utilisateur ; l'appelant doit transmettre un jeton JWT conforme à l'OIDC qui indique l'authentification auprès d'un fournisseur d'identité connu 15 min | Durée de session maximale³ | 1 h Non Oui

Impossible d'appeler GetFederationToken ou GetSessionToken.

GetFederationToken Utilisateur IAM ou Utilisateur racine d'un compte AWS

Utilisateur IAM : 15 min | 36 h | 12 h

Utilisateur racine : 15 min | 1 heure | 1 heure

Non Oui

Impossible d'appeler des opérations IAM à l'aide de l' AWS API AWS CLI or. Cette limitation ne s'applique pas aux sessions de console.

Impossible d'appeler AWS STS les opérations sauf 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 h | 12 h

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' AWS STS API sauf AssumeRole ouGetCallerIdentity.

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

¹ Prise en charge de l'authentification MFA. Vous pouvez inclure des informations sur un dispositif d'authentification multifactorielle (MFA) lorsque vous appelez AssumeRole les opérations GetSessionToken et API. 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 dispositif MFA. Pour plus d’informations, veuillez consulter Configuration de l'accès aux API protégé par MFA.

² Prise en charge de la politique de session. Les politiques de session sont des politiques 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 politique limite les autorisations à partir de la politique 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 politiques de session ne peuvent pas être utilisées pour accorder plus d'autorisations que celles autorisées par la politique basée sur l'identité du rôle endossé actuellement. Pour de plus amples informations sur les autorisations de session de rôle, veuillez consulter Politiques de session.

³ Paramètre de 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, veuillez consulter 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 politique à 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. Pour prendre en charge l'authentification unique, vous AWS pouvez appeler un point de terminaison de fédération (https://signin.aws.amazon.com/federation) et 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 à la AWS Management Console la section Comment activer l'accès multicompte à la console de AWS gestion dans le blog sur la AWS sécurité.

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