ホストプレフィックスインジェクション - AWS SDKsとツール

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ホストプレフィックスインジェクション

注記

設定ページのレイアウトの理解、または以下の AWS SDKs「」を参照してくださいこのガイドの設定ページについて

ホストプレフィックスインジェクションは、 AWS SDKsが特定の API オペレーションのサービスエンドポイントのホスト名にプレフィックスを自動的に付加する機能です。このプレフィックスは、静的文字列でも、リクエストパラメータのデータを含む動的値でもかまいません。

例えば、Amazon Simple Storage Service を使用して Amazon S3 オブジェクトまたはバケットに対してアクションを実行する場合、SDK は最終的な API エンドポイントでバケット名と AWS アカウント ID を置き換えます。

この動作は通常の AWS サービスエンドポイントに必要ですが、VPC エンドポイントやローカルテストツールなどのカスタムエンドポイントを使用すると問題が発生する可能性があります。このような場合は、ホストプレフィックスインジェクションを無効にする必要がある場合があります。

この機能を設定するには、以下のように使用します。

disable_host_prefix_injection - 共有 AWS configファイル設定
AWS_DISABLE_HOST_PREFIX_INJECTION - 環境変数
aws.disableHostPrefixInjection - JVM システムプロパティ: Java/Kotlin のみ

この設定は、SDK またはツールが SDK のクライアントオブジェクトまたは変数で定義されているホストプレフィックスを付加してエンドポイントホスト名を変更するかどうかを制御します。

デフォルト値: false

有効な値:

  • true – ホストプレフィックスインジェクションを無効にします。SDK はエンドポイントのホスト名を変更しません。

  • false — ホストプレフィックスインジェクションを有効にします。SDK は、ホストプレフィックスの前にエンドポイントホスト名を付加します。

config ファイルにこの値を設定する例を以下に示します。

[default] disable_host_prefix_injection = true

Linux/macOS のコマンドラインによる環境変数の設定の例を以下に示します。

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

Windows のコマンドラインによる環境変数の設定の例を以下に示します。

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

ホストプレフィックスインジェクションの例

次の例の表は、ホストプレフィックスインジェクションが有効または無効になっている場合に SDKs が最終エンドポイントを変更する方法を示しています。

  • ホストプレフィックス: SDK のクライアントオブジェクトまたはコード内の変数に設定されたホストプレフィックスプロパティ文字列のテンプレート。

  • 入力: SDK のクライアントオブジェクトまたはコード内の変数に設定された追加の入力。

  • クライアントエンドポイント: クライアントから派生したエンドポイント。

  • 設定値: 前の設定の値を解決しました。

  • 結果のエンドポイント: SDK クライアントが API コールを行うために使用する結果のエンドポイント。

ホストプレフィックス 入力 クライアントエンドポイント 設定値 結果のエンドポイント
"data." {} 「https://service.us-west-2.amazonaws.com」 false 「https://data.service.us-west-2.amazonaws.com」
"{Bucket}-{AccountId}." Bucket: "amzn-s3-demo-bucket1", AccountId:"123456789012" 「https://service.us-west-2.amazonaws.com」 false 「https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com」
"data." {} 「https://override.us-west-2.amazonaws.com」 (as an override endpoint) true 「https://override.us-west-2.amazonaws.com」

AWS SDKsとツールによるサポート

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。

SDK サポート 注意または詳細情報
AWS CLI v2 はい
SDK for C++ いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますenableHostPrefixInjection
SDK for Go V2 (1.x) いいえ ミドルウェアを使用して無効にできます。
SDK for Go 1.x (V1) いいえ
SDK for Java 2.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますSdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION
SDK for Java 1.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますwithDisableHostPrefixInjection
SDK for JavaScript 3.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますdisableHostPrefix
SDK for JavaScript 2.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますhostPrefixEnabled
SDK for Kotlin いいえ
SDK for .NET 4.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますDisableHostPrefixInjection
SDK for .NET 3.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますDisableHostPrefixInjection
SDK for PHP 3.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますdisable_host_prefix_injection
SDK for Python (Boto3) はい を使用して、クライアントのコードで設定できます。 inject_host_prefix
SDK for Ruby 3.x いいえ 設定はサポートされていませんが、 を使用してクライアントのコードで設定できますdisable_host_prefix_injection
SDK for Rust いいえ
SDK for Swift いいえ
PowerShell V5 用のツール いいえ 設定はサポートされていませんが、パラメータ を使用して特定のコマンドレットに含めることができます-ClientConfig @{DisableHostPrefixInjection = $true}
PowerShell V4 のツール いいえ 設定はサポートされていませんが、パラメータ を使用して特定のコマンドレットに含めることができます-ClientConfig @{DisableHostPrefixInjection = $true}