Zugriffsschlüssel sichern
Jeder, der Ihre 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
Erweitern Sie die folgenden Abschnitte, um Anleitungen zum Schutz Ihrer Zugriffsschlüssel zu erhalten.
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.
Eine der besten Methoden, Ihr Konto zu schützen, besteht darin, für Ihr gar keinen Zugriffsschlüssel zu verwenden Root-Benutzer des AWS-Kontos. Sofern Sie nicht über Root-Benutzer-Zugriffsschlüssel verfügen müssen (was selten vorkommt), ist es am besten, diese nicht zu generieren. Erstellen Sie stattdessen einen Administratorbenutzer in AWS IAM Identity Center für tägliche Verwaltungsaufgaben. Informationen zum Erstellen eines Administratorbenutzers in IAM Identity Center finden Sie unter Erste Schritte im IAM-Identity-Center-Benutzerhandbuch.
Wenn Sie bereits über Root-Benutzer-Zugriffsschlüssel für Ihr Konto verfügen, empfehlen wir Folgendes: Suchen Sie in Ihren Anwendungen nach Stellen, an denen Sie derzeit Zugriffsschlüssel verwenden (falls vorhanden), und ersetzen Sie die Root-Benutzer-Zugriffsschlüssel durch IAM-Benutzerzugriffsschlüssel. Deaktivieren und entfernen Sie dann die Root-Benutzer-Zugriffsschlüssel. Weitere Informationen zum Aktualisieren der Zugriffsschlüsseln finden Sie unter Zugriffsschlüssel aktualisieren
In vielen Fällen benötigen Sie keine langfristigen Zugriffsschlüssel, die nie ablaufen (wie es bei IAM-Benutzern der Fall ist). 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.
Langzeit-Zugriffsschlüssel, wie etwa solche für IAM-Benutzer und -Root-Benutzer, bleiben so lange gültig, bis Sie sie manuell widerrufen. Temporäre Sicherheitsanmeldeinformationen, die über IAM-Rollen und andere Features des AWS Security Token Service gewährt werden, laufen dagegen 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 haben eine Anwendung oder AWS CLI-Skripts, die auf einer Amazon-EC2-Instance ausgeführt werden. Verwenden Sie Zugriffsschlüssel nicht direkt in Ihrer Anwendung. Übergeben Sie keine Zugriffsschlüssel an die Anwendung, betten Sie sie nicht in die Anwendung ein und lassen Sie die Anwendung keine Zugriffsschlüssel beliebiger Quellen lesen. Definieren Sie stattdessen eine IAM-Rolle mit entsprechenden Berechtigungen für Ihre Anwendung und starten Sie die Amazon Elastic Compute Cloud (Amazon EC2)-Instance mit Rollen für EC2. Dadurch wird der Amazon-EC2-Instance eine IAM-Rolle zugeordnet. Durch diese Vorgehensweise erhält die Anwendung auch temporäre Sicherheitsanmeldeinformationen, die sie wiederum für programmgesteuerte Aufrufe an AWS verwenden kann. Die AWS-SDKs und die AWS Command Line Interface (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 Konten und erteilen Sie Benutzern in einem Konto eingeschränkte Zugriffsberechtigungen für das vertrauenswürdige Konto. Weitere Informationen finden Sie unter Tutorial: Delegieren des Zugriffs in allen AWS-Konten mithilfe von IAM-Rollen.
-
Sie verfügen über eine mobile App. Betten Sie keine Zugriffsschlüssel in die App ein, auch nicht in verschlüsselten Speichern. Verwenden Sie stattdessen Amazon Cognito
zum Verwalten der Benutzeridentitäten in Ihrer App. Dieser Service ermöglicht Ihnen die Authentifizierung von Benutzern, die Login with Amazon, Facebook, Google oder einen beliebigen OpenID Connect (OIDC)-kompatiblen Identitätsanbieter nutzen. Anschließend können Sie den Anmeldeinformationsanbieter von Amazon Cognito verwenden, um Anmeldeinformationen zu verwalten, die Ihre App für Anforderungen an nutzt AWS. -
Sie möchten einen Verbund in AWS herstellen und Ihre Organisation unterstützt SAML 2.0. Falls Ihre Organisation über einen Identitätsanbieter verfügt, der SAML 2.0 unterstützt, konfigurieren Sie den Anbieter für SAML. Sie können SAML verwenden, um Authentifizierungsinformationen mit AWS auszutauschen und einen Satz temporärer Sicherheitsanmeldeinformationen zurückzuerhalten. Weitere Informationen finden Sie unter SAML 2.0-Verbund.
-
Sie möchten einen Verbund in AWS herstellen und Ihre Organisation verfügt über einen On-Premises-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 Aktivieren des benutzerdefinierten Identity-Broker-Zugriffs auf die AWS-Konsole.
-
Verwenden Sie Bedingungen in IAM-Richtlinien, um nur den Zugriff von erwarteten Netzwerken aus zuzulassen. Sie können einschränken, wo und wie Ihre Zugriffsschlüssel verwendet werden, indem Sie IAM-Richtlinien mit Bedingungen implementieren, die nur erwartete Netzwerke, wie Ihre öffentlichen IP-Adressen oder Virtual Private Clouds (VPCs), festlegen und zulassen. Auf diese Weise wissen Sie, dass Zugriffsschlüssel nur aus erwarteten und akzeptablen Netzwerken verwendet werden können.
Anmerkung
Sie verwenden eine Amazon-EC2-Instance mit einer Anwendung, die programmgesteuerten Zugriff auf AWS-Ressourcen erfordert? Falls ja, verwenden Sie IAM-Rollen für EC2.
Wenn Sie Zugriffsschlüssel für den programmgesteuerten Zugriff auf AWS erstellen müssen, erstellen Sie diese für IAM-Benutzer und gewähren Sie den Benutzern nur die erforderlichen Berechtigungen.
Beachten Sie diese Vorsichtsmaßnahmen, um die Zugriffsschlüssel von IAM-Benutzern zu schützen:
-
Betten Sie Zugriffsschlüssel nicht direkt in den Code ein. Die AWS-SDKs
und AWS-Befehlszeilen-Tools ermöglichen es Ihnen, Zugriffsschlüssel an bekannten Speicherorten abzulegen, sodass Sie sie nicht als Code behalten 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 hierfür finden Sie unter in Einrichten der AWS-Anmeldeinformationen und -Region im AWS SDK für Java-Entwicklerhandbuch und Konfigurations- und Anmeldeinformationsdateien im AWS Command Line Interface-Benutzerhandbuch.
Um Anmeldeinformationen für das AWS SDK für .NET und das AWS Tools for Windows PowerShell zu speichern, empfehlen wir die Verwendung des SDK-Speichers. Weitere Informationen finden Sie unter Verwenden des SDK-Speichers im AWS SDK für .NET-Entwicklerhandbuch.
-
Umgebungsvariablen. Wählen Sie in einem System mit mehreren Mandanten Benutzerumgebungsvariablen und keine Systemumgebungsvariablen aus.
Weitere Informationen zur Verwendung von Umgebungsvariablen zum Speichern von Anmeldeinformationen finden Sie unter Umgebungsvariablen im AWS Command Line Interface-Benutzerhandbuch.
-
-
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. Mit separaten Zugriffsschlüsseln für verschiedene Anwendungen werden auch eindeutige Einträge in AWS CloudTrail
-Protokolldateien generiert. Mit dieser Konfiguration können Sie leichter feststellen, welche Anwendung bestimmte Aktionen ausgeführt hat. -
Aktualisieren Sie die Zugriffsschlüssel bei Bedarf. Wenn das Risiko besteht, dass der Zugriffsschlüssel kompromittiert werden könnte, aktualisieren Sie den Zugriffsschlüssel und löschen Sie den vorherigen Zugriffsschlüssel. Details hierzu finden Sie unter Zugriffsschlüssel aktualisieren
-
Entfernen Sie nicht verwendete Zugriffsschlüssel. Wenn ein Benutzer Ihre Organisation verlässt, entfernen Sie den entsprechenden IAM-Benutzer, damit dieser nicht mehr auf Ihre Ressourcen zugreifen kann. Wenn Sie wissen möchten, wann ein Zugriffsschlüssel zuletzt verwendet wurde, verwenden Sie die API
GetAccessKeyLastUsed(AWS CLI-Befehl:aws iam get-access-key-last-used). -
Verwenden Sie temporäre Anmeldeinformationen und konfigurieren Sie die Multi-Faktor-Authentifizierung für Ihre sensibelsten API-Vorgänge. Mit IAM-Richtlinien können Sie angeben, welche API-Operationen ein Benutzer aufrufen darf. In einigen Fällen möchten Sie ggf. die zusätzliche Sicherheit in Anspruch nehmen, die Ihnen die AWS MFA als Voraussetzung bietet, damit der Benutzer besonders sensible Aktionen durchführen darf. Sie verfügen beispielsweise über eine Richtlinie, die dem Benutzer gestattet, die Amazon EC2 Aktionen
RunInstances,DescribeInstancesundStopInstancesauszuführen. Aber Sie möchten endgültige, nicht rückgängig machbare Aktionen einschränken, wie z. B.TerminateInstances, und sicherstellen, dass der Benutzer diese Aktionen nur ausführen kann, wenn er sich mit einem AWS-MFA-Gerät authentifiziert. Weitere Informationen finden Sie unter Sicherer API-Zugriff mit MFA.
Sie können über die mobile AWS-App auf eine begrenzte Anzahl von AWS-Diensten und -Features zugreifen. Mit der mobilen App können Sie auch unterwegs auf Vorfälle reagieren. Unter AWS Console Mobile Application
Sie können sich mit Ihrem Konsolenpasswort oder Ihren Zugriffsschlüsseln bei der mobilen App anmelden. Verwenden Sie als bewährte Methode keine Stammbenutzer-Zugriffsschlüssel. Stattdessen empfehlen wir dringend, dass Sie zusätzlich zur Verwendung eines Passworts oder einer biometrischen Sperre auf Ihrem Mobilgerät einen IAM-Benutzer speziell für die Verwaltung von AWS-Ressourcen mithilfe der mobilen App erstellen. Wenn Sie Ihr Mobilgerät verlieren, können Sie den Zugriff des IAM-Benutzers entfernen.
So melden Sie sich mit Zugriffsschlüsseln an (mobile App)
-
Öffnen Sie die App auf Ihrem mobilen Gerät.
-
Wenn Sie dem Gerät zum ersten Mal eine Identität hinzufügen, wählen Sie Identität hinzufügen und dann Zugriffsschlüssel aus.
Wenn Sie sich bereits mit einer anderen Identität angemeldet haben, wählen Sie das Menüsymbol und dann Identität wechseln aus. Wählen Sie dann Als andere Identität anmelden und dann Zugriffsschlüssel aus.
-
Geben Sie auf der Seite Zugriffsschlüssel Ihre Informationen ein:
-
Zugriffsschlüssel-ID: Geben Sie Ihre Zugriffsschlüssel-ID ein.
-
Geheimer Zugriffsschlüssel: Geben Sie Ihren geheimen Zugriffsschlüssel ein.
-
Identitätsname: Geben Sie den Namen der Identität ein, der in der mobilen App angezeigt wird. Dieser muss nicht mit Ihrem IAM-Benutzernamen übereinstimmen.
-
Identitäts-PIN: Erstellen Sie eine persönliche Identifizierungsnummer (PIN), die Sie bei zukünftigen Anmeldungen verwenden.
Anmerkung
Wenn Sie die Biometrie für die mobile AWS-App aktivieren, werden Sie aufgefordert, anstelle der PIN Ihren Fingerabdruck oder Ihre Gesichtserkennung zur Überprüfung zu verwenden. Wenn die Biometrie fehlschlägt, werden Sie möglicherweise stattdessen zur Eingabe der PIN aufgefordert.
-
-
Wählen Sie Überprüfen und Hinzufügen von Schlüsseln.
Sie können nun über die mobile App auf eine ausgewählte Gruppe Ihrer Ressourcen zugreifen.
Die folgenden Themen bieten Anleitungen zum Einrichten der AWS-SDKs und der AWS CLI zur Verwendung von Zugriffsschlüsseln:
-
Einrichten der AWS-Anmeldeinformationen und -Region im AWS SDK für Java-Entwicklerhandbuch
-
Verwendung des SDK-Speichers im AWS SDK für .NET-Entwicklerhandbuch
-
Bereitstellung von Anmeldeinformationen für das SDK im AWS SDK für PHP-Entwicklerhandbuch
-
Konfiguration
in der Dokumentation zu Boto 3 (AWS-SDK für Python) -
Verwendung von AWS-Anmeldeinformationen im AWS Tools for Windows PowerShell-Benutzerhandbuch
-
Konfigurations- und Anmeldeinformationsdateien im AWS Command Line Interface-Benutzerhandbuch
-
Gewährung des Zugriffs mithilfe einer IAM-Rolle im AWS SDK für .NET-Entwicklerhandbuch
-
Konfigurieren von IAM-Rollen für Amazon EC2 in der AWS SDK for Java 2.x
Verwenden von Zugriffsschlüsseln und geheimen Schlüsselanmeldeinformationen für den Konsolenzugriff
Es ist möglich, Zugriffsschlüssel und geheime Schlüsselanmeldeinformationen für den direkten Zugriff auf die AWS-Managementkonsole zu verwenden, nicht nur die AWS CLI. Verwenden Sie dazu den API-Aufruf AWS STS GetFederationToken. Durch die Erstellung einer Konsolen-URL mithilfe der temporären Anmeldeinformationen und des Tokens, die von GetFederationToken bereitgestellt werden, können IAM-Prinzipale auf die Konsole zugreifen. Weitere Informationen finden Sie unter Aktivieren des benutzerdefinierten Identity-Broker-Zugriffs auf die AWS-Konsole.
Es ist wichtig zu beachten, dass bei der direkten Anmeldung an der Konsole mit IAM- oder Root-Benutze-Anmeldeinformationen bei aktivierter MFA eine MFA erforderlich ist. Wenn jedoch die oben beschriebene Methode (unter Verwendung temporärer Anmeldeinformationen mit GetFederationToken) verwendet wird, ist MFA NICHT erforderlich.
Überwachen von Zugriffsschlüsseln
Sie können die AWS-Zugriffsschlüssel in Ihrem Code überprüfen, um festzustellen, ob die Schlüssel aus einem Konto stammen, das Sie besitzen. Sie können eine Zugriffsschlüssel-ID mit dem Befehl aws sts
get-access-key-info AWS CLI oder der API-Operation GetAccessKeyInfo AWS übergeben.
Die API-Operationen AWS CLI und AWS geben die ID des AWS-Konto zurück, zu dem der Zugriffsschlüssel gehört. Zugriffsschlüssel-IDs, die mit AKIA beginnen, sind langfristige Anmeldeinformationen für einen IAM-Benutzer oder Root-Benutzer des AWS-Kontos. Zugriffsschlüssel-IDs, die mit ASIA beginnen, sind temporäre Anmeldeinformationen, die mithilfe von AWS STS-Operationen erstellt werden. Wenn das Konto in der Antwort Ihnen gehört, können Sie sich als Stammbenutzer anmelden und Ihre Stammbenutzer-Zugriffsschlüssel überprüfen. Anschließend können Sie einen Anmeldeinformationsbericht abrufen, um zu erfahren, welcher IAM-Benutzer die Schlüssel besitzt. Um festzustellen, wer die temporären Anmeldeinformationen für einen ASIA-Zugriffsschlüssel angefordert hat, zeigen Sie die AWS STS-Ereignisse in Ihren CloudTrail-Protokollen an.
Aus Sicherheitsgründen können Sie AWS CloudTrail-Protokolle überprüfen, um zu erfahren, wer eine Aktion in AWS ausgeführt hat. Sie können den sts:SourceIdentity-Bedingungsschlüssel in der Rollenvertrauensrichtlinie verwenden, damit Benutzer einen Sitzungsnamen angeben müssen, wenn sie eine Rolle übernehmen. Sie können beispielsweise verlangen, dass IAM-Benutzer ihren eigenen Benutzernamen als Sitzungsnamen angeben. Auf diese Weise können Sie feststellen, welcher Benutzer eine bestimmte Aktion in ausgeführt hat AWS. Weitere Informationen finden Sie unter sts:SourceIdentity.
Diese Operation gibt nicht den Status des Zugriffsschlüssels an. Der Schlüssel kann aktiv, inaktiv oder gelöscht sein. Aktive Schlüssel verfügen möglicherweise nicht über Berechtigungen zum Ausführen einer Operation. Die Bereitstellung eines gelöschten Zugriffsschlüssels gibt möglicherweise einen Fehler zurück, der besagt, dass der Schlüssel nicht vorhanden ist.