Bewährte Methoden für die Sicherheit in IAM - AWS Identity and Access Management

Bewährte Methoden für die Sicherheit in IAM

Um Ihre AWS-Ressourcen zu schützen, befolgen Sie diese bewährten Methoden für AWS Identity and Access Management (IAM).

Fordern Sie menschliche Benutzer auf, den Verbund mit einem Identitätsanbieter zu verwenden, um mit temporären Anmeldeinformationen auf AWS zuzugreifen

Menschliche Benutzer, auch bekannt als menschliche Identitäten, sind die Personen, Administratoren, Entwickler, Betreiber und Verbraucher Ihrer Anwendungen. Sie müssen eine Identität haben, um auf Ihre AWS-Umgebungen und Anwendungen zugreifen zu können. Menschliche Benutzer, die Mitglieder Ihrer Organisation sind, werden auch als Mitarbeiteridentitäten bezeichnet. Menschliche Benutzer können auch externe Benutzer sein, mit denen Sie zusammenarbeiten und die mit Ihren AWS-Ressourcen interagieren. Sie können dies über einen Webbrowser, eine Client-Anwendung, eine mobile App oder interaktive Befehlszeilentools tun.

Fordern Sie menschliche Benutzer auf, dass sie beim Zugriff auf AWS temporäre Anmeldedaten verwenden. Sie können einen Identitätsanbieter für Ihre menschlichen Benutzer verwenden, um einen Verbundzugriff auf AWS-Konten zu ermöglichen, indem Sie Rollen übernehmen, die temporäre Anmeldedaten bereitstellen. Für eine zentrale Zugriffsverwaltung empfehlen wir Ihnen die Verwendung von AWS IAM Identity Center (IAM Identity Center), um den Zugriff auf Ihre Konten und die Berechtigungen innerhalb dieser Konten zu verwalten. Sie können Ihre Benutzeridentitäten mit IAM Identity Center verwalten oder Zugriffsberechtigungen für Benutzeridentitäten in IAM Identity Center von einem externen Identitätsanbieter verwalten. Weitere Informationen finden Sie unter Was ist AWS IAM Identity Center? im AWS IAM Identity Center-Benutzerhandbuch.

Weitere Informationen zu Rollen finden Sie unter Rollenbegriffe und -konzepte.

Fordern Sie Workloads auf, temporäre Anmeldeinformationen mit IAM-Rollen für den Zugriff auf AWS zu verwenden

Ein Workload ist eine Sammlung von Ressourcen und Code, die einen geschäftlichen Nutzen erbringen, z. B. eine Anwendung oder ein Backend-Prozess. Ihre Workload kann Anwendungen, Betriebstools und Komponenten enthalten, die Anmeldeinformationen benötigen, um Anfragen an AWS-Services zu senden, z. B. zum Lesen von Daten aus Amazon S3.

Wenn Sie auf einem AWS-Rechenservice wie Amazon EC2 oder Lambda entwickeln, stellt AWS die temporären Anmeldeinformationen einer IAM-Rolle für diese Rechenressource bereit. Anwendungen, die mit einem AWS SDK entwickelt wurden, erkennen und verwenden diese temporären Anmeldeinformationen für den Zugriff auf AWS-Ressourcen. Es ist daher nicht erforderlich, dauerhafte Anmeldeinformationen für einen IAM-Benutzer an Ihre auf AWS ausgeführten Workloads zu verteilen.

Workloads, die außerhalb von AWS ausgeführt werden, wie z. B. Ihre On-Premises-Server, Server anderer Cloud-Anbieter oder verwaltete CI/CD-Plattformen, können weiterhin temporäre Anmeldeinformationen verwenden. Sie müssen diese temporären Anmeldeinformationen jedoch Ihrem Workload bereitstellen. Im Folgenden finden Sie Möglichkeiten, temporäre Anmeldeinformationen für Ihre Workloads bereitzustellen:

  • Sie können IAM Roles Anywhere verwenden, um temporäre AWS-Anmeldeinformationen für Ihren Workload mithilfe eines X.509-Zertifikats Ihrer Infrastruktur für öffentliche Schlüssel (PKI) anzufordern.

  • Sie können die AWS STSAssumeRoleWithSAML-API von AWS aufrufen, um temporäre AWS-Anmeldeinformationen für Ihre Workload mithilfe einer SAML-Assertion von einem externen Identitätsanbieter (IDP) anzufordern, der in Ihrem AWS-Konto konfiguriert ist.

  • Sie können die AWS STS AssumeRoleWithWebIdentity-API von AWS aufrufen, um temporäre AWS-Anmeldeinformationen für Ihre Workload mithilfe eines JSON-Web-Tokens (JWT) von einem in Ihrem AWS-Konto konfigurierten IDP anzufordern.

  • Sie können temporäre AWS-Anmeldeinformationen von Ihrem IoT-Gerät mithilfe von MTLS-Authentifizierung (Mutual Transport Layer Security) über AWS IoT Core anfordern.

