View a markdown version of this page

Cross-service verwirrte stellvertretende Prävention - AWS Amplify Hosting

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.

Cross-service verwirrte stellvertretende Prävention

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. In AWS kann dienstübergreifender Identitätswechsel zu einem verwirrten Stellvertreterproblem führen. Cross-service Ein Identitätswechsel kann auftreten, wenn ein Dienst (der aufrufende Dienst) einen anderen Dienst (den aufgerufenen Dienst) anruft. 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, in Ressourcenrichtlinien die Schlüssel aws:SourceArn und den aws:SourceAccount globalen Bedingungskontext zu verwenden, um die Berechtigungen einzuschränken, die einem AWS Amplify anderen Dienst für die Ressource gewähren. Wenn Sie beide globalen Bedingungskontextschlüssel verwenden, müssen der aws:SourceAccount-Wert und das Konto im aws:SourceArn-Wert dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienanweisung verwendet werden.

Der Wert von aws:SourceArn muss dem Branch-ARN der Amplify-App entsprechen. Geben Sie diesen Wert im Format arn:Partition:amplify:Region:Account:apps/AppId/branches/BranchName an.

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 Bedingungskontext-Schlüssel aws:SourceArn mit Platzhaltern (*) für die unbekannten Teile des ARN. Beispiel, arn:aws:servicename::123456789012:*.

Das folgende Beispiel zeigt eine Vertrauensrichtlinie für Rollen, die Sie anwenden können, um den Zugriff auf alle Amplify-Apps in Ihrem Konto einzuschränken und das verwirrte Stellvertreter-Problem zu verhindern. Um diese Richtlinie zu verwenden, ersetzen Sie den roten, kursiv gedruckten Text in der Beispielrichtlinie durch Ihre eigenen Informationen.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": [ "amplify.me-south-1.amazonaws.com", "amplify.eu-south-1.amazonaws.com", "amplify.ap-east-1.amazonaws.com", "amplifybackend.amazonaws.com", "amplify.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:amplify:us-east-1:123456789012:apps/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }

Das folgende Beispiel zeigt eine Vertrauensrichtlinie für Rollen, die Sie anwenden können, um den Zugriff auf eine bestimmte Amplify-App in Ihrem Konto einzuschränken und das verwirrte Stellvertreter-Problem zu vermeiden. Um diese Richtlinie zu verwenden, ersetzen Sie den roten, kursiv gedruckten Text in der Beispielrichtlinie durch Ihre eigenen Informationen.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": [ "amplify.me-south-1.amazonaws.com", "amplify.eu-south-1.amazonaws.com", "amplify.ap-east-1.amazonaws.com", "amplifybackend.amazonaws.com", "amplify.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:amplify:us-east-1:123456789012:apps/d123456789/branches/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }