Boto3 は botocore の Config オブジェクトを通じて明示的なプロキシポリシーを受け取ります:

import boto3
from botocore.config import Config

network = Config(proxies={
    'http': 'http://proxy.example:8080',
    'https': 'http://proxy.example:8080',
})
s3 = boto3.client('s3', config=network)

マップのキーが宛先プロトコルを選びます。値がプロキシのエンドポイントを表します。この例では HTTP と HTTPS の両方のサービ スリクエストを 1 つの HTTP フォワードプロキシ経由で送ります。プロキシ アカウントなしで許可された公開 AWS エンドポイントを試験する場合は、HTTP プロキシ一覧の HTTP エントリがその 2 つの URL を提供できます。

https:// の値の場合は代わりに、クライアントからの TLS 接続を受け付けるプロキシリスナーが必要になります。HTTPS キーに合わせるためだけに値のスキームを変えないでください。

Config.proxies は、そのクライアントについて HTTP_PROXY と HTTPS_PROXY 環境変数からのプロキシ選択を上書きします。ほかのクライアントはそれぞれの Config オブジェクトで構築できます。これを作成してもプロセス全体の環境変数は変わりません。

アプリケーションに組み込むときは、リージョンや再試行ポリシーなど、ほかに必要なクライアントオプションを保ってください。AWS の認証情報はアプリケーションの通常の認証情報設定に残ります。EndpointCreator や botocore の他の非公開メソッドを変更する必要はありません。

HTTPS プロキシへの TLS 接続には、Config に proxy_ca_bundle や proxy_client_cert といった proxies_config オプションもあります。これらはプロキシ接続での信頼とクライアント証明書認証に関するものです。AWS サービスエンドポイントの選択や AWS API リクエストの署名とは別です。

関連記事