Serviceübergreifende Confused-Deputy-Prävention - AWS Database Migration Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Serviceübergreifende Confused-Deputy-Prävention

Das Confused-Deputy-Problem ist ein Sicherheitsproblem, bei dem eine juristische Stelle, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine privilegiertere juristische Stelle zwingen kann, die Aktion auszuführen. In AWS, dienstübergreifender Identitätswechsel kann zum Problem des verwirrten Stellvertreters führen. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der Anruf-Dienst) einen anderen Dienst anruft (den aufgerufenen Dienst). Der aufrufende Service kann manipuliert werden, um seine Berechtigungen zu verwenden, um Aktionen auf die Ressourcen eines anderen Kunden auszuführen, für die er sonst keine Zugriffsberechtigung haben sollte. Um dies zu verhindern, bietet AWS Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben.

Wir empfehlen, die Kontextschlüssel aws:SourceArnund die aws:SourceAccountglobalen Bedingungsschlüssel in Ressourcenrichtlinien zu verwenden, um die Berechtigungen einzuschränken, die der AWS Database Migration Service Ressource einen anderen Dienst gewähren. Wenn der aws:SourceArn-Wert nicht die Konto-ID enthält, z. B. einen AWS DMS -Replikations-Instance-Namen (ARN), müssen Sie beide globalen Bedingungskontext-Schlüssel verwenden, um Berechtigungen einzuschränken. Wenn Sie beide globale Bedingungskontextschlüssel verwenden und der aws:SourceArn-Wert die Konto-ID enthält, müssen der aws:SourceAccount-Wert und das Konto im aws:SourceArn-Wert dieselbe Konto-ID verwenden, wenn sie in der gleichen Richtlinienanweisung verwendet wird. Verwenden Sie aws:SourceArn, wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten. Verwenden Sie aws:SourceAccount, wenn Sie zulassen möchten, dass Ressourcen in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft werden.

AWS DMS unterstützt Confused Deputy Options ab Version 3.4.7 und höher. Weitere Informationen finden Sie unter AWS Versionshinweise zu Database Migration Service 3.4.7. Wenn Ihre Replikations-Instance AWS DMS Version 3.4.6 oder niedriger verwendet, stellen Sie sicher, dass Sie auf die neueste Version aktualisieren, bevor Sie die Confused-Deputy-Optionen festlegen.

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontext-Schlüssels aws:SourceArn mit dem vollständigen ARN der Ressource. Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Kontextbedingungsschlüssel aws:SourceArn mit Platzhalterzeichen (*) für die unbekannten Teile des ARN. z. B. arn:aws:dms:*:123456789012:rep:*.

IAM-Rollen, die zusammen mit der AWS DMS API verwendet werden können, um dienstübergreifend Verwirrung bei Stellvertretern zu vermeiden

Um die AWS CLI oder die AWS DMS API für Ihre Datenbankmigration zu verwenden, müssen Sie Ihrem AWS Konto die Rollen dms-vpc-role und die dms-cloudwatch-logs-role IAM-Rollen hinzufügen, bevor Sie die Funktionen von verwenden können. AWS DMS Weitere Informationen finden Sie unter Erstellen der IAM-Rollen zur Verwendung mit der AWS CLI und API AWS DMS.

Das folgende Beispiel zeigt Richtlinien für die Verwendung der dms-vpc-role-Rolle mit der my-replication-instance-Replikations-Instance. Verwenden Sie diese Richtlinien, um das Confused-Deputy-Problem zu verhindern.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account_id" }, "ArnEqual": { "AWS:SourceArn": "arn:aws:dms:your_region:your_account_id:rep:my-replication-instance" } } } ] }

IAM-Richtlinie zur Speicherung von Preflight-Bewertungen in Amazon S3 zur serviceübergreifenden Vermeidung des Confused-Deputy-Problems

Um die Ergebnisse der Vorabbeurteilung in Ihrem S3-Bucket zu speichern, erstellen Sie eine IAM-Richtlinie, die AWS DMS die Verwaltung von Objekten in Amazon S3 ermöglicht. Weitere Informationen finden Sie unter Erstellen von IAM-Ressourcen .

Das folgende Beispiel zeigt eine Vertrauensrichtlinie mit verwirrten stellvertretenden Bedingungen, die für eine IAM-Rolle festgelegt sind und AWS DMS den Zugriff auf alle Aufgaben und Bewertungsläufe unter einem bestimmten Benutzerkonto ermöglichen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account_id" }, "ArnLike": { "AWS:SourceArn": [ "arn:aws:dms:your_region:your_account_id:assessment-run:*", "arn:aws:dms:region:your_account_id:task:*" ] } } } ] }

Verwendung von Amazon DynamoDB als Zielendpunkt AWS DMS zur dienstübergreifenden Prävention verwirrter Stellvertreter

Um Amazon DynamoDB als Zielendpunkt für Ihre Datenbankmigration zu verwenden, müssen Sie die IAM-Rolle erstellen, die es ermöglicht, Zugriff auf die DynamoDB-Tabellen AWS DMS zu übernehmen und zu gewähren. Verwenden Sie dann diese Rolle, wenn Sie Ihren DynamoDB-Zielendpunkt in AWS DMS erstellen. Weitere Informationen finden Sie unter Verwenden von Amazon DynamoDB als Ziel.

Das folgende Beispiel zeigt eine Vertrauensrichtlinie mit verwirrten stellvertretenden Bedingungen, die für eine IAM-Rolle festgelegt sind, die allen AWS DMS Endpunkten den Zugriff auf DynamoDB-Tabellen ermöglicht.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount": "your_account_id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:dms:your_region:your_account_id:endpoint:*" } } } ] }