Einige AWS-Services unterstützen außerdem Integrationen zur Bereitstellung temporärer Anmeldeinformationen für Ihre Workloads, die außerhalb von AWS ausgeführt werden.

  • Mit Amazon Elastic Container Service (Amazon ECS) Anywhere können Sie Amazon-ECS-Aufgaben auf Ihren eigenen Rechenressourcen ausführen und erhalten temporäre AWS-Anmeldeinformationen für diese Aufgaben.

  • Mit Amazon Elastic Kubernetes Service Hybrid Nodes können Sie Ihre außerhalb von AWS ausgeführten Rechenressourcen als Knoten in einen Amazon-EKS-Cluster einbinden. Amazon EKS kann temporäre Anmeldeinformationen an die auf Ihren Rechenressourcen ausgeführten Amazon-EKS-Pods bereitstellen.

  • AWS Systems ManagerHybrid Activations ermöglicht die Verwaltung Ihrer außerhalb von AWS ausgeführten Rechenressourcen mithilfe von SSM und stellt temporäre AWS-Anmeldeinformationen für den auf Ihren Rechenressourcen ausgeführten SSM-Agenten bereit.

Verlangt eine Multi-Faktor-Authentifizierung (MFA)

Wir empfehlen die Verwendung von IAM-Rollen für menschliche Benutzer und Workloads, die auf Ihre AWS-Ressourcen zugreifen, damit diese temporäre Anmeldeinformationen verwenden. Für Szenarien, in denen Sie IAM-Benutzer oder Root-Benutzer in Ihrem Konto benötigen, benötigen Sie jedoch MFA für zusätzliche Sicherheit. Mit MFA verfügen Benutzer über ein System, das eine Antwort auf eine Authentifizierungsaufgabe generiert. Die Anmeldeinformationen und die vom Gerät generierte Antwort jedes Benutzers sind erforderlich, um den Anmeldevorgang abzuschließen. Weitere Informationen finden Sie unter AWS-Multi-Faktor-Authentifizierung in IAM.

Wenn Sie IAM Identity Center für die zentralisierte Zugriffsverwaltung für menschliche Benutzer verwenden, können Sie die IAM Identity Center-MFA-Funktionen nutzen, wenn Ihre Identitätsquelle mit dem IAM Identity Center-Identitätsspeicher, AWS Managed Microsoft AD oder AD Connector konfiguriert ist. Weitere Informationen über MFA in IAM Identity Center finden Sie unter Verwenden der Multi-Faktor-Authentifizierung (MFA) im AWS IAM Identity Center-Benutzerhandbuch.

Aktualisieren Sie Zugriffsschlüssel für Anwendungsfälle, die langfristige Anmeldeinformationen erfordern

Wenn möglich, empfehlen wir, sich auf temporäre Anmeldeinformationen zu verlassen, anstatt langfristige Anmeldeinformationen wie Zugriffsschlüssel zu erstellen. Für Szenarien, in denen Sie IAM-Benutzer mit programmgesteuertem Zugriff und langfristigen Anmeldeinformationen benötigen, empfehlen wir Ihnen jedoch, die Zugriffsschlüssel bei Bedarf zu aktualisieren, beispielsweise wenn ein Mitarbeiter Ihr Unternehmen verlässt. Wir empfehlen, dass Sie IAM-Zugriff auf zuletzt verwendete Informationen verwenden, um Zugriffsschlüssel sicher zu aktualisieren und zu entfernen. Weitere Informationen finden Sie unter Zugriffsschlüssel aktualisieren.

Es gibt spezielle Anwendungsfälle, die langfristige Anmeldeinformationen mit IAM-Benutzern in AWS erfordern. Einige der Anwendungsfälle umfassen Folgendes:

  • Workloads, die IAM-Rollen nicht verwenden können – Sie könnten einen Workload von einem Speicherort ausführen, der auf AWS zugreifen muss. In manchen Situationen können Sie keine IAM-Rollen verwenden, um temporäre Anmeldeinformationen bereitzustellen, z. B. für WordPress-Plugins. Verwenden Sie in diesen Situationen langfristige IAM-Benutzerzugriffsschlüssel für diesen Workload, um sich bei AWS zu authentifizieren.

  • AWS-Clients von Drittanbietern – Wenn Sie Tools verwenden, die den Zugriff mit IAM Identity Center nicht unterstützen, z. B. AWS-Clients von Drittanbietern oder Anbieter, die nicht auf AWS gehostet werden, verwenden Sie langfristige IAM-Benutzerzugriffsschlüssel.

  • AWS CodeCommit-Zugriff – Wenn Sie CodeCommit zum Speichern Ihres Codes verwenden, können Sie einen IAM-Benutzer mit SSH-Schlüsseln oder dienstspezifischen Anmeldeinformationen verwenden, damit CodeCommit sich bei Ihren Repositorys authentifiziert. Wir empfehlen Ihnen, dies zusätzlich zu einem Benutzer im IAM Identity Center für die normale Authentifizierung zu verwenden. Benutzer im IAM Identity Center sind die Personen in Ihrer Belegschaft, die Zugriff auf Ihre AWS-Konten oder für Ihre Cloud-Anwendungen haben. Um Benutzern den Zugriff auf Ihre CodeCommit-Repositories zu ermöglichen, ohne IAM-Benutzer zu konfigurieren, können Sie das Dienstprogramm git-remote-codecommit konfigurieren. Weitere Informationen über IAM und CodeCommit finden Sie unter IAM-Anmeldeinformationen für CodeCommit: Git-Anmeldeinformationen, SSH-Schlüssel und AWS-Zugriffsschlüssel. Weitere Informationen zur Konfiguration des git-remote-codecommit-Dienstprogramms finden Sie unter Verbinden mit AWS CodeCommit-Repositories mit rotierenden Anmeldeinformationen im AWS CodeCommit-Benutzerhandbuch.

  • Zugriff auf Amazon Keyspaces (für Apache Cassandra) – In einer Situation, in der Sie Benutzer im IAM Identity Center nicht verwenden können, z. B. zu Testzwecken für die Cassandra-Kompatibilität, können Sie einen IAM-Benutzer mit dienstspezifischen Anmeldeinformationen verwenden, um sich bei Amazon Keyspaces zu authentifizieren. Benutzer im IAM Identity Center sind die Personen in Ihrer Belegschaft, die Zugriff auf Ihre AWS-Konten oder für Ihre Cloud-Anwendungen haben. Sie können auch mithilfe temporärer Anmeldeinformationen eine Verbindung zu Amazon Keyspaces herstellen. Weitere Informationen finden Sie unter Verwendung temporärer Anmeldeinformationen für die Verbindung zu Amazon Keyspaces mithilfe einer IAM-Rolle und des SigV4-Plugins im Amazon Keyspaces (für Apache Cassandra)-Entwicklerhandbuch.

Befolgen Sie bewährte Methoden zum Schutz Ihrer Root-Benutzer-Anmeldedaten

Wenn Sie ein AWS-Konto erstellen, legen Sie Root-Anmeldeinformationen fest, mit denen Sie sich bei der AWS-Managementkonsole anmelden. Schützen Sie Ihre Root-Benutzeranmeldeinformationen auf die gleiche Weise wie andere vertrauliche persönliche Daten. Weitere Informationen zur Sicherung und Skalierung Ihrer Root-Benutzer-Prozesse finden Sie unter Bewährte Methoden für Root-Benutzer für Ihren AWS-Konto.

Gewähren Sie die geringsten Berechtigungen

Gewähren Sie die Berechtigungen mit IAM Richtlinien nur die zum Ausführen einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als die geringsten Berechtigungen. Sie können mit umfassenden Berechtigungen beginnen, während Sie die für Ihren Workload oder Anwendungsfall erforderlichen Berechtigungen untersuchen. Mit zunehmender Reife Ihres Anwendungsfalls können Sie daran arbeiten, die Berechtigungen zu reduzieren, die Sie gewähren, um auf die geringsten Berechtigungen hinzuarbeiten. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter Richtlinien und Berechtigungen in AWS Identity and Access Management.

Erste Schritte mit AWS-verwaltete Richtlinien und Umstellung auf Berechtigungen mit den geringsten Berechtigungen

Um Ihren Benutzern und Workloads Berechtigungen zu gewähren, verwenden Sie die AWS-verwaltete Richtlinien die Berechtigungen für viele häufige Anwendungsfälle gewähren. Sie sind in Ihrem AWS-Konto verfügbar. Beachten Sie, dass AWS-verwaltete Richtlinien möglicherweise keine Berechtigungen mit den geringsten Berechtigungen für Ihre spezifischen Anwendungsfälle gewähren, da sie für alle AWS-Kunden verfügbar sind. Daher empfehlen wir Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom Kunden verwaltete Richtlinien definieren, die spezifisch auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter Von AWS verwaltete Richtlinien. Weitere Informationen über verwaltete AWS-Richtlinien, die für bestimmte Arbeitsfunktionen konzipiert sind, finden Sie unter AWSVon verwaltete Richtlinien für Auftragsfunktionen.

Verwenden Sie IAM Access Analyzer, um Richtlinien für die geringste Berechtigung basierend auf der Zugriffsaktivität zu generieren

Um nur die zum Ausführen einer Aufgabe erforderlichen Berechtigungen zu erteilen, können Sie Richtlinien auf der Grundlage Ihrer in AWS CloudTrail protokollierten Zugriffsaktivitäten erstellen. IAM Access Analyzer analysiert die Dienste und Aktionen, die Ihre IAM-Rollen verwenden, und generiert dann eine fein abgestimmte Richtlinie, die Sie verwenden können. Nachdem Sie jede generierte Richtlinie getestet haben, können Sie die Richtlinie in Ihrer Produktionsumgebung bereitstellen. Dadurch wird sichergestellt, dass Sie nur die erforderlichen Berechtigungen für Ihre Workloads gewähren. Weitere Informationen zur Richtlinienerstellung finden Sie unter IAM Access Analyzer Richtlinienerstellung.

Überprüfen und entfernen Sie regelmäßig nicht verwendete Benutzer, Rollen, Berechtigungen, Richtlinien und Anmeldeinformationen

Möglicherweise haben Sie IAM-Benutzer, -Rollen, -Berechtigungen, -Richtlinien oder -Berechtigungsnachweise, die Sie in Ihrem AWS-Konto nicht mehr benötigen. IAM stellt Informationen zum letzten Zugriff zur Verfügung, mit deren Hilfe Sie Benutzer, Rollen, Berechtigungen, Richtlinien und Anmeldeinformationen identifizieren können, die Sie nicht mehr benötigen, damit Sie sie entfernen können. Auf diese Weise können Sie die Anzahl der Benutzer, Rollen, Berechtigungen, Richtlinien und Anmeldeinformationen, die Sie überwachen müssen, reduzieren. Sie können diese Informationen auch dazu verwenden, Ihre IAM-Richtlinien so zu verfeinern, sodass sie die Berechtigungen mit den geringsten Berechtigungen besser einhalten. Weitere Informationen finden Sie unter Verfeinern von Berechtigungen in AWS mithilfe der Informationen zum letzten Zugriff.

Verwenden Sie Bedingungen in IAM-Richtlinien, um den Zugriff weiter einzuschränken

Sie können die Bedingungen angeben, unter denen eine Richtlinienanweisung wirksam ist. Auf diese Weise können Sie Zugriff auf Aktionen und Ressourcen gewähren, jedoch nur, wenn die Zugriffsanfrage bestimmte Bedingungen erfüllt. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anfragen mithilfe von TLS gesendet werden müssen. Sie können auch Bedingungen verwenden, um den Zugang zu Dienstaktionen zu gewähren, aber nur, wenn sie durch ein bestimmtes AWS-Service, wie beispielsweise CloudFormation, verwendet werden. Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Condition.

Überprüfen Sie den öffentlichen und kontoübergreifenden Zugriff auf Ressourcen mit IAM Access Analyzer

