Dienstübergreifende verwirrter Stellvertreter-Prävention inAWS OpsWorks CM - 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 verwirrter Stellvertreter-Prävention inAWS OpsWorks CM

Das Confused-Deputy-Problem ist ein Sicherheitsproblem, bei dem eine Entität, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine Entität mit größeren Rechten zwingen kann, die Aktion auszuführen. In AWS kann der dienstübergreifende Identitätswechsel zu Confused-Deputy-Problem 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 Verwendung der globalen Bedingungskontext-Schlüssel aws:SourceArn und aws:SourceAccount in ressourcenbasierten Richtlinien, um die Berechtigungen, die AWS OpsWorks CM einem anderen Service erteilt, auf eine bestimmte Ressource zu beschränken. 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 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 vonaws:SourceArnmuss der ARN einesOpsWorksCM Chef- oder Puppet-Server.

Der effektivste Weg, um sich vor dem Confuse-Deputy-Problem zu schützen, ist die Verwendung desaws:SourceArnglobaler Condition-Kontextschlüssel mit dem vollständigen ARN derAWS OpsWorks CMserver. Wenn Sie den vollständigen ARN nicht kennen oder wenn Sie mehrere Server-ARNs angeben, verwenden Sie dieaws:SourceArnglobaler Kontextbedingungsschlüssel mit Platzhaltern (*) für die unbekannten Teile des ARN. Zum Beispiel arn:aws:servicename:*:123456789012:*.

Der folgende Abschnitt zeigt, wie Sie dieaws:SourceArnundaws:SourceAccountGlobale Bedingungskontextschlüssel inAWS OpsWorks CMum das verwirrte Stellvertreter-Problem zu verhindern.

Verhindern Sie verwirrte stellvertretende HeldentatenAWS OpsWorks CM

In diesem Abschnitt wird beschrieben, wie Sie dazu beitragen können, verwirrte Stellvertreter-Exploits inAWS OpsWorks CMund enthält Beispiele für Berechtigungsrichtlinien, die Sie an die IAM-Rolle anhängen können, auf die Sie zugreifenAWS OpsWorks CMaus. Als bewährte Sicherheitsmethode empfehlen wir, dieaws:SourceArnundaws:SourceAccountBedingungsschlüssel für die Vertrauensbeziehungen, die Ihre IAM-Rolle mit anderen Diensten hat. Die Vertrauensbeziehungen erlaubenAWS OpsWorks CMum eine Rolle zu übernehmen, um Aktionen in anderen Diensten auszuführen, die zum Erstellen oder Verwalten IhrerAWS OpsWorks CM-Server.

So bearbeiten Sie Vertrauensbeziehungenaws:SourceArnundaws:SourceAccount-Bedingungsschlüssel
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

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

  3. In derSuchesuchen Sie nach der Rolle, die Sie für den Zugriff verwendenAWS OpsWorks CMaus. DieAWSverwaltete Rolle istaws-opsworks-cm-service-roleaus.

  4. Auf derÜbersicht-Seite für die Rolle, wählen Sie dieVertrauensstellungen-Registerkarte.

  5. Wählen Sie auf der Registerkarte Trust relationships (Vertrauensstellungen) die Option Edit trust relationship (Vertrauensstellung bearbeiten).

  6. In derRichtliniendokument, füge mindestens eine deraws:SourceArnoderaws:SourceAccountBedingungsschlüssel für die Richtlinie. Verwenden vonaws:SourceArnum die Vertrauensbeziehung zwischen Cross-Services einzuschränken (wieAWS Certificate Managerund Amazon EC2) undAWS OpsWorks CMauf bestimmteAWS OpsWorks CM-Server, was restriktiver ist. Addaws:SourceAccountum das Vertrauensverhältnis zwischen Cross-Services einzuschränken undAWS OpsWorks CMauf Server in einem bestimmten Konto, 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-cm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:opsworks-cm:us-east-2:123456789012:server/my-opsworks-server/EXAMPLEabcd-1234-efghEXAMPLE-ID" } } } ] }
  7. Wenn Sie alle Bedingungsschlüssel hinzugefügt haben, wählen SieAktualisieren der Vertrauensrichtlinieaus.

Im Folgenden finden Sie weitere Beispiele für Rollen, die den Zugriff aufAWS OpsWorks CM-Server unter Verwendung vonaws:SourceArnundaws:SourceAccountaus.

Beispiel: ZugriffAWS OpsWorks CM-Server in einer bestimmten Region

Die folgende Anweisung zur Rollenvertrauensbeziehung greift auf eineAWS OpsWorks CM-Server in der Region USA Ost (Ohio) (us-east-2) enthalten. Beachten Sie, dass die Region im ARN-Wert vonaws:SourceArn, aber der Wert der Server-ID ist ein Platzhalter (*).

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

Beispiel: Hinzufügen von mehr als einem Server-ARN zuaws:SourceArn

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

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