2017-08-24 6 views
-1

Ich habe eine Instanz von EC2 einem Instanzprofil zugewiesen. Die Instanzprofil haben die Erlaubnis, eine Quer Konto Rolle (sagen wir, Account B)Abrufen der Berechtigungsnachweise von AWS STS

aws sts assume-role --role-arn "arn:aws:iam::Account_B_ID:role/admin" 

--role-session-name "Admin_in_acc_B"

, indem Sie diesen Befehl zu übernehmen, wird es eine vorübergehende Sicherheit zurückkehren Anmeldeinformationen einschließlich des Sitzungstokens. Jetzt kommt es darauf, wie die Nutzung der Informationen, um es in die Umgebungsvariablen zu injizieren, so dass die CLI Aufgaben werden in der Lage zu laufen (EC2-describe-Instanzen) auf Konto B.

export EC2_URL=https://ec2.ap-southeast-1.amazonaws.com 
 
export EC2_HOME=/usr/bin 
 
export JAVA_HOME=/usr/lib/jvm/default-java/jre 
 

 
export AWS_ACCESS_KEY= 
 
export AWS_SECRET_KEY= 
 

 
export AWS_SESSION_TOKEN= 
 

 
PATH=$PATH:/usr/bin 
 

 
ec2-describe-instances

+2

Was ist Ihre Frage? –

Antwort

0

Erstens, anstatt einzelne Befehle wie ec2-describe-instances zu verwenden, sollten Sie die AWS Command-Line Interface (CLI) verwenden.

Diese AWS CLI ermöglicht Anmeldeinformationen auf verschiedene Arten festgelegt werden, einschließlich:

  • Umgebungsvariablen (wie Sie oben getan haben)
  • Profile (über den aws configure Befehl erstellt und aktiviert über --profile

Daher könnten Sie:

  • Aufruf assume-role zu Anmeldeinformationen abrufen
  • Store them in the credentials file, zB durch aws configure --profile foo
  • Dann einfach Befehle rufen wie aws ec2 describe-instances --profile foo mit
0

Sie die CLI tun, um diese für Sie alle unter der Haube haben, wenn Sie Konfigurationsdatei verwenden. Zum Beispiel, wenn Sie Ihre Credentials-Datei (~/.aws/Credentials) sieht wie folgt aus (Setup über aws configure):

[assume-role-source-credentials] 
aws_access_key_id = akid 
aws_secret_access_key = skid 

Und Ihre Konfigurationsdatei (~/.aws/config) sieht wie folgt aus:

[profile assume-role-profile] 
source_profile = assume-role-source-credentials 
role_arn = arn:aws:iam::Account_B_ID:role/admin 
role_session_name = Admin_in_acc_B 
region = us-west-2 

Die CLI würde dann die Rolle automatisch übernehmen, zwischenspeichern und aktualisieren, um die Anzahl der Anrufe zu reduzieren, die eine Rolle übernehmen. Beachten Sie, dass Sie diese Profile ändern müssen, damit sie Ihrer genauen Konfiguration (insbesondere der Region) entsprechen.

Weitere Dokumente here.

+0

Der EC2 wurde mit dem angehängten Instanzprofil erstellt. Wir möchten die Anmeldeinformationen nicht auf die Anmeldeinformationsdatei fest codieren. Das Problem tritt auf, wenn es darum geht, die Quell-Credentials zu erhalten, was ein erneuerbares Token selbst ist – user2155404

Verwandte Themen