View a markdown version of this page

Zusätzliche Validierungsmodi - Amazon CloudFront

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.

Zusätzliche Validierungsmodi

Der Modus „Erforderlich“ ist die Standardeinstellung für CloudFront gegenseitiges TLS. Er CloudFront validiert jedes Client-Zertifikat und verweigert fehlgeschlagene Verbindungen. Zur Unterstützung zusätzlicher Anwendungsfälle — z. B. Anwendungen, die eine Mischung aus M TLS-authenticated und nicht authentifizierten Clients bedienen, oder Umgebungen, in denen der Ursprungsserver seine eigene mTLS-Validierung durchführt — CloudFront werden jedoch zwei zusätzliche Modi unterstützt.

Der optionale Modus ist für Anwendungen mit gemischten Kundengruppen konzipiert. Zum Beispiel ein Portal, das öffentliche Inhalte für nicht authentifizierte Browser bereitstellt und gleichzeitig API-Endpunkte auf Kunden beschränkt, die gültige Zertifikate vorlegen. Oder ein Migrationsszenario, in dem Sie Kunden schrittweise in mTLS einbinden und während der Umstellung sowohl authentifizierte als auch nicht authentifizierte Verbindungen zulassen müssen.

Der Passthrough-Modus ist für Kunden konzipiert, deren Ursprungsserver bereits eine mTLS-Validierung durchführen. Zum Beispiel Dienste, die von lokalen Reverse-Proxys, anderen CDNs oder Application Load Balancern migriert werden, die bereits die Zertifikatsverifizierung durchführen. Im Passthrough-Modus können diese Kunden ihre Anwendungen direkt vor ihren Anwendungen platzieren, ohne die CloudFront Validierungslogik am Edge erneut implementieren zu müssen.

Optionaler Modus

Validierung des Client-Zertifikats Optionaler Modus

CloudFront bietet einen alternativen optionalen Validierungsmodus für Clientzertifikate, der vorgelegte Client-Zertifikate validiert, aber den Zugriff auf Clients ermöglicht, die keine Zertifikate vorlegen.

Verhalten im optionalen Modus

  • Gewährt Clients mit gültigen Zertifikaten eine Verbindung (ungültige Zertifikate werden verweigert).

  • Ermöglicht die Verbindung zu Clients ohne Zertifikate.

  • Ermöglicht gemischte Client-Authentifizierungsszenarien über eine einzige Distribution.

Der optionale Modus ist ideal für die schrittweise Migration zur mTLS-Authentifizierung. Er unterstützt Clients mit Zertifikaten und Clients ohne Zertifikate oder gewährleistet die Abwärtskompatibilität mit älteren Clients.

Anmerkung

Im optionalen Modus werden die Verbindungsfunktionen auch dann aufgerufen, wenn die Clients keine Zertifikate vorlegen. Auf diese Weise können Sie benutzerdefinierte Logik implementieren, z. B. das Protokollieren von Client-IP-Adressen oder das Anwenden verschiedener Richtlinien, je nachdem, ob Zertifikate vorgelegt werden.

So konfigurieren Sie den optionalen Modus (Konsole)

  1. Navigieren Sie in Ihren Distributionseinstellungen zur Registerkarte Allgemein und wählen Sie Bearbeiten aus.

  2. Scrollen Sie im Connectivity-Container zum Abschnitt Viewer Mutual Authentication (mTLS).

  3. Wählen Sie für den Validierungsmodus für das Client-Zertifikat die Option Optional aus.

  4. Speichern Sie die Änderungen.

Um den optionalen Modus zu konfigurieren (AWS CLI)

Das folgende Beispiel zeigt, wie der optionale Modus konfiguriert wird:

"ViewerMtlsConfig": { "Mode": "optional", ...other settings }

Passen Sie die Zertifikats-Header an

Verwenden Sie die mTLS-Hilfsfunktionen in CloudFront Viewer-Request-Funktionen, um die Zertifikatsheader umzubenennen, neu zu formatieren oder zu kombinieren, bevor sie Ihren Ursprung erreichen. Dies ist nützlich, wenn Sie von anderen Diensten migrieren, die andere Header-Namen oder Verschlüsselungsformate für Zertifikate verwenden.

Passthrough-Modus

Den Passthrough-Modus können Sie CloudFront mit Ihren vorhandenen mTLS-Implementierungen an Ihrem Ursprung verwenden. CloudFront beendet die TLS-Verbindung und leitet das Client-Zertifikat als HTTP-Header an Ihren Ursprung weiter. Ihr Ursprung führt die gesamte Zertifikatsvalidierung durch — einschließlich Kettenüberprüfung, Sperrüberprüfung und Durchsetzung benutzerdefinierter Richtlinien.

