メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

IPv6 を使用して Amazon S3 に対するリクエストを実行

Amazon Simple Storage Service (Amazon S3) では、IPv4 プロトコルに加えて、インターネットプロトコルバージョン 6(IPv6) を使用して S3 バケットへアクセスする機能をサポートしています。Amazon S3 デュアルスタックのエンドポイントでは、IPv6 および IPv4 を使用した S3 バケットへのリクエストをサポートしています。IPv6 を使用して Amazon S3 へアクセスする場合、追加料金はかかりません。料金の詳細については、「Amazon S3 料金表」を参照してください。

IPv6 を使用したリクエストの実行を開始する

IPv6 を使用して S3 バケットにリクエストを実行するには、デュアルスタックのエンドポイントを使用する必要があります。次のセクションでは、デュアルスタックのエンドポイントを使用した IPv6 でのリクエストの実行方法について説明します。

以下は、お客様が IPv6 でバケットにアクセスを試行する前に知っておく必要がある点です。

  • バケットにアクセスするクライアントやネットワークは、IPv6 の使用を有効にする必要があります。

  • 仮想ホスト形式およびパス形式のリクエストは、IPv6 アクセスをサポートしています。詳細については、「Amazon S3 デュアルスタックのエンドポイント」を参照してください。

  • AWS Identity and Access Management (IAM) ユーザーまたはバケットポリシーで、ソース IP アドレスによるフィルタリングを使用する場合、IPv6 アドレス範囲を含めるようポリシーを更新する必要があります。詳細については、「IAM ポリシーでの IPv6 アドレスの使用」を参照してください。

  • IPv6 を使用する場合、サーバーのアクセスログファイルは IPv6 形式の IP アドレスを出力します。IPv6 形式の Remote IP アドレスを解析できるように、Amazon S3 ログファイルの解析に使用する既存のツール、スクリプト、ソフトウェアを更新する必要があります。詳細については、「サーバーアクセスログの形式」および「サーバーアクセスのロギング」を参照してください。

    注記

    ログファイルで IPv6 アドレスに関連する問題を見つけた場合、AWS サポートにお問い合わせください。

デュアルスタックのエンドポイントを使用して IPv6 でのリクエストを実行

デュアルスタックのエンドポイントを使用すれば、IPv6 での Amazon S3 API 呼び出しを使用したリクエストを実行できます。Amazon S3 API オペレーションは、IPv6 または IPv4 のどちらを使用して Amazon S3 にアクセスしても、同じ様に機能します。パフォーマンスも同じです。

REST API を使用する場合、デュアルスタックのエンドポイントに直接アクセスします。詳細については、「デュアルスタックのエンドポイント」を参照してください。

AWS Command Line Interface (AWS CLI) や AWS SDK を使用する場合、パラメーターまたはフラグを使ってデュアルスタックのエンドポイントを変更することができます。設定ファイルの Amazon S3 エンドポイントに上書きしてデュアルスタックのエンドポイントを直接指定することもできます。

デュアルスタックのエンドポイントを使用して、次のいずれかから IPv6 でバケットにアクセスできます。

IPv6 で使用できない機能

IPv6 を使用して S3 バケットにアクセスする場合、次の機能は現在サポートされていません。

  • S3 バケットからの静的ウェブサイトホスティング

  • BitTorrent

IAM ポリシーでの IPv6 アドレスの使用

IPv6 を使用してバケットにアクセスを試行する前に、IP アドレスによるフィルタリングに使用される IAM ユーザーまたは S3 バケットポリシーが IPv6 アドレス範囲を含むように更新されているか確認する必要があります。IPv6 アドレスを処理するために更新されていない IP アドレスのフィルタリングポリシーでは、IPv6 の使用を開始する際、間違ってクライアントがバケットへのアクセスを取得または失う場合があります。IAM でのアクセス許可管理の詳細については、「Amazon S3 リソースへのアクセス許可の管理」を参照してください。

IP アドレスをフィルタリングする IAM ポリシーは、IP アドレス条件演算子を使用します。次のバケットポリシーは 54.240.143 を識別します。IP アドレス条件演算子を使用して * の範囲の IPv4 アドレスが許可されています。この範囲外のすべての IP アドレスはバケットへのアクセスを拒否されます (examplebucket)。すべての IPv6 アドレスは許可範囲外なので、このポリシーは IPv6 アドレスが examplebucket にアクセスすることを禁止します。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket/*", "Condition": { "IpAddress": {"aws:SourceIp": "54.240.143.0/24"} } } ] }

次の例のように、バケットポリシーの Condition エレメントを変更して、IPv4 (54.240.143.0/24) および IPv6 (2001:DB8:1234:5678::/64) アドレス範囲の両方を許可できます。例に示すように、IAM ユーザーとバケットポリシーの両方を更新するために同じタイプの Condition ブロックを使用できます。

Copy
"Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } }

IPv6 を使用する前に、IPv6 アドレス範囲を許可する IP アドレスのフィルタリングに使用するすべての関連 IAM ユーザーとバケットポリシーを更新しなければなりません。既存の IPv4 アドレス範囲に加えて、IAM ポリシーと組織の IPv6 アドレス範囲を更新することをお勧めします。IPv6 および IPv4 でのアクセスを許可するバケットポリシーの例については、「特定の IP アドレスへのアクセスの制限」を参照してください。

https://console.aws.amazon.com/iam/ で IAM コンソールを使用して IAM ユーザーポリシーを確認することができます。IAM の詳細については、『IAM ユーザーガイド』を参照してください。S3 バケットポリシーの編集方法の詳細については、「S3 バケットポリシーを追加する方法」(Amazon Simple Storage Service コンソールユーザーガイド) を参照してください。

IP アドレス互換性のテスト

Linux/Unix または Mac OS X を使用している場合、次の例に示すように curl コマンドを使用して IPv6 でデュアルスタックのエンドポイントにアクセスできるかどうかテストできます。

Copy
curl -v http://s3.dualstack.us-west-2.amazonaws.com/

次の例のような情報を取得できます。IPv6 で接続している場合、接続されている IP アドレスは IPv6 アドレスです。

Copy
* About to connect() to s3-us-west-2.amazonaws.com port 80 (#0) * Trying IPv6 address... connected * Connected to s3.dualstack.us-west-2.amazonaws.com (IPv6 address) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.18.1 (x86_64-unknown-linux-gnu) libcurl/7.18.1 OpenSSL/1.0.1t zlib/1.2.3 > Host: s3.dualstack.us-west-2.amazonaws.com

Microsoft Windows 7 を使用している場合、次の例に示すように ping コマンドを使用して IPv6 または IPv4 でデュアルスタックのエンドポイントにアクセスできるかどうかテストできます。

Copy
ping ipv6.s3.dualstack.us-west-2.amazonaws.com