Menü
Amazon Web Services
Allgemeine Referenz (Version 1.0)

Bewährte Methoden für die Verwaltung von AWS-Zugriffsschlüsseln

Wenn Sie auf AWS programmgesteuert zugreifen, können Sie einen Zugriffsschlüssel verwenden, um Ihre Identität und die Identität Ihrer Anwendungen zu überprüfen. Ein Zugriffsschlüssel besteht aus einer Zugriffsschlüssel-ID (z. B. AKIAIOSFODNN7EXAMPLE) und einem geheimen Zugriffsschlüssel (z. B. wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY).

Jeder, der Ihren Zugriffsschlüssel besitzt, hat denselben Zugang zu Ihren AWS-Ressourcen wie Sie. Folglich ergreift AWS zahlreiche Maßnahmen zum Schutz Ihrer Zugriffsschlüssel und zur Einhaltung unseres Modells der gemeinsamen Verantwortung – was auch Sie tun sollten.

Die folgenden Schritte können Ihnen dabei helfen, Ihre Zugriffsschlüssel zu schützen. Informationen zum allgemeinen Hintergrund finden Sie unter AWS-Sicherheitsanmeldeinformationen.

Anmerkung

Ihre Organisation hat unter Umständen andere Sicherheitsanforderungen und -richtlinien als die in diesem Thema beschriebenen. Die hier gemachten Vorschläge dienen lediglich als allgemeine Orientierungshilfe.

Entfernen Sie einen Zugriffsschlüssel für das Konto (bzw. erstellen Sie erst gar keinen).

Ein Zugriffsschlüssel ist notwendig, um Anforderungen zu signieren, die Sie über die AWS-Befehlszeilen-Tools, die AWS SDKs oder direkte API-Aufrufe erstellen. Jeder, der den Zugriffsschlüssel für Ihr AWS account root user besitzt, hat uneingeschränkten Zugriff auf alle Ressourcen in Ihrem Konto, einschließlich Fakturierungsdaten. Sie können die Berechtigungen für Ihr AWS account root user nicht einschränken.

Eine der besten Methoden, Ihr Konto zu schützen, besteht darin, für Ihr AWS account root user gar keinen Zugriffsschlüssel verwenden. Sofern Sie nicht unbedingt einen root user-Zugriffsschlüssel benötigen (was sehr selten der Fall ist), sollten Sie besser gar keinen generieren. Stattdessen ist die empfohlene bewährte Methode, einen oder mehrere IAM-Benutzer (AWS Identity and Access Management) zu erstellen, ihnen die erforderlichen Berechtigungen zu erteilen und für die tägliche Interaktion mit AWS die IAM-Benutzer zu verwenden.

Wenn Sie bereits über einen Zugriffsschlüssel für Ihr Konto verfügen, empfehlen wir Folgendes: Finden Sie bei allen Anwendungen heraus, wo er derzeit benutzt wird, ersetzen Sie den root user-Zugriffsschlüssel durch einen IAM-Benutzerzugriffsschlüssel, und deaktivieren und entfernen Sie dann den root user-Zugriffsschlüssel. Weitere Informationen dazu, wie Sie einen Zugriffsschlüssel durch einen anderen ersetzen, finden Sie im Beitrag How to Rotate Access Keys for IAM Users im AWS-Blog zur Sicherheit.

Standardmäßig generiert AWS keine Zugriffsschlüssel für neue Konten.

Informationen zum Erstellen eines IAM-Benutzers mit Administratorberechtigungen finden Sie unter Erstellen Ihres ersten IAM-Administratorbenutzers und der Gruppe im IAM-Benutzerhandbuch.

Verwenden Sie temporäre Sicherheitsanmeldeinformationen (IAM-Rollen) anstelle langfristiger Zugriffsschlüssel.

In vielen Fällen benötigen Sie keinen langfristigen Zugriffsschlüssel, der niemals abläuft (wie bei IAM-Benutzern). Erstellen Sie stattdessen IAM-Rollen und generieren Sie temporäre Sicherheitsanmeldeinformationen. Temporäre Sicherheitsanmeldeinformationen bestehen aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel, enthalten aber auch ein Sicherheits-Token, das angibt, wann die Anmeldeinformationen ablaufen.

