Serviceübergreifende Confused-Deputy-Prävention - Amazon Quantum Ledger-Datenbank (AmazonQLDB)

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

Wichtig

Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB Ledgers zu Amazon Aurora SQL Postgre.

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, dienstübergreifender Identitätswechsel kann zu einem Problem mit dem verwirrten Stellvertreter führen.

Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der Anruf-Dienst) einen anderen Dienst anruft (den aufgerufenen Dienst). Der Anruf-Dienst kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Um das Problem des verwirrten Stellvertreters zu vermeiden, AWS stellt Tools bereit, mit denen Sie Ihre Daten für alle Dienste schützen können, wobei Dienstprinzipale 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 Amazon einem anderen Service für die Ressource QLDB erteilt. Wenn Sie beide Kontextschlüssel für globale Bedingungen verwenden, müssen der aws:SourceAccount Wert und das Konto im aws:SourceArn Wert dieselbe Konto-ID verwenden, wenn sie in derselben Richtlinienerklärung verwendet werden.

In der folgenden Tabelle sind mögliche Werte aws:SourceArn für die StreamsJournalToKinesisQLDBAPIOperationen ExportJournalToS3und aufgeführt. Diese Operationen fallen unter dieses Sicherheitsproblem, da sie AWS Security Token Service (AWS STS), um eine von Ihnen angegebene IAM Rolle anzunehmen.

APIBetrieb Aufgerufener Service war: SourceArn
ExportJournalToS3 AWS STS (AssumeRole)

Ermöglicht QLDB die Übernahme der Rolle für alle QLDB Ressourcen im Konto:

arn:aws:qldb:us-east-1:123456789012:*

Derzeit wird dieser Platzhalter QLDB nur ARN für Journalexporte unterstützt.

StreamsJournalToKinesis AWS STS (AssumeRole)

Ermöglicht QLDB die Übernahme der Rolle für einen bestimmten QLDB Stream:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/IiPT4brpZCqCq3f4MTHbYy

Hinweis: Sie können eine Stream-ID nur angeben, ARN nachdem die Stream-Ressource erstellt wurde. Auf diese Weise können Sie zulassenARN, dass die Rolle nur für einen einzelnen QLDB Stream verwendet wird.

Ermöglicht QLDB die Übernahme der Rolle für beliebige QLDB Streams eines Ledgers:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*

Ermöglicht QLDB die Übernahme der Rolle für alle QLDB Streams im Konto:

arn:aws:qldb:us-east-1:123456789012:stream/*

Ermöglicht QLDB die Übernahme der Rolle für alle QLDB Ressourcen im Konto:

arn:aws:qldb:us-east-1:123456789012:*

Der effektivste Schutz vor dem Problem mit dem verwirrten Stellvertreter besteht darin, den Kontextschlüssel für aws:SourceArn globale Bedingungen mit ARN der gesamten Ressource zu verwenden. Wenn Sie die gesamte ARN Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den aws:SourceArn globalen Kontextbedingungsschlüssel mit Platzhalterzeichen (*) für die unbekannten Teile von ARN — zum Beispiel. arn:aws:qldb:us-east-1:123456789012:*

Das folgende Beispiel für eine Vertrauensrichtlinie für eine IAM Rolle zeigt, wie Sie die Kontextschlüssel aws:SourceArn und die aws:SourceAccount globalen Bedingungsschlüssel verwenden können, um das Problem des verwirrten Stellvertreters zu verhindern. Mit dieser Vertrauensrichtlinie QLDB kann die Rolle für jeden QLDB Stream im Konto myExampleLedger nur 123456789012 für das Hauptbuch übernommen werden.

Um diese Richtlinie zu verwenden, ersetzen Sie us-east-1, 123456789012, und myExampleLedger im Beispiel mit Ihren eigenen Informationen.

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }