IPv6 経由で S3 on Outposts へのリクエストを行う - Amazon Simple Storage Service

IPv6 経由で S3 on Outposts へのリクエストを行う

Amazon S3 on Outposts デュアルスタックエンドポイントは、IPv6 プロトコルまたは IPv4 プロトコルを使用した S3 on Outposts バケットへのリクエストをサポートしています。S3 on Outposts の IPv6 サポートを使用すると、IPv6 ネットワーク上の S3 on Outposts API 経由でバケットとコントロールプレーンリソースにアクセスし、運用できます。

注記

S3 on Outposts オブジェクトアクション (PutObjectGetObject など) は、IPv6 ネットワークではサポートされていません。

IPv6 ネットワーク上で S3 on Outposts にアクセスする場合、追加料金はかかりません。S3 on Outposts の詳細については、「S3 on Outposts の料金」を参照してください。

IPv6 の使用開始

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

以下は、IPv6 経由で S3 on Outposts バケットへのアクセスを試行する際の重要な考慮事項です。

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

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

  • AWS Identity and Access Management (IAM) ユーザーまたは S3 on Outposts バケットポリシーで、ソース IP アドレスによるフィルタリングを使用する場合、IPv6 アドレス範囲を含めるようポリシーを更新する必要があります。

    注記

    この要件は、IPv6 ネットワーク上の S3 on Outposts バケットオペレーションとコントロールプレーンリソースにのみ適用されます。Amazon S3 on Outposts オブジェクトアクションは、IPv6 ネットワークではサポートされていません。

  • IPv6 を使用する場合、サーバーのアクセスログファイルは IPv6 形式の IP アドレスを出力します。IPv6 形式のリモート IP アドレスを解析できるように、 S3 on Outposts ログファイルの解析に使用する既存のツール、スクリプト、ソフトウェアを更新する必要があります。その後、更新されたツール、スクリプト、ソフトウェアは IPv6 形式のリモート IP アドレスを正しく解析します。

デュアルスタックのエンドポイントを使用して IPv6 ネットワーク経由でリクエストを実行する

IPv6 上で S3 on Outposts API コールを使用してリクエストを行うには、AWS CLI または AWS SDK 経由でデュアルスタックのエンドポイントを使用できます。Amazon S3 コントロール API オペレーションS3 on Outposts API オペレーションは、IPv6 プロトコルまたは IPv4 プロトコル経由で S3 on Outposts にアクセスしているかどうかに関係なく、同じように機能します。ただし、S3 on Outposts オブジェクトアクション (PutObjectGetObject など) は、IPv6 ネットワークではサポートされていません。

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

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

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

IPv6 プロトコルを使用して S3 on Outposts バケットへのアクセスを試行する前に、IP アドレスによるフィルタリングに使用される IAM ユーザーまたは S3 on Outposts バケットポリシーが IPv6 アドレス範囲を含むように更新されているか確認する必要があります。IPv6 アドレスを処理するように IP アドレスフィルタリングポリシーが更新されていない場合、IPv6 プロトコルの使用を試行しているときに S3 on Outposts バケットにアクセスできなくなる可能性があります。

IP アドレスをフィルタリングする IAM ポリシーは、IP アドレス条件演算子を使用します。次の S3 on Outposts バケットポリシーは、IP アドレス条件演算子を使用して 54.240.143.* の許可される IP 範囲の IPv4 アドレスを識別します。この範囲外のすべての IP アドレスは S3 on Outposts バケットへのアクセスを拒否されます (DOC-EXAMPLE-BUCKET)。すべての IPv6 アドレスは許可範囲外であるため、このポリシーは IPv6 アドレスの DOC-EXAMPLE-BUCKET へのアクセスをブロックします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "s3outposts:*", "Resource": "arn:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET/*", "Condition": { "IpAddress": {"aws:SourceIp": "54.240.143.0/24"} } } ] }

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

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

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

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

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

Linux、Unix インスタンス、または macOS X プラットフォームを使用している場合は、IPv6 経由でデュアルスタックのエンドポイントへのアクセスをテストできます。例えば、IPv6 経由で Amazon S3 on Outposts エンドポイントへの接続をテストするには、dig コマンドを使用します。

dig s3-outposts.us-west-2.api.aws AAAA +short

IPv6 ネットワーク上にデュアルスタックのエンドポイントが適切に設定されている場合、dig コマンドは接続されている IPv6 アドレスを返します。例:

dig s3-outposts.us-west-2.api.aws AAAA +short 2600:1f14:2588:4800:b3a9:1460:159f:ebce 2600:1f14:2588:4802:6df6:c1fd:ef8a:fc76 2600:1f14:2588:4801:d802:8ccf:4e04:817

S3 on Outposts は、AWS PrivateLink サービスとエンドポイントの IPv6 プロトコルをサポートしています。IPv6 プロトコルの AWS PrivateLink のサポートにより、オンプレミスまたは他のプライベート接続から、IPv6 ネットワーク経由で VPC 内のサービスエンドポイントに接続できます。S3 on Outposts の AWS PrivateLink の IPv6 サポートにより、AWS PrivateLink をデュアルスタックのエンドポイントと統合することもできます。AWS PrivateLink で IPv6 を有効にする手順については、「Expedite your IPv6 adoption with AWS PrivateLink services and endpoints」を参照してください。

