Host-Präfix-Injektion - AWS SDKs und Tools

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.

Host-Präfix-Injektion

Anmerkung

Hilfe zum Verständnis des Layouts von Einstellungsseiten oder zur Interpretation der nachfolgenden Tabelle Support by AWS SDKs und Tools finden Sie unterDie Einstellungsseiten dieses Handbuchs verstehen.

Bei der Host-Präfix-Injection handelt es sich um eine Funktion, bei der dem Hostnamen von Dienstendpunkten für bestimmte API-Operationen AWS SDKs automatisch ein Präfix vorangestellt wird. Dieses Präfix kann entweder eine statische Zeichenfolge oder ein dynamischer Wert sein, der Daten aus Ihren Anforderungsparametern enthält.

Wenn Sie beispielsweise Amazon Simple Storage Service verwenden, um Aktionen an Amazon S3 S3-Objekten oder -Buckets durchzuführen, ersetzt das SDK Ihren Bucket-Namen und Ihre AWS-Konto Bucket-ID im endgültigen API-Endpunkt.

Dieses Verhalten ist zwar für normale AWS Dienstendpunkte erforderlich, kann jedoch zu Problemen führen, wenn benutzerdefinierte Endpunkte wie VPC-Endpunkte oder lokale Testtools verwendet werden. In diesen Fällen müssen Sie möglicherweise die Hostpräfixinjektion deaktivieren.

Konfigurieren Sie diese Funktionalität wie folgt:

disable_host_prefix_injection- Einstellung für gemeinsam genutzte AWS config Dateien
AWS_DISABLE_HOST_PREFIX_INJECTION- Umgebungsvariable
aws.disableHostPrefixInjection- JVM-Systemeigenschaft: nur Java/Kotlin

Diese Einstellung steuert, ob das SDK oder das Tool den Hostnamen des Endpunkts ändert, indem ein Hostpräfix vorangestellt wird, wie es im Client-Objekt oder in der Variablen Ihres SDK definiert ist.

Standardwert: false

Zulässige Werte:

  • true— Deaktiviert die Host-Präfix-Injection. Das SDK ändert den Hostnamen des Endpunkts nicht.

  • false— Aktiviert die Host-Präfix-Injection. Das SDK stellt das Hostpräfix dem Hostnamen des Endpunkts voran.

Beispiel für die Einstellung dieses Werts in der config Datei:

[default] disable_host_prefix_injection = true

Linux/macOS-Beispiel für das Setzen von Umgebungsvariablen über die Befehlszeile:

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

Windows-Beispiel für das Setzen von Umgebungsvariablen über die Befehlszeile:

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

Beispiele für die Injektion von Hostpräfixen

Die folgende Tabelle mit Beispielen zeigt, wie der endgültige Endpunkt SDKs geändert wird, wenn die Hostpräfixinjektion aktiviert und deaktiviert ist.

  • Hostpräfix: Die Vorlage der Eigenschaftszeichenfolge für das Hostpräfix, die für das Client-Objekt oder die Variable des SDK im Code festgelegt ist.

  • Eingaben: Zusätzliche Eingaben, die für das Client-Objekt oder die Variable des SDK im Code festgelegt wurden.

  • Client-Endpunkt: Der abgeleitete Endpunkt des Clients.

  • Einstellungswert: Gelöster Wert für die vorherige Einstellung.

  • Resultierender Endpunkt: Der resultierende Endpunkt, den der SDK-Client für den API-Aufruf verwendet.

Host-Präfix Eingaben Client-Endpunkt Wert einstellen Resultierender Endpunkt
„Daten“. {} "https://service.us-west-2.amazonaws.com" false "https://data.service.us-west-2.amazonaws.com"
{Eimer} - {AccountId}.“ Eimer: „amzn-s3-demo-bucket1",:" 123456789012" AccountId "https://service.us-west-2.amazonaws.com" false "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com"
„Daten.“ {} "https://override.us-west-2.amazonaws.com"(als Override-Endpunkt) true "https://override.us-west-2.amazonaws.com"

Support von AWS SDKs und Tools

Im Folgenden werden die in diesem Thema beschriebenen Funktionen und Einstellungen SDKs unterstützt. Alle teilweisen Ausnahmen werden vermerkt. Alle Einstellungen für JVM-Systemeigenschaften werden AWS SDK für Kotlin nur von AWS SDK für Java und vom unterstützt.

SDK Unterstützt Hinweise oder weitere Informationen
AWS CLI v2 Ja
SDK for C++ Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: enableHostPrefixInjection.
SDK for Go V2 (1.x) Nein Kann mithilfe von Middleware deaktiviert werden.
SDK for Go 1.x (V1) Nein
SDK for Java 2.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION.
SDK for Java 1.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: withDisableHostPrefixInjection.
SDK für JavaScript 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden, indem Sie Folgendes verwenden: disableHostPrefix.
SDK für JavaScript 2.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden, indem Sie Folgendes verwenden: hostPrefixEnabled.
SDK für Kotlin Nein
SDK for .NET 4.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden, indem Sie Folgendes verwenden: DisableHostPrefixInjection.
SDK for .NET 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden, indem Sie Folgendes verwenden: DisableHostPrefixInjection.
SDK for PHP 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: disable_host_prefix_injection.
SDK for Python (Boto3) Ja Kann im Code auf dem Client konfiguriert werden mit:. inject_host_prefix
SDK for Ruby 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: disable_host_prefix_injection.
SDK für Rust Nein
SDK für Swift Nein
Tools für PowerShell V5 Nein Die Einstellung wird nicht unterstützt, kann aber mithilfe von Parametern in bestimmte Cmdlets aufgenommen werden. -ClientConfig @{DisableHostPrefixInjection = $true}
Tools für V4 PowerShell Nein Die Einstellung wird nicht unterstützt, kann aber mithilfe von Parametern in bestimmte Cmdlets aufgenommen werden. -ClientConfig @{DisableHostPrefixInjection = $true}