Wie Sie mehrere AWS CLI-Profile effizient konfigurieren und verwalten

Lernen Sie, mehrere AWS-Konten und -Umgebungen mithilfe benannter AWS CLI-Profile effizient zu verwalten. Dieser Leitfaden bietet Schritt-für-Schritt-Anweisungen zum Konfigurieren, Wechseln zwischen und Sichern verschiedener Sätze von AWS-Anmeldeinformationen und -Einstellungen. Optimieren Sie Ihren Cloud-Workflow durch die Beherrschung der Profilverwaltung für verbesserte Produktivität und Sicherheit.

39 Aufrufe

AWS CLI-Profile verstehen

Die AWS Command Line Interface (AWS CLI) ist ein leistungsstarkes Werkzeug für die Interaktion mit Amazon Web Services. Für Benutzer, die mehrere AWS-Konten oder verschiedene Rollen innerhalb eines Kontos verwalten, ist die Konfiguration und der Wechsel zwischen Profilen entscheidend für ein effizientes Workflow-Management. Benannte Profile ermöglichen es Ihnen, verschiedene Sätze von Anmeldeinformationen, Standardregionen und Ausgabeformaten zu speichern, was nahtlose Übergänge zwischen verschiedenen AWS-Umgebungen ermöglicht, ohne jedes Mal manuell Anmeldeinformationen angeben zu müssen.

Diese Anleitung führt Sie durch den Prozess des Einrichtens, Verwaltens und Nutzens mehrerer AWS CLI-Profile. Am Ende werden Sie in der Lage sein, Ihre Befehlszeileninteraktionen über verschiedene AWS-Konten hinweg zu optimieren und so Sicherheit und Produktivität zu steigern.

Einrichten Ihrer AWS CLI-Konfigurationsdatei

Die AWS CLI speichert Konfigurationsinformationen in einer Datei namens config und Anmeldeinformationen in einer Datei namens credentials. Standardmäßig befinden sich diese Dateien im Verzeichnis .aws im Home-Verzeichnis Ihres Benutzers (~/.aws/ unter Linux/macOS, %USERPROFILE%\.aws\ unter Windows).

Standardprofil

Wenn Sie die AWS CLI zum ersten Mal mit aws configure konfigurieren, wird ein Standardprofil namens [default] erstellt. Dieses Profil wird verwendet, wenn kein anderes Profil angegeben wird.

# Beispiel für ein Standardprofil in ~/.aws/credentials
[default]
aws_access_key_id = YOUR_DEFAULT_ACCESS_KEY
aws_secret_access_key = YOUR_DEFAULT_SECRET_KEY
# Beispiel für ein Standardprofil in ~/.aws/config
[default]
region = us-east-1
output = json

Erstellen benannter Profile

Um ein benanntes Profil zu erstellen, fügen Sie einfach einen neuen Abschnitt zu Ihren credentials- und config-Dateien hinzu und verwenden Sie einen beschreibenden Namen für das Profil. Um beispielsweise ein Profil für ein Produktionskonto und ein weiteres für ein Entwicklungskonto zu erstellen:

1. Bearbeiten von ~/.aws/credentials:

Fügen Sie einen neuen Abschnitt mit einem Profilnamen hinzu (z. B. [prod], [dev]).

# ~/.aws/credentials

[default]
aws_access_key_id = YOUR_DEFAULT_ACCESS_KEY
aws_secret_access_key = YOUR_DEFAULT_SECRET_KEY

[prod]
aws_access_key_id = YOUR_PROD_ACCESS_KEY
aws_secret_access_key = YOUR_PROD_SECRET_KEY

[dev]
aws_access_key_id = YOUR_DEV_ACCESS_KEY
aws_secret_access_key = YOUR_DEV_SECRET_KEY

2. Bearbeiten von ~/.aws/config:

Fügen Sie auf ähnliche Weise entsprechende Abschnitte zur config-Datei hinzu. Sie können Region und Ausgabeformat pro Profil festlegen.

# ~/.aws/config

[default]
region = us-east-1
output = json

[profile prod]
region = us-west-2
output = text

[profile dev]
region = eu-central-1
output = json

Wichtige Hinweise:
* Beim Definieren von Profilen in ~/.aws/config müssen Sie dem Profilnamen profile voranstellen (z. B. [profile prod]). Dies unterscheidet sich von ~/.aws/credentials, wo Sie nur den Profilnamen verwenden (z. B. [prod]).
* Wenn eine Einstellung sowohl im [default]-Profil als auch in einem benannten Profil definiert ist, hat die Einstellung des benannten Profils Vorrang.

Wechseln zwischen Profilen

Sobald Ihre benannten Profile eingerichtet sind, können Sie sie verwenden, indem Sie die Option --profile mit Ihren AWS CLI-Befehlen angeben.

Beispiel: Auflisten von S3-Buckets in Ihrem Produktionskonto:

aws s3 ls --profile prod

Beispiel: Beschreiben von EC2-Instanzen in Ihrem Entwicklungskonto:

aws ec2 describe-instances --profile dev

Wenn Sie die Option --profile weglassen, verwendet die CLI das [default]-Profil.

Festlegen eines Standardprofils für die Umgebung

Das ständige Tippen von --profile kann mühsam sein. Sie können eine Umgebungsvariable festlegen, um anzugeben, welches Profil die AWS CLI standardmäßig für die aktuelle Sitzung verwenden soll.

