View a markdown version of this page

Cross-service verwirrt, stellvertretender Vertreter der Prävention - Amazon Textract

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 verwirrt, stellvertretender Vertreter der Prävention

In kann ein dienstübergreifender Identitätswechsel auftreten AWS, wenn ein Dienst (der aufrufende Dienst) einen anderen Dienst (den aufgerufenen Dienst) anruft. Der aufrufende Service kann so manipuliert werden, dass er auf die Ressourcen eines anderen Kunden reagiert, obwohl er nicht über die entsprechenden Berechtigungen verfügen sollte, was zu einem Verwirrter-Stellvertreter-Problem führt.

Um dies zu verhindern, AWS bietet Tools, mit denen Sie Ihre Daten für alle Dienste schützen können, deren Dienstprinzipale Zugriff auf Ressourcen in Ihrem Konto erhalten haben.

Wir empfehlen, die Schlüssel aws:SourceArn und den aws:SourceAccount globalen Bedingungskontext in den Ressourcenrichtlinien zu verwenden, um die Berechtigungen einzuschränken, die Amazon Textract einem anderen Service für die Ressource erteilt.

Wenn der Wert von aws:SourceArn die Konto-ID nicht enthält, z. B. einen Amazon-S3-Bucket-ARN, müssen Sie beide Schlüssel verwenden, um Berechtigungen einzuschränken. Wenn Sie beide Schlü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.

Der Wert von aws:SourceArn muss dem ARN der von Textract verwendeten Ressource entsprechen, der im folgenden Format angegeben wird:. arn:aws:rekognition:region:account:resource

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen aws:SourceArn-Bedingungskontextschlüssels 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 aws:SourceArn-Schlüssel mit Platzhalterzeichen (*) für die unbekannten Teile des ARN. Beispiel, arn:aws:textract:*:111122223333:*.

Um sich vor dem Problem des verwechselten Stellvertreters zu schützen, führen Sie die folgenden Schritte durch:

  1. Wählen Sie im Navigationsbereich der IAM-Konsole die Option Rollen aus. In der Konsole werden die Rollen für Ihr aktuelles Konto angezeigt.

  2. Wählen Sie den Namen der Rolle, die Sie ändern möchten. Für die Rolle, die Sie ändern, sollte die AmazonTextractServiceRole Berechtigungsrichtlinie gelten. Wählen Sie die Registerkarte Vertrauensbeziehungen.

  3. Wählen Sie Vertrauensrichtlinie bearbeiten aus.

  4. Ersetzen Sie auf der Seite Vertrauensrichtlinie bearbeiten die Standard-JSON-Richtlinie durch eine Richtlinie, die einen oder beide der globalen aws:SourceArn- und aws:SourceAccount- Bedingungskontextschlüssel verwendet. Sehen Sie sich die folgenden Beispielrichtlinien an.

  5. Wählen Sie Richtlinie aktualisieren.

Bei den folgenden Beispielen handelt es sich um Vertrauensrichtlinien, die zeigen, wie Sie die Schlüssel aws:SourceArn und die aws:SourceAccount globalen Bedingungskontextschlüssel in Amazon Textract verwenden können, um das verwirrte Stellvertreter-Problem zu vermeiden.

Sie können sowohl in der SourceArn Bedingung als auch mehrere Konten angeben. SourceAccount Stellen Sie sicher, dass Sie in beiden Bedingungen die ID eines vertrauenswürdigen Kontos angeben.

Wenn Sie mit den asynchronen Vorgängen von Amazon Textract arbeiten, könnten Sie in Ihrer IAM-Rolle eine Richtlinie wie die folgende verwenden. Ersetzen Sie im folgenden Beispiel den roten, ersetzbaren Text durch die IDs der Konten, die die API-Operationen aufrufen (Ihre Konto-ID und die IDs aller anderen vertrauenswürdigen Konten):

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "textract.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn":["arn:aws:textract:*:123456789012:*","arn:aws:textract:*:111122223333:*"] }, "StringEquals": { "aws:SourceAccount": ["123456789012", "111122223333"] } } } }