Dienstübergreifende Verhinderung verwirrter Abgeordneter in AWS OpsWorks Stacks - AWS OpsWorks

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.

Dienstübergreifende Verhinderung verwirrter Abgeordneter in AWS OpsWorks Stacks

Wichtig

Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Nutzungsdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf AWS re:POST oder über den AWS Premium-Support.

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 ein dienstübergreifendes Identitätswechsels 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 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 den Richtlinien für den Zugriff auf Stacks zu verwenden, um die Berechtigungen zu beschränken, die Stacks einem anderen Dienst für AWS OpsWorks Stacks erteilt. Wenn der aws:SourceArn-Wert die Konto-ID nicht enthält, z. B. einen Amazon-S3-Bucket-ARN, müssen Sie beide globale Bedingungskontextschlü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 diese aws:SourceArn Option, wenn Sie möchten, dass nur ein Stack mit dem dienstübergreifenden Zugriff verknüpft wird. Verwenden Sie diese Option, aws:SourceAccount wenn Sie zulassen möchten, dass ein beliebiger Stapel in diesem Konto mit der dienstübergreifenden Nutzung verknüpft wird.

Der Wert von aws:SourceArn muss der ARN eines AWS OpsWorks Stacks sein.

Der effektivste Weg, sich vor dem Problem des verwirrten Stellvertreters zu schützen, besteht darin, den Kontextschlüssel für aws:SourceArn globale Bedingungen mit dem vollständigen ARN des AWS OpsWorks Stacks-Stacks zu verwenden. Wenn Sie den vollständigen ARN nicht kennen oder wenn Sie mehrere Stack-ARNs angeben, verwenden Sie den aws:SourceArn globalen Kontextbedingungsschlüssel mit Platzhaltern (*) für die unbekannten Teile des ARN. z. B. arn:aws:servicename:*:123456789012:*.

Der folgende Abschnitt zeigt, wie Sie die Kontextschlüssel aws:SourceArn und die aws:SourceAccount globalen Bedingungsschlüssel in AWS OpsWorks Stacks verwenden können, um das Problem mit dem verwirrten Deputy zu vermeiden.

Beugen Sie Exploits mit verwirrten Stellvertretern in Stacks vor AWS OpsWorks

In diesem Abschnitt wird beschrieben, wie Sie dazu beitragen können, Exploits mit verwirrten Stellvertretern in AWS OpsWorks Stacks zu verhindern. Außerdem finden Sie Beispiele für Berechtigungsrichtlinien, die Sie an die IAM-Rolle anhängen können, die Sie für den Zugriff auf Stacks verwenden. AWS OpsWorks Aus Sicherheitsgründen empfehlen wir, die Schlüssel aws:SourceArn und die aws:SourceAccount Bedingungsschlüssel zu den Vertrauensbeziehungen hinzuzufügen, die Ihre IAM-Rolle mit anderen Diensten unterhält. Die Vertrauensbeziehungen ermöglichen es AWS OpsWorks Stacks, eine Rolle bei der Ausführung von Aktionen in anderen Diensten zu übernehmen, die für die Erstellung oder Verwaltung Ihrer AWS OpsWorks Stacks-Stacks erforderlich sind.

Um Vertrauensstellungen zu bearbeiten, Schlüssel hinzuzufügen und zu konditionieren aws:SourceArnaws:SourceAccount
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Suchen Sie im Suchfeld nach der Rolle, die Sie für den Zugriff auf AWS OpsWorks Stacks verwenden. Die AWS verwaltete Rolle istaws-opsworks-service-role.

  4. Wählen Sie auf der Übersichtsseite für die Rolle die Registerkarte Vertrauensbeziehungen aus.

  5. Wählen Sie auf der Registerkarte Vertrauensbeziehungen die Option Vertrauensrichtlinie bearbeiten aus.

  6. Fügen Sie auf der Seite Vertrauensrichtlinie bearbeiten der Richtlinie mindestens einen der aws:SourceAccount Bedingungsschlüssel aws:SourceArn oder einen der Bedingungsschlüssel hinzu. Wird verwendetaws:SourceArn, um die Vertrauensbeziehung zwischen Cross-Services (wie Amazon EC2) und AWS OpsWorks Stacks auf bestimmte AWS OpsWorks Stacks-Stacks zu beschränken, was restriktiver ist. Fügen Sie hinzuaws:SourceAccount, um die Vertrauensbeziehung zwischen Cross-Services und AWS OpsWorks Stacks auf Stacks in einem bestimmten Konto zu beschränken, was weniger restriktiv ist. Im Folgenden wird ein Beispiel gezeigt. Beachten Sie, dass die Konto-IDs identisch sein müssen, wenn Sie beide Bedingungsschlüssel verwenden.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "arn:aws:opsworks:us-east-2:123456789012:stack/EXAMPLEd-5699-40a3-80c3-22c32EXAMPLE/" } } } ] }
  7. Wenn Sie mit dem Hinzufügen von Bedingungsschlüsseln fertig sind, wählen Sie Richtlinie aktualisieren.

Im Folgenden finden Sie weitere Beispiele für Rollen, die den Zugriff auf Stacks mithilfe von aws:SourceArn und aws:SourceAccount einschränken.

Beispiel: Zugriff auf Stacks in einer bestimmten Region

Die folgende Erklärung zur Rollenvertrauensstellung greift auf alle AWS OpsWorks Stacks-Stacks in der Region USA Ost (Ohio) zu (). us-east-2 Beachten Sie, dass die Region im ARN-Wert von angegeben istaws:SourceArn, der Stack-ID-Wert jedoch ein Platzhalter (*) ist.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:opsworks:us-east-2:123456789012:stack/*" } } } ] }

Beispiel: Hinzufügen von mehr als einem Stack-ARN zu aws:SourceArn

Das folgende Beispiel beschränkt den Zugriff auf ein Array von zwei AWS OpsWorks Stacks-Stacks in der Konto-ID 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:opsworks:us-east-2:123456789012:stack/unique_ID1", "arn:aws:opsworks:us-east-2:123456789012:stack/unique_ID2" ] } } } ] }