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.
Demander des informations d'identification 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 le 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 API opérations, vous pouvez utiliser l'un des AWS SDKs
Les AWS STS API opérations 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' AWS STS APIopérations. 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 AWS STS API opérations 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 AWS STS API appels vers un point de terminaison mondial ou vers l'un des points de terminaison régionaux. Si vous choisissez un terminal plus proche de chez vous, vous pouvez réduire la latence et améliorer les performances de vos API appels. 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 SDK méthode pour spécifier une région avant de passer l'APIappel. Si vous créez des HTTP API demandes manuellement, 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 API opérations 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 via un courtier d'identité personnalisé
L'AssumeRole
APIopération est utile pour permettre aux IAM utilisateurs 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 pour obtenir temporairement un accès privilégié, par exemple pour fournir une authentification multifactorielle (). MFA Vous devez l'appeler API en utilisant des 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 déléguer des autorisations à un IAM utilisateur et APIAccès sécurisé avec MFA.
Pour demander des informations d'identification de sécurité temporaires pour la délégation et la fédération entre comptes via un courtier 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 stratégie indiquée dans l'exemple précédent est la version URL codée 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 est l'information d'authentification que vous devez inclure dans les AWS HTTP API demandes. Nous vous recommandons d'utiliser le AWS SDKs
Outre les informations de sécurité temporaires, la réponse inclut le nom de ressource Amazon (ARN) de l'utilisateur fédéré et le délai 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 auprès d'un OIDC fournisseur
L'AssumeRoleWithWebIdentity
APIopération 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. Parmi les fournisseurs d'identité publics, citons Login with Amazon, Facebook, Google ou tout autre fournisseur d'identité compatible avec OpenID Connect (OIDC). L'utilisation de cette opération signifie que vos utilisateurs n'ont pas besoin de leur propre IAM identité AWS ou de leur identité. Pour de plus amples informations, veuillez consulter OIDCfédération.
Note
Au lieu d'appeler directementAssumeRoleWithWebIdentity
, nous vous recommandons d'utiliser Amazon Cognito et le fournisseur d'informations d'identification Amazon Cognito pour AWS SDKs le développement mobile. Pour plus d'informations, consultez Authentification avec Amplify
Si vous n'utilisez pas Amazon Cognito, vous appelez l'action AssumeRoleWithWebIdentity
de AWS STS.
-
Appelez l’opération
AssumeRoleWithWebIdentity
.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 à
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 appelez
AssumeRoleWithWebIdentity
, 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 du rôle et ARN celui du rôle assumé.
-
Une valeur
SubjectFromWebIdentityToken
qui contient l'ID utilisateur unique.
-
-
Utilisez les informations d'identification de sécurité temporaires renvoyées dans la réponse pour AWS API passer des appels. Ce processus est identique à celui d'un AWS API appel avec des informations 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 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 A mazonSTSCredentials ProviderAssumeRoleWithWebIdentity
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é SAML 2.0
L'AssumeRoleWithSAML
APIopération 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 la 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'SAMLassertion. 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 du rôle et ARN celui du rôle assumé.
-
Une
Audience
valeur qui contient la valeur de l'Recipient
attribut de l'SubjectConfirmationData
élément de l'SAMLassertion. -
Une
Issuer
valeur qui contient la valeur de l'Issuer
élément de l'SAMLassertion. -
NameQualifier
Élément contenant une valeur de hachage créée à partir de laIssuer
valeur, de l' Compte AWS ID et du nom convivial du SAML fournisseur. Lors de la combinaison avec l'élémentSubject
, ils identifient de manière unique l'utilisateur fédéré. -
Subject
Elément qui contient la valeur de l'NameID
élément dans l'Subject
élément de l'SAMLassertion. -
Un élément
SubjectType
qui indique le format de l'élémentSubject
. La valeur peut êtrepersistent
transient
, ou la totalitéFormat
URI desNameID
élémentsSubject
et utilisés dans votre SAML assertion. Pour plus d'informations sur l'attributNameID
de l'élémentFormat
, consultez Configurer les SAML assertions pour la réponse d'authentification.
-
-
Utilisez les informations de sécurité temporaires renvoyées dans la réponse pour AWS API passer des appels. Ce processus est identique à celui d'un AWS API appel 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'action A mazonSTSCredentials ProviderAssumeRoleWithSAML
rappeler. 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 par le biais d'un courtier d'identité personnalisé
L'GetFederationToken
APIopération renvoie un ensemble d'informations d'identification de sécurité temporaires pour les utilisateurs fédérés. Cela API se distingue par AssumeRole
le fait que la période d'expiration par défaut est nettement plus longue (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.
-
Authentifiez-vous avec les informations de AWS sécurité de votre IAM utilisateur 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 pendant la durée spécifiée avec la politique de session ARN 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
La politique ARN présentée dans l'exemple précédent inclut les éléments URL codés ARN 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 AWS HTTP API demandes. Nous vous recommandons d'utiliser le AWS SDKs
Outre les informations de sécurité temporaires, la réponse inclut le nom de ressource Amazon (ARN) de l'utilisateur fédéré et le délai 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 bucket possède une politique correspondant à ARN celle de SusanARN, telle quearn:aws:sts::111122223333:federated-user/Susan
.
Demande d'informations d'identification pour les utilisateurs dans des environnements non fiables
L'GetSessionToken
APIopération renvoie un ensemble d'informations d'identification de sécurité temporaires à un IAM utilisateur existant. Cela est utile pour renforcer la sécurité, par exemple en autorisant les AWS demandes uniquement lorsque cela MFA est activé pour l'IAMutilisateur. Les informations d'identification étant temporaires, elles offrent une sécurité renforcée lorsqu'un IAM utilisateur accède à vos ressources via 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 IAM utilisateur 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 IAM d'un utilisateur sont valides pendant 12 heures au 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 AWS HTTP API demandes. 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'MFAauthentification. Les informations d'identification de sécurité temporaires peuvent ensuite être utilisées pour accéder aux API opérations ou aux AWS sites Web MFA protégés tant que l'MFAauthentification est valide.
L'exemple suivant montre une GetSessionToken
demande qui inclut un code de MFA vérification et un numéro de série de l'appareil.
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 AWS HTTP API demandes. Nous vous recommandons d'utiliser le AWS SDKs