web-dev-qa-db-de.com

aws cli

Ich versuche, den Zugriff und den geheimen Schlüssel zusammen mit aws cli einzubetten. z.B.

aws ec2 describe-instances --aws-access-key <access_key> --aws-secret-key <secret_key>

Auch mit -o und -w Optionen für den Zugriff bzw. den geheimen Schlüssel versucht. Es heißt: Unbekannte Option aws-access-key und aws-secret-key

17
user3089927

Sie können Schlüssel in der Befehlszeile über Envars bereitstellen:

AWS_ACCESS_KEY_ID=ABCD AWS_SECRET_ACCESS_KEY=EF1234 aws ec2 describe-instances

Siehe http://docs.aws.Amazon.com/cli/latest/topic/config-vars.html#credentials

BEARBEITEN: @wisbucky hat festgestellt, dass dies Geheimnisse in Ihrer Befehlsgeschichte hinterlassen kann. Um dies in bash zu umgehen, denke ich zumindest, dass Sie Ihrem Befehl ein Leerzeichen voranstellen, und der Befehl sollte sich nicht auf Ihre bash-Historie ausbreiten.

33
DanH

Sie können es wie dieses verwenden;

aws configure set aws_access_key_id <yourAccessKey>
aws configure set aws_secret_access_key <yourSecretKey>

Weitere Informationen erhalten Sie hier.

aws configure set help

Allgemeines Muster ist;

aws <command> help
aws <command> <subcommand> help

Ich hoffe, es hilft!

3
ulubeyn

Es ist der beste Weg und sicherer, IAM-Rollen zu verwenden. Dort können Sie bestimmte Rechte für diese Instanz und für das, auf das sie in Ihrem Konto zugreifen muss, festlegen.

Abhängig von der verwendeten awscli-Version können Sie description-Instanzen auf verschiedene Arten verwenden.

Wie dieser:

ec2din -O your-key -W your-secret-key --region your-region

Es gibt auch einen großen Unterschied, wenn Sie awscli mit pip install oder von pkg wie ubuntu deb package installieren.

ec2din ist ein kurzer Befehl an ec2-description-instance

Weitere Beispiele hier: ec2-beschreiben-Instanzen

Grüße.

2
Peycho Dimitrov

Ich musste auf mehrere Konten bei Amazon zugreifen ... also meine Lösung:

unter: ~/.aws/config

[Standard] aws_access_key_id = xxxx aws_secret_access_key = xxxxxx region = sa-east-1 output = text

[profile prof1] region = us-east-1 output = text

[profile prof2] region = us-east-1 output = text aws_access_key_id = wwwwww aws_secret_access_key = wwwww

..und dann, wenn aws CLI aufgerufen wird, habe ich den Parameter "--profile" übergeben als:

/ usr/local/bin/aws ec2 beschreibt-Sicherheitsgruppen --group-ids sg-xxxx --profile prof2

...dass es!

2
costamatrix

Zusammenfassend zum aws doc gibt es mehrere Möglichkeiten, Anmeldeinformationen an die Befehlszeile zu übergeben. Bitte beachten Sie, dass es keine Befehlszeilenoptionen gibt, die den Schlüssel und den geheimen Schlüssel direkt übergeben. Stattdessen wird die "Anbieterkette" verwendet.

In meinen Bash-Skripten verwende ich häufig Umgebungsvariablen. Um die Sicherheit etwas zu erhöhen, verwende ich eine Datei, die die Variablen enthält, anstatt sie in das Skript aufzunehmen. Mit benannten Profilen ist es noch einfacher. 

Die Anbieterkette ist:

  1. befehlszeilenoptionen: Geben Sie die Region, das Ausgabeformat oder profile an.
  2. Umgebungsvariablen: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY und AWS_SESSION_TOKEN
  3. Die AWS-Datei mit den Berechtigungsnachweisen - unter ~/.aws/credentials unter Linux, MacOS oder Unix oder unter C:\Users\USERNAME .aws\credentials onWindows. Diese Datei kann zusätzlich mehrere benannte Profile enthalten zu einem Standardprofil.
  4. Die CLI-Konfigurationsdatei - normalerweise unter ~/.aws/config unter Linux, macOS oder Unix oder unter C:\Users\USERNAME .aws\config onWindows. Diese Datei kann für jedes ein Standardprofil, benannte Profile, Und CLI-spezifische Konfigurationsparameter enthalten.
  5. Container-Anmeldeinformationen - werden vom Amazon Elastic Container Service Für Containerinstanzen bereitgestellt, wenn Sie Ihrer Aufgabe eine Rolle zuweisen.
  6. Instanzprofil-Berechtigungsnachweise - Diese Berechtigungsnachweise können in EC2-Instanzen mit einer zugewiesenen Instanzrolle verwendet werden und werden über den Amazon EC2-Metadatendienst bereitgestellt.
2
LHWizard

Sie können aws configure auch verwenden:

$ aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxx
1
MaxNevermind

Sie sollten Ihre Anmeldeinformationen in der Datei ~/.aws/config (oder .aws/credentials) speichern.

Weitere Informationen zum Einrichten http://docs.aws.Amazon.com/cli/latest/reference/configure/index.html

Alternativ können Sie auch eine IAM-Rolle und bestimmte Richtlinien erstellen und diese auf Ihre ec2-Instanz setzen, in der Sie aws cli verwenden. Dann müssen Sie dort keine Anmeldeinformationen einrichten

1
Evgeniy Kuzmin

Eine andere Methode besteht darin, echo mit aws configure als Einzeiler zu verwenden:

echo -ne '%s\n%s\n%s\n%s\n' <access_key> <security_key> <region> <output> | aws configure
0

 enter image description here

Zugriff auf aws über cli,

aws configure
0
Prashanth Sams