Wie kann man in aws-cli die Rolle wechseln?

8

Ich bin Vertragspartner für ein Unternehmen mit mehreren aws-Konten. Sie gaben mir Zugriff auf das Anmeldekonto und ich "wechselte die Rolle" in der Webkonsole zu dem Projektkonto, an dem ich arbeite. In der Web-GUI funktioniert es.

Wie mache ich das gleiche mit aws-cli?? Ich habe nur Zugriffsschlüssel für das Anmeldekonto und keine Berechtigungen zum Erstellen eines Benutzers und für Zugriffsschlüssel im Projektkonto. Ist es überhaupt möglich?

Potom
quelle

Antworten:

14

Natürlich ist es möglich!

Nehmen wir an, Sie haben Ihre Anmeldeinformationen für Ihr Login-Konto~/.aws/credentials , wahrscheinlich ungefähr so:

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

Sie müssen lediglich ein weiteres Profil hinzufügen ~/.aws/credentials, das das obige Profil verwendet, um das Konto in Ihre Projektkontorolle zu wechseln . Sie benötigen außerdem die Rolle ARN des Projektkontos. Diese finden Sie in der Webkonsole unter IAM -> Rollen, nachdem Sie zum Projektkonto gewechselt haben . Angenommen, die Projektkontonummer lautet 123456789012 ...

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

Damit können Sie testen, ob es funktioniert:

~ $ 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"
}

Wie Sie sehen, befinden Sie sich jetzt im Projektkonto, wie durch die Konto-ID 123456789012 bestätigt.

Wenn Sie dieses Profil immer mit verwenden möchten, aws-clikönnen Sie dies tun:

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

Weitere Informationen finden Sie in diesem Beitrag: https://aws.nz/best-practice/cross-account-access-with-aws-cli/

Überprüfen Sie auch:

MLu
quelle