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’identifiants de sécurité temporaires
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 Méthodes pour assumer un rôle.
Pour appeler les opérations de l'API, vous pouvez utiliser l'une des AWS SDKs
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 des 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 Transmettez les tags 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 soit à un point de terminaison global, soit à 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'une des différentes méthodes AWS SDKs, utilisez cette méthode du 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érez 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.
Demande d’informations d’identification pour la délégation et la fédération entre comptes par l’intermédiaire d’un fournisseur d’identité personnalisé
Le fonctionnement de l'AssumeRole
API 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 Comparez les AWS STS informations d'identification. Pour plus d’informations, consultez Création d'un rôle pour accorder des autorisations à un utilisateur IAM et Accès sécurisé aux API avec MFA.
Pour demander des justificatifs de sécurité temporaires pour la délégation et la fédération de comptes croisés par l’intermédiaire d’un fournisseur d’identité personnalisé
-
Authentifiez-vous à l'aide de vos identifiants AWS de sécurité. Cet appel doit être effectué à l'aide d'informations d'identification de sécurité AWS valides.
-
Appelez l’opération
AssumeRole
.
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 :
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. Nous vous recommandons d'utiliser le AWS SDKs
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.
Demande d’informations d’identification par le biais d’un fournisseur OIDC
L’opération d’API AssumeRoleWithWebIdentity
renvoie un ensemble d’informations d’identification de sécurité temporaires AWS en échange d’un jeton Web JSON (JWT). Cela inclut les fournisseurs d'identité publics, tels que Login with Amazon, Facebook, Google, et les fournisseurs qui émettent JWTs des données compatibles avec la découverte d'OpenID Connect (OIDC), tels que GitHub Actions ou Azure Devops. Pour de plus amples informations, veuillez consulter Fédération OIDC.
Note
Les requêtes AssumeRoleWithWebIdentity
ne sont pas signées et ne nécessitent pas d’informations d’identification AWS .
Demande d’informations d’identification par le biais d’un fournisseur OIDC
-
Appelez l’opération
AssumeRoleWithWebIdentity
.Lorsque vous appelez
AssumeRoleWithWebIdentity
, AWS valide le jeton présenté en vérifiant la signature numérique à l'aide des clés publiques mises à disposition via le jeu de clés Web JSON (JWKS) de votre IdP. Si le jeton est valide et que toutes les conditions définies dans la politique de confiance des rôles IAM sont remplies, 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.
-
-
Votre application peut ensuite utiliser les informations d'identification de sécurité temporaires renvoyées dans la réponse pour effectuer des appels AWS d'API. Ce processus est identique à celui d'un appel d' AWS API avec des informations d'identification de sécurité à long terme. La différence est que vous devez inclure le jeton de session, qui permet de AWS vérifier que les informations d'identification de sécurité temporaires sont valides.
Votre application doit mettre en cache les informations d'identification renvoyées par AWS STS et les actualiser si nécessaire. Si votre application est créée à l'aide d'un AWS SDK, celui-ci dispose de fournisseurs d'informations d'identification capables de gérer les appels AssumeRoleWithWebIdentity
et d'actualiser les AWS informations d'identification avant leur expiration. Pour plus d'informations, consultez la section Fournisseurs d'informations d'identification standardisés AWS SDKs et Tools dans le guide de référence AWS SDKs and Tools.
Demande d’informations d’identification via un fournisseur d’identité SAML 2.0
L'opération d'AssumeRoleWithSAML
API renvoie un ensemble d'informations d'identification de sécurité temporaires pour les principaux fédérés SAML authentifiés par le système d'identité existant de votre organisation. Les utilisateurs doivent également utiliser SAML
-
Appelez l’opération
AssumeRoleWithSAML
.Il s'agit d'un appel non signé, ce qui signifie que vous n'avez pas besoin d'authentifier les informations AWS de sécurité avant de faire la demande.
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. -
Lorsque vous appelez
AssumeRoleWithSAML
, 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'attributRecipient
de l'élémentSubjectConfirmationData
de l'assertion SAML. -
Une valeur
Issuer
qui contient la valeur de l'élémentIssuer
de l'assertion SAML. -
NameQualifier
Élément contenant une valeur de hachage créée à partir de laIssuer
valeur, de l' Compte AWS ID et du nom convivial du fournisseur SAML. Lorsqu'ils sont combinés à l'Subject
élément, ils peuvent identifier de manière unique le principal fédéré SAML. -
Un élément
Subject
qui contient la valeur de l'élémentNameID
dans l'élémentSubject
de l'assertion SAML. -
Un élément
SubjectType
qui indique le format de l'élémentSubject
. La valeur peut êtrepersistent
,transient
ou l'URIFormat
complet des élémentsSubject
etNameID
utilisés dans votre assertion SAML. Pour plus d'informations sur l'attributNameID
de l'élémentFormat
, consultez Configuration d’assertions SAML pour la réponse d’authentification.
-
-
Utilisez les informations d'identification de sécurité temporaires renvoyées dans la réponse pour effectuer des appels AWS d'API. Ce processus est identique à celui d'un appel d' AWS API avec des 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 Amazon STSCredentials ProviderAssumeRoleWithSAML
réappeler. Appelez cette opération pour obtenir un nouvel ensemble d'informations d'identification de sécurité temporaires avant l'expiration des anciennes.
Demande d’informations d’identification via un fournisseur d’identité personnalisé
L'opération GetFederationToken
API renvoie un ensemble d'informations d'identification de sécurité temporaires pour les utilisateurs principaux AWS STS 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 qui en résultent sont valables pour la durée spécifiée, 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.
-
Authentifiez-vous avec les informations de AWS sécurité de votre utilisateur IAM spécifique. Cet appel doit être effectué à l'aide d'informations AWS de sécurité valides.
-
Appelez l’opération
GetFederationToken
.
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. Nous vous recommandons d'utiliser le AWS SDKs
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 l'utilisateur principal AWS STS fédéré, les informations d'identification de sécurité temporaires n'accorderont 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
.
Demande d’informations d’identification temporaires pour les utilisateurs dans des environnements non fiables
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.
-
Authentifiez-vous avec les informations de AWS sécurité de votre utilisateur IAM spécifique. Cet appel doit être effectué à l'aide d'informations AWS de sécurité valides.
-
Appelez l’opération
GetSessionToken
. -
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.
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.
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. Nous vous recommandons d'utiliser le AWS SDKs
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. Nous vous recommandons d'utiliser le AWS SDKs