Langfristige Zugriffsschlüssel, wie z. B. jene für IAM-Benutzer und AWS account root user, bleiben so lange gültig, bis Sie sie manuell widerrufen. Allerdings laufen temporäre Sicherheitsanmeldeinformationen, die über die IAM-Rollen und andere Funktionen von AWS Security Token Service erteilt werden, nach kurzer Zeit ab. Verwenden Sie temporäre Sicherheitsanmeldeinformationen, um das Risiko für den Fall zu verringern, dass Anmeldeinformationen versehentlich kompromittiert werden.

Verwenden Sie eine IAM-Rolle und temporäre Sicherheitsanmeldeinformationen in den folgenden Szenarien:

  • Sie verfügen über eine Anwendung oder AWS CLI-Skripts, die auf einer Amazon EC2-Instance ausgeführt werden. Übergeben Sie der Anwendung keinen Zugriffsschlüssel, betten Sie ihn nicht in der Anwendung ein und lassen Sie die Anwendung einen Schlüssel nicht aus einer Quelle wie einem Amazon S3-Bucket lesen (auch wenn dieser verschlüsselt ist). Definieren Sie stattdessen eine IAM-Rolle mit den entsprechenden Berechtigungen für Ihre Anwendung und starten Sie die Amazon EC2-Instance mit Rollen für EC2. Dadurch wird eine IAM-Rolle mit der Amazon EC2-Instance verknüpft und die Anwendung kann temporäre Anmeldeinformationen abrufen, die sie für AWS-Aufrufe verwenden kann. Die AWS SDKs und die AWS CLI können temporäre Anmeldeinformationen von der Rolle automatisch abrufen.

  • Sie müssen kontenübergreifenden Zugriff gewähren. Verwenden Sie eine IAM-Rolle zum Einrichten von Vertrauensstellungen zwischen den Konten und erteilen Sie Benutzern in einem Konto eingeschränkten Zugriff auf das vertrauenswürdige Konto. Weitere Informationen finden Sie in der praktischen Anleitung zum Delegieren des Zugriffs in allen AWS-Konten mithilfe von IAM-Rollen im IAM-Benutzerhandbuch.

  • Sie verfügen über eine mobile App. Betten Sie keinen Zugriffsschlüssel in der App ein, selbst nicht im verschlüsselten Speicher. Verwenden Sie stattdessen Amazon Cognito zum Verwalten der Benutzeridentitäten in Ihrer App. Dieser Service ermöglicht Ihnen die Authentifizierung von Benutzern, die die Anmeldung über Amazon, Facebook, Google oder einen beliebigen OpenID Connect-kompatiblen (OIDC) Anbieter nutzen. Anschließend können Sie den Amazon Cognito-Anbieter für Anmeldeinformationen verwenden, um Anmeldeinformationen zu verwalten, die Ihre App für Anforderungen an AWS nutzt. Weitere Informationen finden Sie unter Using the Amazon Cognito Credentials Provider im AWS-Blog für mobile Anwendungen.

  • Sie möchten einen Verbund in AWS herstellen und Ihre Organisation unterstützt SAML 2.0. Wenn Sie für eine Organisation arbeiten, deren Identitätsanbieter SAML 2.0 unterstützt, konfigurieren Sie den Anbieter so, dass SAML für den Austausch von Authentifizierungsinformationen mit AWS verwendet und ein Satz temporärer Sicherheitsanmeldeinformationen zurückgegeben wird. Weitere Informationen finden Sie unter Informationen zu SAML 2.0-basiertem Verbund im IAM-Benutzerhandbuch.

  • Sie möchten einen Verbund in AWS herstellen und Ihre Organisation verfügt über einen lokalen Identitätsspeicher. Wenn sich Benutzer innerhalb Ihrer Organisation authentifizieren können, können Sie eine Anwendung schreiben, die ihnen temporäre Sicherheitsanmeldeinformationen für den Zugriff auf AWS-Ressourcen erteilt. Weitere Informationen finden Sie unter Erstellen einer URL, die verbundenen Benutzern Zugriff auf die AWS Management Console ermöglicht (Custom Federation Broker) im IAM-Benutzerhandbuch.

Verwalten Sie die IAM-Benutzerzugriffsschlüssel auf ordnungsgemäße Weise.

