web-dev-qa-db-fra.com

Comment «changer de rôle» dans aws-cli?

Je contracte pour une entreprise qui possède plusieurs comptes aws. Ils m'ont donné accès au compte de connexion et je "Changer de rôle" dans la console Web au compte de projet sur lequel je travaille. Dans l'interface graphique Web, cela fonctionne.

Comment faire de même avec aws-cli ?? Je n'ai que des clés d'accès pour le compte de connexion et je n'ai pas l'autorisation de créer un utilisateur et des clés d'accès dans le compte Project. Est-ce même possible?

8
potom

Bien sûr que c'est possible!

Supposons que vous ayez vos identifiants de compte de connexion dans ~/.aws/credentials, probablement quelque chose comme ça:

~ $ cat ~/.aws/credentials
[customer-login]
aws_access_key_id = AKIABCDEFGHJKLMNOPQR
aws_secret_access_key = ZxCvBnMaSdFgHjKlQwErTyUiOp

Il vous suffit d'ajouter un autre profil à ~/.aws/credentials qui utilisera le profil ci-dessus pour basculer le compte vers votre rôle de compte de projet. Vous aurez également besoin du compte de projet ARN du rôle - vous pouvez le trouver dans la console Web dans [~ # ~ ] iam [~ # ~] -> Rôles après avoir basculé sur le Compte de projet . Disons que le numéro de compte du projet est 123456789012 ...

[customer-project]
role_arn = arn:aws:iam::123456789012:role/your-project-role-name   # << Change this
source_profile = customer-login

Avec cela en place, vous pouvez tester si cela fonctionne:

~ $ aws --profile customer-project sts get-caller-identity
{
    "Account": "123456789012",
    "UserId": "AROA1B2C3D4E5F6G7H8I:botocore-session-1538120713",
    "Arn": "arn:aws:sts::123456789012:assumed-role/your-project-role-name/botocore-session-1538120713"
}

Comme vous pouvez le voir, vous êtes maintenant dans le compte Project, comme le confirme l'ID de compte 123456789012.

Si vous souhaitez toujours utiliser ce profil avec aws-cli vous pouvez le faire:

~ $ export AWS_DEFAULT_PROFILE=customer-project
~ $ aws sts get-caller-identity
... will be the same output as above, even without specifying --profile ...

Pour plus d'informations, consultez cet article: https://aws.nz/best-practice/cross-account-access-with-aws-cli/

Vérifiez également:

14
MLu