注記

サポートされている IP アドレスタイプを IPv4 から IPv6 に更新するには、「AWS PrivateLink ユーザーガイド」の「サポートされている IP アドレスのタイプを変更する」を参照してください。

IPv6 で AWS PrivateLink を使用している場合は、IPv6 またはデュアルスタックの VPC インターフェイスエンドポイントを作成する必要があります。AWS Management Console を使用して VPC エンドポイントを作成する一般的な手順については、「AWS PrivateLink ユーザーガイド」の「インターフェイス VPC エンドポイントを使用して AWS のサービスにアクセスする」を参照してください。

AWS Management Console

次の手順を使用して、S3 on Outposts に接続するインターフェイス VPC エンドポイントを作成します。

  1. AWS Management Console にサインインして、VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[エンドポイント] を選択します。

  3. [エンドポイントの作成] を選択します。

  4. [Service category] (サービスカテゴリ) で、[AWS services] (のサービス) を選択します。

  5. [サービス名] で、S3 on Outposts サービス (com.amazonaws.us-east-1.s3-outposts) を選択します。

  6. [VPC] で、S3 on Outposts にアクセスする VPC を選択します。

  7. [サブネット] で、S3 on Outposts にアクセスするアベイラビリティゾーンごとにサブネットを 1 つ選択します。同じアベイラビリティーゾーンから複数のサブネットを選択することはできません。選択したサブネットごとに、新しいエンドポイントネットワークインターフェイスが作成されます。デフォルトでは、サブネットの IP アドレス範囲の IP アドレスがエンドポイントネットワークインターフェイスに割り当てられます。エンドポイントネットワークインターフェースの IP アドレスを指定するには、[IP アドレスの指定] を選択し、サブネットアドレス範囲の IPv6 アドレスを入力します。

  8. [IP アドレスタイプ] で、[デュアルスタック]を選択します。IPv4 と IPv6 の両方のアドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択したすべてのサブネットに IPv4 と IPv6 の両方のアドレス範囲がある場合にのみサポートされます。

  9. [セキュリティグループ] で、VPC エンドポイントのエンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。デフォルトでは、デフォルトのセキュリティグループが VPC に関連付けられます。

  10. [ポリシー] では、[フルアクセス] を選択して、VPC エンドポイントのすべてのリソースに対するすべてのプリンシパルによるすべてのオペレーションを許可します。それ以外の場合は、[カスタム] を選択して、プリンシパルが VPC エンドポイントを介してリソースに対してアクションを実行するために必要なアクセス許可を制御する VPC エンドポイントポリシーをアタッチします。このオプションは、サービスが VPC エンドポイントポリシーをサポートしている場合にのみ使用できます。詳細については、「エンドポイントポリシー」を参照してください。

  11. (オプション) タグを追加するには、[新しいタグを追加] を選択し、そのタグのキーと値を入力します。

  12. [エンドポイントの作成] を選択します。

例 – S3 on Outposts バケットポリシー

S3 on Outposts が VPC エンドポイントとやり取りできるようにするには、S3 on Outposts ポリシーを次のように更新します。

{ "Statement": [ { "Effect": "Allow", "Action": "s3-outposts:*", "Resource": "*", "Principal": "*" } ] }
AWS CLI
注記

VPC エンドポイントで IPv6 ネットワークを有効にするには、S3 on Outposts のSupportedIpAddressTypeフィルターに IPv6 を設定する必要があります。

次の例では、create-vpc-endpoint コマンドを使用して新しいデュアルスタックインターフェイスエンドポイントを作成します。

aws ec2 create-vpc-endpoint \ --vpc-id vpc-12345678 \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-east-1.s3-outposts \ --subnet-id subnet-12345678 \ --security-group-id sg-12345678 \ --ip-address-type dualstack \ --dns-options "DnsRecordIpType=dualstack"

AWS PrivateLink サービス設定によっては、新しく作成されたエンドポイント接続を使用する前に、VPC エンドポイントサービスプロバイダーによる承認が必要になる場合があります。詳細については、「AWS PrivateLink ユーザーガイド」の「エンドポイントの接続リクエストを承諾または拒否する」を参照してください。

次の例では、modify-vpc-endpoint コマンドを使用して、IPv 専用 VPC エンドポイントをデュアルスタックのエンドポイントに更新します。デュアルスタックのエンドポイントにより、IPv4 ネットワークと IPv6 ネットワークの両方にアクセスできるようになります。

aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-12345678 \ --add-subnet-ids subnet-12345678 \ --remove-subnet-ids subnet-12345678 \ --ip-address-type dualstack \ --dns-options "DnsRecordIpType=dualstack"

AWS PrivateLink で IPv6 を有効にする方法の詳細については、「Expedite your IPv6 adoption with AWS PrivateLink services and endpoints」を参照してください。