Wenn Sie Zugriffsschlüssel für den programmgesteuerten Zugriff auf AWS erstellen müssen, erstellen Sie einen IAM-Benutzer und gewähren Sie diesem Benutzer nur die Berechtigungen, die er benötigt. Generieren Sie dann einen Zugriffsschlüssel für diesen Benutzer. Weitere Informationen finden Sie unter Verwalten der Zugriffsschlüssel für IAM-Benutzer im IAM-Benutzerhandbuch.

Anmerkung

Wenn Sie eine Anwendung auf einer Amazon EC2-Instance ausführen und die Anwendung Zugriff auf AWS-Ressourcen benötigt, sollten Sie IAM-Rollen für EC2 verwenden, wie im vorherigen Abschnitt beschrieben.

Beachten Sie die folgenden Vorsichtsmaßnahmen, wenn Sie Zugriffsschlüssel verwenden:

  • Betten Sie Zugriffsschlüssel nicht direkt im Code ein. Die AWS SDKs und AWS-Befehlszeilen-Tools ermöglichen es Ihnen, Zugriffsschlüssel in bekannten Speicherorten abzulegen, so dass Sie sie nicht in den Code integrieren müssen.

    Legen Sie Zugriffsschlüssel an einem der folgenden Orte ab:

    • Datei mit den AWS-Anmeldeinformationen. Die AWS SDKs und AWS CLI verwenden automatisch die Anmeldeinformationen, die Sie in der Datei mit den AWS-Anmeldeinformationen speichern.

      Weitere Informationen zur Verwendung der Datei mit den AWS-Anmeldeinformationen finden Sie in der Dokumentation für Ihr SDK. Beispiele finden Sie hier: Einrichten der AWS-Anmeldeinformationen und -Region für die Entwicklung im AWS SDK for Java Developer Guide und Konfigurations- und Anmeldeinformationsdateien im Benutzerhandbuch für AWS Command Line Interface.

      Anmerkung

      Um Anmeldeinformationen für das AWS SDK für .NET und AWS-Tools für Windows PowerShell zu speichern, empfehlen wir die Verwendung des SDK Store. Weitere Informationen finden Sie unter Verwenden des SDK Store im AWS SDK für .NET Developer Guide.

    • Umgebungsvariablen. Wählen Sie in einem Mehrmandantensystem Benutzerumgebungsvariablen, keine Systemumgebungsvariablen.

      Weitere Informationen zur Verwendung von Umgebungsvariablen zum Speichern von Anmeldeinformationen finden Sie unter Umgebungsvariablen im Benutzerhandbuch für AWS Command Line Interface.

  • Verwenden Sie unterschiedliche Zugriffsschlüssel für unterschiedliche Anwendungen. Wenn Sie dies tun, können Sie die Berechtigungen isolieren und die Zugriffsschlüssel für einzelne Anwendungen widerrufen, wenn ein Zugriffsschlüssel kompromittiert wurde. Wenn Sie separate Zugriffsschlüssel für verschiedene Anwendungen pflegen, werden auch verschiedene Einträge in den AWS CloudTrail-Protokolldateien generiert. So können Sie leichter feststellen, welche Anwendung bestimmte Aktionen durchgeführt hat.

  • Rotieren Sie Zugriffsschlüssel in regelmäßigen Abständen. Ändern Sie die Zugriffsschlüssel regelmäßig. Weitere Informationen finden Sie unter Rotieren von Zugriffsschlüsseln (AWS CLI-, Tools für Windows PowerShell- und AWS-API) im IAM-Benutzerhandbuch und How to Rotate Access Keys for IAM Users im AWS-Blog zur Sicherheit.

  • Entfernen Sie nicht verwendete Zugriffsschlüssel. Wenn ein Benutzer Ihre Organisation verlässt, entfernen Sie den entsprechenden IAM-Benutzer, damit der Zugriff dieses Benutzers auf Ihre Ressourcen entfernt wird. Wenn Sie wissen möchten, wann ein Zugriffsschlüssel zuletzt verwendet wurde, verwenden Sie die GetAccessKeyLastUsed API (AWS CLI-Befehl: aws iam get-access-key-last-used).

  • Konfigurieren Sie die Multifaktor-Authentifizierung für besonders sensible Operationen. Weitere Informationen finden Sie unter Verwenden der Multi-Factor Authentication (MFA) in AWS im IAM-Benutzerhandbuch.

Weitere Ressourcen

Weitere Informationen zu bewährten Sicherheitsmethoden für Ihr AWS-Konto finden Sie in den folgenden Ressourcen: