SEC03-BP09 Sicheres Teilen von Ressourcen mit Dritten
Die Sicherheit Ihrer Cloud-Umgebung endet nicht bei Ihrer Organisation. Möglicherweise stützt sich Ihre Organisation auf eine Drittpartei, um einen Teil Ihrer Daten zu verwalten. Das Berechtigungsmanagement für das von Dritten verwaltete System sollte dem Prinzip des Just-in-time-Zugriffs und dem der geringsten Berechtigung mit temporären Anmeldeinformationen folgen. Durch die enge Zusammenarbeit mit einer Drittpartei können Sie die möglichen Auswirkungen und das Risiko unbeabsichtigter Zugriffe gemeinsam senken.
Gewünschtes Ergebnis: Langfristige AWS Identity and Access Management (IAM)-Anmeldeinformationen, IAM-Zugriffsschlüssel und geheime Schlüssel, die einem Benutzer zugeordnet sind, können von allen verwendet werden, sofern sie gültig und aktiv sind. Die Verwendung einer IAM-Rolle und temporärer Anmeldeinformationen hilft bei der Verbesserung Ihrer allgemeinen Sicherheitsposition durch Reduzierung des Aufwands für die Verwaltung langfristiger Anmeldeinformationen und des operationalen Overheads dieser sensiblen Details. Durch die Verwendung einer universell eindeutigen Kennung (UUID) für die externe ID in der IAM-Vertrauensrichtlinie und die Anbindung der IAM-Richtlinien an die IAM-Rolle unter Ihrer Kontrolle können Sie prüfen und sicherstellen, dass der der Drittpartei gewährte Zugriff nicht zu umfangreich ist. Anleitungen zur Analyse extern freigegebener Ressourcen finden Sie unter SEC03-BP07 Analysieren des öffentlichen und kontoübergreifenden Zugriffs.
Typische Anti-Muster:
-
Verwendung der Standard-IAM-Vertrauensrichtlinie ohne Bedingungen
-
Verwenden langfristiger IAM-Anmeldeinformationen und Zugriffsschlüssel
-
Wiederverwendung externer IDs
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: mittel
Implementierungsleitfaden
Möglicherweise möchten Sie die Freigabe von Ressourcen außerhalb von AWS Organizations zulassen oder einer Drittpartei den Zugriff auf Ihr Konto gewähren. So könnte etwa eine Drittpartei eine Überwachungslösung bereitstellen, die auf Ressourcen in Ihrem Konto zugreifen muss. In solchen Fällen sollten Sie eine kontoübergreifende IAM-Rolle erstellen, die nur über die von der Drittpartei benötigten Berechtigungen verfügt. Definieren Sie dazu eine Vertrauensrichtlinie mit der externen ID-Bedingung. Wenn eine externe ID verwendet wird, können Sie oder die Drittpartei eine eindeutige ID für jede(n) Kunden, Drittpartei oder Tenancy generieren. Die eindeutige ID sollte nach ihrer Erstellung ausschließlich von Ihnen kontrolliert werden. Die Drittpartei muss einen Prozess implementieren, durch den die externe ID in sicherer, prüfbarer und reproduzierbarer Weise dem Kunden zugeordnet wird.
Sie können auch IAM Roles Anywhere verwenden, um IAM-Rollen für Anwendungen außerhalb von AWS zu verwalten, die AWS-APIs verwenden.
Wenn die Drittpartei keinen Zugriff mehr auf Ihre Umgebung benötigt, entfernen Sie die Rolle. Vermeiden Sie die Weitergabe langfristiger Anmeldeinformationen an Dritte. Achten Sie auf andere AWS-Services, die die Freigabe unterstützen. Beispielsweise erlaubt AWS Well-Architected Tool die Freigabe eines Workloads für andere AWS-Konten, und AWS Resource Access Manager hilft Ihnen bei der sicheren Freigabe einer AWS-Ressource, deren Eigentümer Sie sind, für andere Konten.
Implementierungsschritte
-
Verwenden Sie kontoübergreifende Rollen, um Zugriff auf externe Konten zu gewähren.
Kontoübergreifende Rollen reduzieren den Umfang sensibler Informationen, die von externen Konten und Drittparteien für deren Kunden gespeichert werden. Kontoübergreifende Rollen ermöglichen die sichere Gewährung des Zugriffes auf AWS-Ressourcen in Ihrem Konto für Drittparteien wie etwa AWS Partners oder andere Konten in Ihrer Organisation, bei gleichzeitiger Wahrung der Möglichkeit, diesen Zugriff zu verwalten und zu überprüfen.
Möglicherweise stellt Ihnen die Drittpartei Dienstleistungen aus einer hybriden Infrastruktur heraus bereit oder ruft Daten zu einem anderen Standort ab. IAM Roles Anywhere hilft Ihnen bei der Aktivierung von Workloads Dritter zur sicheren Interaktion mit Ihren AWS-Workloads und zur weiteren Reduzierung der Erfordernis langfristiger Anmeldeinformationen.
Sie sollten keine langfristigen Anmeldeinformationen oder mit Benutzern verbundene Zugriffsschlüssel für die externe Gewährung des Zugriffs auf Konten verwenden. Verwenden Sie stattdessen kontoübergreifende Rollen, um kontoübergreifenden Zugriff zu gewähren.
-
Verwenden Sie eine externe ID mit Drittparteien.
Die Verwendung einer externen ID ermöglicht Ihnen, in einer IAM-Vertrauensrichtlinie festzulegen, wer eine Rolle annehmen kann. Die Vertrauensrichtlinie kann verlangen, dass der Benutzer, der die Rolle annimmt, die Bedingung und das Ziel seiner Aktivität bestätigt. Sie bietet dem Kontoinhaber auch die Möglichkeit, die anzunehmende Rolle nur unter bestimmten Umständen zuzulassen. Die primäre Funktion der externen ID besteht darin, das Confused-Deputy-Problem anzugehen und zu verhindern.
Verwenden Sie eine externe ID, wenn Sie AWS-Konto-Eigentümer sind und eine Rolle für eine Drittpartei konfiguriert haben, die neben Ihrem auf andere AWS-Konten zugreift, oder wenn Sie Rollen für verschiedene Kunden annehmen. Arbeiten Sie zusammen mit der Drittpartei oder AWS Partner an der Einrichtung einer externen ID-Bedingung für die IAM-Vertrauensrichtlinie.
-
Verwenden Sie universell eindeutige externe IDs.
Implementieren Sie einen Prozess, der für externe IDs zufällige und eindeutige Werte generiert, etwa eine universell eindeutige Kennung (UUID). Eine Drittpartei, die externe IDs für verschiedene Kunden wiederverwendet, behebt das Confused-Deputy-Problem nicht, da Kunde A möglicherweise unter Verwendung des Rollen-ARN von Kunde B zusammen mit der duplizierten externen ID die Daten von Kunde B einsehen kann. In einer Multi-Tenant-Umgebung, in der eine Drittpartei mehrere Kunden mit verschiedenen AWS-Konten unterstützt, muss die Drittpartei eine andere eindeutige ID als die externe ID für jedes AWS-Konto verwenden. Die Drittpartei ist für das Erkennen doppelter externer IDs und die sichere Zuordnung jedes Kunden zur entsprechenden externen ID verantwortlich. Die Drittpartei muss durch Testen sicherstellen, dass sie die Rolle nur annehmen kann, wenn die externe ID angegeben wird. Die Drittpartei sollte den ARN der Kundenrolle und die externe ID nicht speichern, bis die externe ID benötigt wird.
Die externe ID wird nicht als Secret behandelt, ihr Wert darf aber nicht leicht zu erraten sein wie etwa eine Telefonnummer, ein Name oder eine Konto-ID. Machen Sie die externe ID zu einem schreibgeschützten Feld, damit sie nicht für illegitime Einrichtungen geändert werden kann.
Sie oder die Drittpartei können/kann die externe ID generieren. Richten Sie einen Prozess ein, um festzulegen, wer für die Generierung der ID verantwortlich ist. Unabhängig von der Entität, die die externe ID erstellt, setzt die Drittpartei Eindeutigkeit und Formate in konsistenter Weise für alle Kunden durch.
-
Nehmen Sie von Kunden bereitgestellte langfristige Anmeldeinformationen außer Betrieb.
Beenden Sie die Verwendung langfristiger Anmeldeinformationen, und verwenden Sie kontoübergreifende Rollen oder IAM Roles Anywhere. Wenn Sie langfristige Anmeldeinformationen verwendet müssen, formulieren Sie einen Plan für die Migration rollenbasierter Zugriffe. Einzelheiten zur Verwaltung von Schlüsseln finden Sie unterIdentitätsmanagement. Arbeiten Sie auch mit Ihrem AWS-Konto-Team und der Drittpartei daran, ein Runbook zur Risikodämpfung zu erstellen. Präskriptive Anleitungen zur Reaktion auf mögliche Auswirkungen von Sicherheitsvorfällen finden Sie unter Vorfallbehandlung.
-
Prüfen Sie, ob die Einrichtung über präskriptive Anleitungen verfügt oder automatisiert ist.
Die für den kontoübergreifenden Zugriff in Ihren Konten erstellte Richtlinie muss dem Prinzip der geringsten Berechtigungen folgen. Die Drittpartei muss ein Rollenrichtliniendokument oder einen automatisierten Einrichtungsmechanismus bereitstellen, der eine AWS CloudFormation-Vorlage oder ein Äquivalent verwendet. Dies reduziert die Gefahr von Fehlern durch die manuelle Erstellung von Richtlinien und bietet einen Überwachungspfad. Weitere Informationen zur Verwendung einer AWS CloudFormation-Vorlage für die Erstellung kontoübergreifender Rollen finden Sie unter Kontoübergreifende Rollen
. Die Drittpartei muss einen automatisierten und prüfbaren Einrichtungsmechanismus bereitstellen. Sie sollten jedoch die Einrichtung der Rolle automatisieren, indem Sie das Rollenrichtliniendokument verwenden, das den erforderlichen Zugriff angibt. Sie sollten mit der AWS CloudFormation-Vorlage oder einem Äquivalent Änderungen überwachen, mit besonderem Augenmerk auf „Drift Detection“.
-
Berücksichtigen Sie Änderungen.
Ihre Kontostruktur und Ihr Bedarf an einer Drittpartei bzw. deren Serviceangebots können sich über Nacht ändern. Sie sollten Änderungen und Ausfälle antizipieren und mit den richtigen Personen, Prozessen und Technologielösungen entsprechend planen. Prüfen Sie regelmäßig das von Ihnen bereitgestellte Zugriffsniveau und implementieren Sie Erkennungsverfahren, die Sie auf unerwartete Änderungen aufmerksam machen. Überwachen und prüfen Sie die Verwendung der externen Rolle und den Datenspeicher der externen IDs. Sie sollten darauf vorbereitet sein, den Zugriff der Drittpartei temporär oder dauerhaft zu widerrufen, wenn sich unerwartete Änderungen oder Zugriffsmuster ergeben. Messen Sie auch die Auswirkungen Ihrer Widerrufaktion, einschließlich der dafür benötigten Zeit, der involvierten Personen, der Kosten und der Auswirkungen auf andere Ressourcen.
Präskriptive Anleitungen zu Erkennungsverfahren finden Sie unter Bewährte Erkennungsmethoden.
Ressourcen
Zugehörige bewährte Methoden:
Zugehörige Dokumente:
-
Bucket-Besitzer gewährt kontoübergreifende Berechtigung für Objekte, die er nicht besitzt
-
Delegieren des Zugriffs in allen AWS-Konten mithilfe von IAM-Rollen
-
Wie greife ich mit IAM auf Ressourcen in einem anderen AWS-Konto zu?
-
Verwenden einer externen ID, um Dritten Zugriff auf Ihre AWS-Ressourcen zu gewähren
-
Collecting Information from AWS CloudFormation Resources Created in External Accounts with Custom Resources
(Erfassen von Informationen von in externen Konten mit benutzerdefinierten Ressourcen erstellten AWS-CloudFormation-Ressourcen) -
Securely Using External ID for Accessing AWS Accounts Owned by Others
(Sichere Verwendung einer externen ID für den Zugriff auf AWS-Konten, die anderen gehören) -
Extend IAM roles to workloads outside of IAM with IAM Roles Anywhere
(Erweitern von IAM-Rollen auf Workloads außerhalb von IAM mit IAM Roles Anywhere)
Zugehörige Videos:
-
How do I allow users or roles in a separate AWS-Konto access to my AWS-Konto?
(Wie gewähre ich Benutzern oder Rollen in einem separaten AWS-Konto Zugriff auf mein AWS-Konto?) -
AWS re:Invent 2018: Become an IAM Policy Master in 60 Minutes or Less
(AWS re:Invent 2018: Werden Sie in höchstens 60 Minuten zum IAM-Richtlinienexperten) -
AWS Knowledge Center Live: IAM Best Practices and Design Decisions
(AWS Knowledge Center Live: Bewährte IAM-Methoden und -Entwurfsentscheidungen)
Zugehörige Beispiele:
-
Well-Architected Lab - Lambda cross account IAM role assumption (Level 300)
(Well-Architected Lab – Lambda-kontoübergreifende IAM-Rollenannahme) -
Configure cross-account access to Amazon DynamoDB (Konfigurieren des kontoübergreifenden Zugriffs auf Amazon DynamoDB)