Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Comment utiliser l'AWS CLI pour passer des appels AssumeRole et stocker des informations d'identification utilisateur temporaires ?
Je souhaite utiliser l'interface de la ligne de commande AWS (AWS CLI) pour obtenir les informations d'identification de AssumeRoleWithSAML, AssumeRole et AssumeRoleWithWebIdentity.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Pour obtenir les informations d'identification de AssumeRoleWithSAML, AssumeRole et AssumeRoleWithWebIdentity, appelez l'API et enregistrez la sortie dans un fichier texte. Puis, utilisez la sortie pour appeler une commande d'API à l'aide de l'AWS CLI.
Remarque : Les commandes AssumeRoleWithSAML, AssumeRole et AssumeRoleWithWebIdentity requièrent les paramètres role-arn et role-session-name.
Obtenir les informations d'identification grâce à l'authentification SAML
Exigence : Vous devez disposer d'une réponse SAML 2.0 valide de la part de votre fournisseur d'identité (IdP) et d'un rôle Gestion des identités et des accès AWS (AWS IAM) qui approuve l'IdP.
Procédez comme suit :
-
Localisez les journaux, puis ouvrez le fichier journal SAML.
-
Copiez l'intégralité de la réponse SAML.
-
Collez la réponse SAML dans le fichier nommé samlresponse.log qui se trouve dans le répertoire local.
-
Exécutez la commande assume-role-with-saml suivante pour appeler le jeton Service de jetons de sécurité AWS (AWS STS) :
aws sts assume-role-with-saml --role-arn arn:aws:iam::444455556666:role/IAM_ROLE --principal-arn arn:aws:iam::444455556666:saml-provider/SAML_PROVIDER --saml-assertion file://samlresponse.log awk -F: ' BEGIN { RS = "[,{}]" ; print "[PROFILENAME]"} /:/{ gsub(/"/, "", $2) } /AccessKeyId/{ print "aws_access_key_id = " $2 } /SecretAccessKey/{ print "aws_secret_access_key = " $2 } /SessionToken/{ print "aws_session_token = " $2 } ' >> ~/.aws/credentialsRemarque : Remplacez l'ARN principal par l’Amazon Resource Name (ARN) de votre fournisseur SAML. Cet exemple utilise awk, qui est compatible avec les distributions basées sur Linux. Lorsque vous exécutez la commande assume-role-with-saml, les informations d'identification sont enregistrées dans un profil au sein du fichier ~/.aws/credentials.
-
(Facultatif) Exécutez la commande suivante pour sauvegarder les informations d'identification :
cp -a ~/.aws/credentials ~/.aws/credentials.bak. -
Exécutez la commande describe-instances suivante pour appeler les informations d'identification utilisateur :
aws ec2 describe-instances --profile PROFILENAMERemarque : Remplacez PROFILENAME par le nom de votre profil.
Exemple de sortie qui n'est pas enregistrée dans un fichier :{ "SubjectType": "persistent", "AssumedRoleUser": { "AssumedRoleId": "111122223333:example@corp.example.com", "Arn": "arn:aws:sts::44445555666:assumed-role/ROLE_ID/example@corp.example.com" }, "Audience": "https://signin.aws.amazon.com/saml", "NameQualifier": "RANDOM_GENERATED_STRING", "Credentials": { "SecretAccessKey": "SECRET_ACCESS_KEY", "SessionToken": "TOKEN_KEY", "Expiration": "2015-05-11T20:00:49Z", "AccessKeyId": "ACCESS_KEY_ID" }, "Subject": "CORP\\\\EXAMPLE", "Issuer": "http://SERVER_NAME.corp.example.com/adfs/services/trust" }Exemple de sortie enregistrée dans le fichier d'informations d'identification :
aws_access_key_id = ACCESS_KEY_ID aws_session_token = SESSION_TOKEN aws_secret_access_key = SECRET_ACCESS_KEY [PROFILENAME]
Obtenir des informations d'identification avec AssumeRole
Important : Vos informations d'identification IAM doivent approuver le rôle IAM que vous assumez.
Procédez comme suit :
-
Exécutez la commande get-caller-identity suivante pour vérifier une réponse :
aws sts get-caller-identityRemarque : Si vous ne recevez pas de réponse, vérifiez si le fichier .aws/credentials contient un accès IAM valide ou une clé secrète.
-
Exécutez la commande assume-role suivante :
aws sts assume-role --role-arn arn:aws:iam::123456789012:role/ExampleRole --role-session-name ExampleSessionExemple de réponse :
{ "AssumedRoleUser": { "AssumedRoleId": "AROAZRG5BQ2L7OB87N3RE:ExampleSession", "Arn": "arn:aws:sts::123456789012:assumed-role/RoleA/ExampleSession" }, "Credentials": { "SecretAccessKey": "JCNFKY7XCUwHWTKcQhmmFokpjLetCmNLZ7pg9SJe", "SessionToken": "FwoGZXIvYXdzEL7//////////wEaDNoBLBJUNYWKaHXZXCKvARBGJ4CqOs+p2JR2a7Euni0d0XuSs31ZA/1QqpX6Spfuz2WAvHCyqwbE3+oxyvyqYlO8dTJwp56YCFCJ6K4Prt9pMeZU9R5NGBJHvRbXXKfxp+jktLc/ItrAfn4GMXWpoyJKZrY7hzv3MASomlIcwSD/RqWIBS1vAoo1UAxwjy29jai0OAPQ51LAnuFKeabgmllyP5Y2gu488P19D7ikfgQtmBtH5I/Q8+5IEn4qMwYo1bq/8wUyLe1b3+mQwhq+zEz4TSyHD8HBXd9W3KYcB53MIotwiJNS+m0P5ZlZnpcJm3JwtA==", "Expiration": "2020-03-16T21:11:01Z", "AccessKeyId": "ASIAZRG8BQ4K2EBXGR42" } } -
À partir de la réponse, exportez AccessKeyId, SecretAccessKey et SessionToken pour créer des variables d'environnement :
export AWS_ACCESS_KEY_ID=ASIAZRG8BQ4K2EBXGR42 export AWS_SECRET_ACCESS_KEY=JCNFKY7XCUwHWTKcQhmmFokpjLetCmNLZ7pg9SJe export AWS_SESSION_TOKEN=FwoGZXIvYXdzEL7//////////wEaDNoBLBJUNYWKaHXZXCKvARBGJ4CqOs+p2JR2a7Euni0d0XuSs31ZA/1QqpX6Spfuz2WAvHCyqwbE3+oxyvyqYlO8dTJwp56YCFCJ6K4Prt9pMeZU9R5NGBJHvRbXXKfxp+jktLc/ItrAfn4GMXWpoyJKZrY7hzv3MASomlIcwSD/RqWIBS1vAoo1UAxwjy29jai0OAPQ51LAnuFKeabgmllyP5Y2gu488P19D7ikfgQtmBtH5I/Q8+5IEn4qMwYo1bq/8wUyLe1b3+mQwhq+zEz4TSyHD8HBXd9W3KYcB53MIotwiJNS+m0P5ZlZnpcJm3JwtA== -
Exécutez la commande get-caller-identity suivante pour vérifier l'identité :
aws sts get-caller-identityLa sortie affiche les informations d'identification issues de l'appel assume-role.
Obtenir des informations d'identification avec AssumeRoleWithWebIdentity
Exigence : Vous devez disposer d'un jeton d'accès OAuth 2.0 valide, d'un jeton OpenID Connect et d'un rôle IAM approuvant l'IdP.
-
Exécutez la commande assume-role suivante :
aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789012:role/FederatedWebIdentityRole --role-session-name ExampleSession --web-identity-token Atza%7CIQEBLjAsAhRFiXuWpUXuRvQ9PZL3GMFcYevydwIUFAHZwXZXXXXXXXXJnrulxKDHwy87oGKPznh0D6bEQZTSCzyoCtL_8S07pLpr0zMbn6w1lfVZKNTBdDansFBmtGnIsIapjI6xKR02Yc_2bQ8LZbUXSGm6Ry6_BG7PrtLZtj_dfCTj92xNGed-CrKqjG7nPBjNIL016GGvuS5gSvPRUxWES3VYfm1wl7WTI7jn-Pcb6M-buCgHhFOzTQxod27L9CqnOLio7N3gZAGpsp6n1-AJBOCJckcyXe2c6uD0srOJeZlKUm2eTDVMf8IehDVI0r1QOnTV6KzzAI3OY87Vd_cVMQExemple de réponse :
{ "SubjectFromWebIdentityToken": "amzn1.account.AF6RHO7KZU5XRVQJGXK6HB56KR2A" "Audience": "client.5498841531868486423.1548@apps.example.com", "AssumedRoleUser": { "Arn": "arn:aws:sts::123456789012:assumed-role/FederatedWebIdentityRole/ExampleSession", "AssumedRoleId": "AROACLKWSDQRAOEXAMPLE:ExampleSession" } "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE", "Expiration": "2020-05-19T18:06:10+00:00" }, "Provider": "www.amazon.com" -
Enregistrez AccessKeyId, SecretAccessKey et SessionToken dans le fichier .aws/credentials :
[ExampleRoleProfile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY aws_session_token=AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE -
Exécutez la commande get-caller-identity :
aws sts get-caller-identity --profile ExampleRoleProfileExemple de sortie des informations d'identification issues de l'appel assume-role :
{ "UserId": "AROACLKWSDQRAOEXAMPLE:ExampleSession", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/FederatedWebIdentityRole/ExampleSession" }
Informations connexes
Configurer l'identité fédérée à l'aide des outils AWS pour PowerShell
Paramètres du fichier de configuration et d'informations d'identification dans l'AWS CLI
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a 2 ans
- demandé il y a un an
- demandé il y a 6 mois
- demandé il y a 2 ans
- demandé il y a 3 ans