Bevor Sie Berechtigungen für den öffentlichen oder kontenübergreifenden Zugriff in AWS erteilen, empfehlen wir Ihnen, zu überprüfen, ob ein solcher Zugriff erforderlich ist. Sie können IAM Access Analyzer verwenden, um eine Vorschau und Analyse des öffentlichen und kontoübergreifenden Zugriffs für unterstützte Ressourcentypen zu erhalten. Sie tun dies, indem Sie die Befunde überprüfen, die IAM Access Analyzer generiert. Mithilfe dieser Ergebnisse können Sie überprüfen, ob Ihre Ressourcenzugriffskontrollen den erwarteten Zugriff gewähren. Wenn Sie öffentliche und kontoübergreifende Berechtigungen aktualisieren, können Sie außerdem die Auswirkungen Ihrer Änderungen überprüfen, bevor Sie neue Zugriffskontrollen für Ihre Ressourcen bereitstellen. IAM Access Analyzer überwacht außerdem kontinuierlich unterstützte Ressourcentypen und generiert eine Suche nach Ressourcen, die einen öffentlichen oder kontoübergreifenden Zugriff ermöglichen. Weitere Informationen finden Sie unter Vorschau des Zugriffs mit IAM Access Analyzer APIs.

Verwenden Sie IAM Access Analyzer, um Ihre IAM-Richtlinien zu validieren und sichere und funktionale Berechtigungen zu gewährleisten

Validieren Sie die Richtlinien, die Sie erstellen, um sicherzustellen, dass sie der IAM-Richtliniensprache (JSON) und den bewährten Methoden von IAM entsprechen. Sie können Ihre Richtlinien mithilfe der Richtlinienvalidierung von IAM Access Analyzer validieren. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Während Sie neue Richtlinien erstellen oder bestehende Richtlinien in der Konsole bearbeiten, bietet IAM Access Analyzer Empfehlungen, die Ihnen helfen, Ihre Richtlinien zu verfeinern und zu validieren, bevor Sie sie speichern. Zusätzlich empfehlen wir Ihnen, alle Ihre bestehenden Richtlinien zu überprüfen und zu validieren. Weitere Informationen finden Sie unter IAM Access Analyzer Richtlinienvalidierung. Weitere Informationen zu den von IAM Access Analyzer bereitgestellten Richtlinienprüfungen finden Sie unter Referenz für Richtlinienprüfungen zu IAM Access Analyzer.

Richten Sie den Berechtigungs-Integritätsschutz für mehrere Konten ein

Wenn Sie Ihre Workloads skalieren, trennen Sie sie, indem Sie mehrere Konten verwenden, die mit AWS Organizations verwaltet werden. Wir empfehlen die Verwendung von Service-Kontrollrichtlinien (SCPs) von AWS Organizations, um Berechtigungsrichtlinien festzulegen und den Zugriff für alle Prinzipale (IAM-Rollen und Benutzer) in Ihren Konten einzurichten. Wir empfehlen Ihnen, Ressourcen-Kontrollrichtlinien (RCPs) vonAWS Organizations zu verwenden, um Berechtigungsrichtlinien für den Zugriff auf AWS-Ressourcen in Ihrer gesamten Organisation festzulegen. Bei SCPs und RCPs handelt es sich um Arten von Organisationsrichtlinien, mit der Sie die Berechtigungen in Ihrer Organisation auf der Ebene der AWS-Organisation, der Organisationseinheit (OE) oder des Kontos verwalten können.

Allerdings reichen SCPs und RCPs allein nicht aus, um Berechtigungen für Prinzipale und Ressourcen in Ihrer Organisation zu gewähren. Von SCPs und RCPs werden keine Berechtigungen gewährt. Um Berechtigungen zu gewähren, müssen Sie IAM-Benutzern, IAM-Rollen oder den Ressourcen in Ihren Konten identitäts- oder ressourcenbasierte Richtlinien zuordnen. Weitere Informationen finden Sie unter SRA-Bausteine ​​– AWS Organizations, Konten und Integritätsschutz.

Verwenden Sie Berechtigungsgrenzen, um die Berechtigungsverwaltung innerhalb eines Kontos zu delegieren

In einigen Szenarios kann es sinnvoll sein, die Berechtigungsverwaltung innerhalb eines Kontos an andere zu delegieren. Sie könnten Entwicklern beispielsweise ermöglichen, Rollen für ihre Workloads zu erstellen und zu verwalten. Wenn Sie Berechtigungen an andere delegieren, verwenden Sie Berechtigungsgrenzen, um die maximalen Berechtigungen festzulegen, die Sie delegieren. Eine Berechtigungsgrenze ist ein erweitertes Feature, bei der Sie eine verwaltete Richtlinie verwenden, um die maximalen Berechtigungen festzulegen, die eine identitätsbasierte Richtlinie einer IAM-Rolle gewähren kann. Eine Berechtigungsgrenze gewährt selbst keine Berechtigungen. Weitere Informationen finden Sie unter Berechtigungsgrenzen für IAM-Entitäten.