Verwenden der Umgebungsvariable AWS_PROFILE:

Unter Linux/macOS:

export AWS_PROFILE=prod

# Jetzt verwenden Befehle standardmäßig das 'prod'-Profil
aws s3 ls
aws ec2 describe-instances

Zum Aufheben der Einstellung:

unset AWS_PROFILE

Unter Windows (Eingabeaufforderung):

set AWS_PROFILE=prod

# Jetzt verwenden Befehle standardmäßig das 'prod'-Profil
aws s3 ls

Zum Aufheben der Einstellung:

set AWS_PROFILE=

Unter Windows (PowerShell):

$env:AWS_PROFILE = "prod"

# Jetzt verwenden Befehle standardmäßig das 'prod'-Profil
aws s3 ls

Zum Aufheben der Einstellung:

Remove-Item Env:\AWS_PROFILE

Verwalten mehrerer AWS-Konten mit Profilen

Dies ist ein häufiger Anwendungsfall für benannte Profile. Jedes Profil kann mit den Zugriffsschlüsseln des IAM-Benutzers für ein anderes AWS-Konto konfiguriert werden. Dies ist besonders nützlich für:

  • Entwicklung vs. Produktion: Trennung Ihrer Entwicklungs- und Produktionsumgebungen zur Sicherheit.
  • Unterschiedliche Teams/Projekte: Isolierung von Ressourcen und Berechtigungen für verschiedene Teams oder Projekte.
  • Cross-Account-Zugriff: Wenn Sie ein Administrator oder Entwickler sind, der Ressourcen in mehreren Konten verwalten muss.

Best Practice: Verwenden von IAM-Rollen

Anstatt langlebige Zugriffsschlüssel für jedes Konto direkt in Ihrer Anmeldeinformationsdatei zu speichern, ist es eine sicherere und empfohlene Vorgehensweise, IAM-Rollen zu verwenden. Dies beinhaltet:

  1. Erstellen einer IAM-Rolle im Zielkonto, die Ihr IAM-Benutzer (in Ihrem primären Konto) annehmen kann.
  2. Konfigurieren Ihrer lokalen AWS CLI, um diese Rolle beim Verwenden eines bestimmten Profils anzunehmen.

Zum Konfigurieren der Rollenübernahme in ~/.aws/config:

# ~/.aws/config

[profile dev-role]
role_arn = arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME
source_profile = default  # Oder ein anderes Profil, das Berechtigungen zur Annahme der Rolle hat
region = us-east-1
output = json

Wenn Sie aws ec2 describe-instances --profile dev-role verwenden, versucht die CLI automatisch, die angegebene IAM-Rolle anzunehmen und die erhaltenen temporären Anmeldeinformationen zu verwenden.

Erweiterte Konfigurationsoptionen

Neben Anmeldeinformationen und Region können Profile weitere AWS CLI-Einstellungen angeben:

  • output: json, text, table
  • region: z. B. us-east-1
  • s3.max_concurrent_requests: Anzahl paralleler Anfragen für S3-Operationen.
  • s3.max_queue_size: Größe der Warteschlange für S3-Multipart-Uploads.
  • cli_binary_url: Angeben einer benutzerdefinierten URL zum Herunterladen von CLI-Binärdateien (weniger gebräuchlich).

Beispiel: Konfigurieren von S3-Einstellungen für ein bestimmtes Profil

# ~/.aws/config

[profile s3-optimized]
region = us-east-1
output = json
s3.max_concurrent_requests = 50
s3.max_queue_size = 10000

Tipps und Best Practices

  • Verwenden Sie beschreibende Profilnamen: Geben Sie Ihren Profilnamen klare und aussagekräftige Bezeichnungen, die das dargestellte Konto oder die Umgebung angeben (z. B. prod-admin, dev-web, sandbox-research).
  • Sichern Sie Ihre Anmeldeinformationen: Kommiten Sie Ihre ~/.aws/credentials-Datei niemals in die Versionskontrolle. Verwenden Sie IAM-Rollen für den Cross-Account-Zugriff, wann immer möglich, um die Speicherung langlebiger Zugriffsschlüssel zu vermeiden.
  • Überprüfen Sie regelmäßig Zugriffsschlüssel: Wenn Sie Zugriffsschlüssel verwenden müssen, rotieren Sie sie regelmäßig und deaktivieren Sie alte.
  • Nutzen Sie Umgebungsvariablen: Verwenden Sie AWS_PROFILE für temporäre Wechsel oder für CI/CD-Pipelines, in denen Sie auf bestimmte Konten abzielen müssen.
  • Kombinieren Sie Profil- und Umgebungsvariablen: Wenn eine Umgebungsvariable AWS_PROFILE gesetzt ist, überschreibt sie jedes mit --profile angegebene Profil.

Fazit

Die Beherrschung von AWS CLI-Profilen ist eine grundlegende Fähigkeit für jeden, der intensiv mit Amazon Web Services arbeitet. Durch die korrekte Konfiguration und Nutzung benannter Profile können Sie Ihre Produktivität erheblich steigern, bessere Sicherheitspraktiken aufrechterhalten und mehrere AWS-Umgebungen problemlos verwalten. Ob Sie zwischen Entwicklungs-, Staging- und Produktionskonten wechseln oder Ressourcen für verschiedene Kunden verwalten, Profile bieten die Flexibilität und Kontrolle, die für effiziente Cloud-Operationen erforderlich sind.