So funktioniert der Passthrough-Modus

  1. Der Client stellt während des TLS-Handshakes eine Verbindung zum Client her CloudFront und präsentiert ein Client-Zertifikat.

  2. CloudFront schließt den TLS-Handshake ab, ohne das Zertifikat anhand eines Trust Stores zu validieren.

  3. CloudFront fügt das Client-Zertifikat und die Zertifikatskette der Anfrage als HTTP-Header hinzu.

  4. Die Anfrage wird an Ihren Ursprung weitergeleitet. Es wird kein Inhalt zwischengespeichert.

  5. Ihr Ursprung validiert das Zertifikat und verarbeitet die Anfrage.

Kunden können sich auch ohne Vorlage eines Zertifikats verbinden. Ihre Ursprungs- oder Verbindungsfunktion verarbeitet Szenarien mit leeren Zertifikaten.

Anmerkung

Im Passthrough-Modus werden die Verbindungsfunktionen auch dann aufgerufen, wenn die Clients keine Zertifikate vorlegen. Auf diese Weise können Sie benutzerdefinierte Logik implementieren, z. B. das Protokollieren von Client-IP-Adressen oder das Anwenden verschiedener Richtlinien, je nachdem, ob Zertifikate vorgelegt werden.

Konfigurationsanforderungen

  • Kein Vertrauensspeicher — Die Verteilung darf keine Trust-Store-Verknüpfungen aufweisen.

  • Caching deaktiviert — Für alle Cache-Verhaltensweisen muss die Richtlinie für verwaltete CachingDisabled Caches verwendet werden.

  • Origin Shield verboten — Origin Shield kann nicht aktiviert werden.

  • Lambda @Edge verboten — Lambda @Edge -Funktionszuordnungen sind nicht zulässig.

  • Quellanforderungsrichtlinie erforderlich — Sie müssen die Client-Cert-Chain Header Client-Cert und in Ihrer Quell-Anforderungsrichtlinie zulassen, damit der Ursprung sie empfängt.

  • Certificate-chain-depth— CloudFront ermöglicht eine maximale Tiefe von 4 für die Weiterleitung der Client-Zertifikatskette an die Ursprünge.

Aktivieren Sie den Passthrough-Modus

Konsole

  1. Aktualisieren Sie alle Cache-Verhaltensweisen, um die Richtlinie für verwalteten CachingDisabled Cache zu verwenden.

  2. Öffnen Sie die CloudFront Konsole und wählen Sie Ihre Distribution aus.

  3. Wählen Sie den Tab Allgemein und dann unter Einstellungen die Option Bearbeiten aus.

  4. Wählen Sie unter Gegenseitige Viewer-Authentifizierung (mTLS) die Option Passthrough aus.

  5. Wählen Sie Änderungen speichern aus.

AWS CLI

Stellen Sie sicher, dass alle Cache-Verhaltensweisen auf die verwaltete CachingDisabled Richtlinie verweisen, und aktualisieren Sie dann die Verteilungskonfiguration:

{ "ViewerMtlsConfig": { "Mode": "passthrough" } }

Header wurden an den Ursprung weitergeleitet

CloudFront fügt der an Ihren Ursprung gesendeten Anfrage die folgenden Header hinzu:

  • Client-Cert— Das vom Client vorgelegte Endentitätszertifikat (Leaf), Base64-kodiert.

  • Client-Cert-Chain— Die Zertifikatskette (ohne das Blatt) als strukturierte Feldliste. Jedes Zertifikat ist Base64-kodiert. Client-Cert-Chainist ein Header vom Typ List. Es kann mehrmals in einer Anfrage vorkommen. Durch die Verkettung aller Werte wird die ursprüngliche Kettenreihenfolge beibehalten. Client-Cert-Chainwird weggelassen, wenn der Client nur ein einziges Zertifikat vorlegt.

CloudFront löscht alle eingehenden Client-Cert oder Client-Cert-Chain Header aus der Client-Anfrage, bevor die eigentlichen Zertifikatsdaten hinzugefügt werden. Dies verhindert Header-Spoofing.

Passen Sie die Zertifikat-Header an

Verwenden Sie die mTLS-Hilfsfunktionen in CloudFront Viewer-Request-Funktionen, um die Zertifikatsheader umzubenennen, neu zu formatieren oder zu kombinieren, bevor sie Ihren Ursprung erreichen. Dies ist nützlich, wenn Sie von anderen Diensten migrieren, die andere Header-Namen oder Verschlüsselungsformate für Zertifikate verwenden.