

# Amazon S3 on Outposts での開発
<a name="S3OutpostsDeveloping"></a>

Amazon S3 on Outposts を使用すると、AWS Outposts で S3 バケットを作成し、ローカルデータアクセス、ローカルデータ処理、データレジデンシーを必要とするアプリケーション用に、オンプレミスのオブジェクトを簡単に保存および取得できます。S3 on Outposts は、新しいストレージクラス、S3 Outposts (`OUTPOSTS`) を提供し、これは Amazon S3 API を使用し、AWS Outposts 上の複数のデバイスやサーバー間でデータを永続的かつ冗長的に保存するように設計されています。仮想プライベートクラウド (VPC) を介したアクセスポイントとエンドポイント接続を使用して、Outposts バケットと通信します。Outposts バケットでは、Amazon S3 と同じ API と機能 (アクセスポリシー、暗号化、タグ付けなど) を使用できます。AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または REST API を使用して S3 on Outposts を使用できます。詳細については、「[Amazon S3 on Outposts とは](S3onOutposts.md)」を参照してください。

以下のトピックでは、S3 on Outposts での開発について説明します。

**Topics**
+ [S3 on Outposts でサポートされているリージョン](S3OutpostsRegions.md)
+ [Amazon S3 on Outposts の API オペレーション](S3OutpostsAPI.md)
+ [SDK for Java を使用して、S3 on Outposts の S3 コントロールクライアントを設定する](S3OutpostsCongfigureS3ControlClientJava.md)
+ [IPv6 経由で S3 on Outposts へのリクエストを行う](S3OutpostsIPv6-access.md)

# S3 on Outposts でサポートされているリージョン
<a name="S3OutpostsRegions"></a>

S3 on Outposts は、次の AWS リージョンでサポートされています。
+ 米国東部 (バージニア北部) (us-east-1)
+ 米国東部 (オハイオ) (us-east-2)
+ 米国西部 (北カリフォルニア) (us-west-1)
+ 米国西部 (オレゴン) (us-west-2)
+ アフリカ (ケープタウン) (af-south-1)
+ アジアパシフィック (ジャカルタ) (ap-sourtheast-3)
+ アジアパシフィック (ムンバイ) (ap-south-1)
+ アジアパシフィック (大阪) (ap-northeast-3)
+ アジアパシフィック (ソウル) (ap-northeast-2)
+ アジアパシフィック (シンガポール) (ap-southeast-1)
+ アジアパシフィック (シドニー) (ap-southeast-2)
+ アジアパシフィック (東京) (ap-northeast-1)
+ カナダ (中部) (ca-central-1)
+ ヨーロッパ (フランクフルト) (eu-central-1)
+ 欧州 (アイルランド) (eu-west-1)
+ ヨーロッパ (ロンドン) (eu-west-2)
+ 欧州 (ミラノ) (eu-south-1)
+ 欧州 (パリ) (eu-west-3)
+ 欧州 (ストックホルム) (eu-north-1)
+ イスラエル (テルアビブ) (il-central-1)
+ 中東 (バーレーン) (me-south-1)
+ 南米 (サンパウロ) (sa-east-1)
+ AWS GovCloud (米国東部) (us-gov-east-1)
+ AWS GovCloud (米国西部) (us-gov-west-1)

# Amazon S3 on Outposts の API オペレーション
<a name="S3OutpostsAPI"></a>

このトピックでは、Amazon S3 Outposts で使用できる Amazon S3、Amazon S3 コントロール、および Amazon S3 on Outposts API オペレーションの一覧を示します。

**Topics**
+ [オブジェクト管理のための Amazon S3 API オペレーション](#S3OutpostsAPIsObject)
+ [バケット管理のための Amazon S3 コントロール API オペレーション](#S3OutpostsAPIsBucket)
+ [Outposts を管理するための S3 on Outposts API オペレーション](#S3OutpostsAPIs)

## オブジェクト管理のための Amazon S3 API オペレーション
<a name="S3OutpostsAPIsObject"></a>

S3 on Outposts は、Amazon S3 と同じオブジェクト API オペレーションを使用するように設計されています。Outpost バケット内の任意のオブジェクトにアクセスするには、アクセスポイントを使用する必要があります。S3 on Outposts でオブジェクト API オペレーションを使用するときは、Outposts アクセスポイントの Amazon リソースネーム (ARN) またはアクセスポイントエイリアスのいずれかを指定します。アクセスポイントエイリアスの詳細については、「[S3 on Outposts アクセスポイントでのバケット形式のエイリアスの使用](s3-outposts-access-points-alias.md)」を参照してください。

Amazon S3 on Outposts では、以下の Amazon S3 API のオペレーションがサポートされています。
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)

## バケット管理のための Amazon S3 コントロール API オペレーション
<a name="S3OutpostsAPIsBucket"></a>

S3 on Outposts では、バケット操作のために以下の Amazon S3 コントロール API オペレーションがサポートされています。
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketVersioning.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html) 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketVersioning.html)

## Outposts を管理するための S3 on Outposts API オペレーション
<a name="S3OutpostsAPIs"></a>

S3 on Outposts では、エンドポイントを管理するために、以下の Amazon S3 on Outposts API オペレーションがサポートされています。
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html)
+ [ListOutpostsWithS3](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListOutpostsWithS3.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListSharedEndpoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListSharedEndpoints.html)

# SDK for Java を使用して、S3 on Outposts の S3 コントロールクライアントを設定する
<a name="S3OutpostsCongfigureS3ControlClientJava"></a>

次の例では、AWS SDK for Java を使用して、Amazon S3 on Outposts の Amazon S3 コントロールクライアントを設定します。この例を実行するには、それぞれの `user input placeholder` をユーザー自身の情報に置き換えます。

```
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;

public AWSS3Control createS3ControlClient() {

    String accessKey = AWSAccessKey;
    String secretKey = SecretAccessKey;
    BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);

    return AWSS3ControlClient.builder().enableUseArnRegion()
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
            .build();

}
```

# IPv6 経由で S3 on Outposts へのリクエストを行う
<a name="S3OutpostsIPv6-access"></a>

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

**注記**  
[S3 on Outposts オブジェクトアクション](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html) (`PutObject` や `GetObject` など) は、IPv6 ネットワークではサポートされていません。

IPv6 ネットワーク上で S3 on Outposts にアクセスする場合、追加料金はかかりません。S3 on Outposts の詳細については、「[S3 on Outposts の料金](https://aws.amazon.com/outposts/rack/pricing/)」を参照してください。

**Topics**
+ [IPv6 の使用開始](#S3Outposts-ipv6-access-getting-started)
+ [デュアルスタックのエンドポイントを使用して IPv6 ネットワーク経由でリクエストを実行する](#S3Outposts-ipv6-access-api)
+ [IAM ポリシーでの IPv6 アドレスの使用](#S3Outposts-ipv6-access-iam)
+ [IP アドレス互換性のテスト](#S3Outposts-ipv6-access-test-compatabilty)
+ [AWS PrivateLink での IPv6 の使用](#S3Outposts-ipv6-privatelink)
+ [S3 on Outposts デュアルスタックのエンドポイントの使用](s3-outposts-dual-stack-endpoints.md)

## IPv6 の使用開始
<a name="S3Outposts-ipv6-access-getting-started"></a>

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

以下は、IPv6 経由で S3 on Outposts バケットへのアクセスを試行する際の重要な考慮事項です。
+ バケットにアクセスするクライアントやネットワークは、IPv6 の使用を有効にする必要があります。
+ 仮想ホスト形式およびパス形式のリクエストは、IPv6 アクセスをサポートしています。詳細については、「[S3 on Outposts デュアルスタックのエンドポイントの使用](s3-outposts-dual-stack-endpoints.md)」を参照してください。
+ AWS Identity and Access Management (IAM) ユーザーまたは S3 on Outposts バケットポリシーで、ソース IP アドレスによるフィルタリングを使用する場合、IPv6 アドレス範囲を含めるようポリシーを更新する必要があります。
**注記**  
この要件は、IPv6 ネットワーク上の S3 on Outposts バケットオペレーションとコントロールプレーンリソースにのみ適用されます。[Amazon S3 on Outposts オブジェクトアクション](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html)は、IPv6 ネットワークではサポートされていません。
+ IPv6 を使用する場合、サーバーのアクセスログファイルは IPv6 形式の IP アドレスを出力します。IPv6 形式のリモート IP アドレスを解析できるように、 S3 on Outposts ログファイルの解析に使用する既存のツール、スクリプト、ソフトウェアを更新する必要があります。その後、更新されたツール、スクリプト、ソフトウェアは IPv6 形式のリモート IP アドレスを正しく解析します。

## デュアルスタックのエンドポイントを使用して IPv6 ネットワーク経由でリクエストを実行する
<a name="S3Outposts-ipv6-access-api"></a>

IPv6 上で S3 on Outposts API コールを使用してリクエストを行うには、AWS CLI または AWS SDK 経由でデュアルスタックのエンドポイントを使用できます。[Amazon S3 コントロール API オペレーション](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html#S3OutpostsAPIsBucket)と [S3 on Outposts API オペレーション](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html#S3OutpostsAPIs)は、IPv6 プロトコルまたは IPv4 プロトコル経由で S3 on Outposts にアクセスしているかどうかに関係なく、同じように機能します。ただし、[S3 on Outposts オブジェクトアクション](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OutpostsAPI.html) (`PutObject` や `GetObject` など) は、IPv6 ネットワークではサポートされていません。

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

デュアルスタックのエンドポイントを使用して、次のいずれかから IPv6 経由で S3 on Outposts バケットにアクセスできます。
+ AWS CLI については、「[AWS CLI からのデュアルスタックのエンドポイントの使用](s3-outposts-dual-stack-endpoints.md#s3-outposts-dual-stack-endpoints-cli)」を参照してください。
+ AWS SDK については、[AWS SDK から S3 on Outposts デュアルスタックのエンドポイントを使用する](s3-outposts-dual-stack-endpoints.md#s3-outposts-dual-stack-endpoints-sdks) を参照してください。

## IAM ポリシーでの IPv6 アドレスの使用
<a name="S3Outposts-ipv6-access-iam"></a>

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

IP アドレスをフィルタリングする IAM ポリシーは、[IP アドレス条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_IPAddress)を使用します。次の S3 on Outposts バケットポリシーは、IP アドレス条件演算子を使用して 54.240.143.\$1 の許可される IP 範囲の IPv4 アドレスを識別します。この範囲外のすべての IP アドレスは S3 on Outposts バケットへのアクセスを拒否されます (`DOC-EXAMPLE-BUCKET`)。すべての IPv6 アドレスは許可範囲外であるため、このポリシーは IPv6 アドレスの `DOC-EXAMPLE-BUCKET` へのアクセスをブロックします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3-outposts:*",
            "Resource": "arn:aws:s3-outposts:us-east-1: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` ブロックを使用できます。

```
1.        "Condition": {
2.          "IpAddress": {
3.             "aws:SourceIp": [
4.               "54.240.143.0/24",
5.                "2001:DB8:1234:5678::/64"
6.              ]
7.           }
8.         }
```

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

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

## IP アドレス互換性のテスト
<a name="S3Outposts-ipv6-access-test-compatabilty"></a>

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
```

## AWS PrivateLink での IPv6 の使用
<a name="S3Outposts-ipv6-privatelink"></a>

S3 on Outposts は、AWS PrivateLink サービスとエンドポイントの IPv6 プロトコルをサポートしています。IPv6 プロトコルの AWS PrivateLink のサポートにより、オンプレミスまたは他のプライベート接続から、IPv6 ネットワーク経由で VPC 内のサービスエンドポイントに接続できます。[S3 on Outposts の AWS PrivateLink](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-outposts-privatelink-interface-endpoints.html) の IPv6 サポートにより、AWS PrivateLink をデュアルスタックのエンドポイントと統合することもできます。AWS PrivateLink で IPv6 を有効にする手順については、「[Expedite your IPv6 adoption with AWS PrivateLink services and endpoints](https://aws.amazon.com/blogs/networking-and-content-delivery/expedite-your-ipv6-adoption-with-privatelink-services-and-endpoints/)」を参照してください。

**注記**  
サポートされている IP アドレスタイプを IPv4 から IPv6 に更新するには、「AWS PrivateLink ユーザーガイド」の「[サポートされている IP アドレスのタイプを変更する](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#supported-ip-address-types)」を参照してください。**

### AWS PrivateLink での IPv6 の使用
<a name="3Outposts-ipv6-privatelink-dualstack-vpc"></a>

IPv6 で AWS PrivateLink を使用している場合は、IPv6 またはデュアルスタックの VPC インターフェイスエンドポイントを作成する必要があります。AWS マネジメントコンソール を使用して VPC エンドポイントを作成する一般的な手順については、「AWS PrivateLink ユーザーガイド」の「[インターフェイス VPC エンドポイントを使用して AWS のサービスにアクセスする](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint)」を参照してください。**

------
#### [ AWS マネジメントコンソール ]

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

1. AWS マネジメントコンソール にサインインして、VPC コンソール ([https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)) を開きます。

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

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

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

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

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

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

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

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

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

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

1. **エンドポイントの作成** を選択します。

**Example – 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 ユーザーガイド」の「[エンドポイントの接続リクエストを承諾または拒否する](https://docs.aws.amazon.com/vpc/latest/privatelink/configure-endpoint-service.html#accept-reject-connection-requests)」を参照してください。**

次の例では、`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](https://aws.amazon.com/blogs/networking-and-content-delivery/expedite-your-ipv6-adoption-with-privatelink-services-and-endpoints/)」を参照してください。

------

# S3 on Outposts デュアルスタックのエンドポイントの使用
<a name="s3-outposts-dual-stack-endpoints"></a>

S3 on Outposts デュアルスタックエンドポイントは、IPv6 および IPv4 を使用した S3 on Outposts バケットへのリクエストをサポートしています。このセクションは、S3 on Outposts デュアルスタックのエンドポイントを使用する方法を説明します。

**Topics**
+ [S3 on Outposts デュアルスタックのエンドポイント](#s3-outposts-dual-stack-endpoints-description)
+ [AWS CLI からのデュアルスタックのエンドポイントの使用](#s3-outposts-dual-stack-endpoints-cli)
+ [AWS SDK から S3 on Outposts デュアルスタックのエンドポイントを使用する](#s3-outposts-dual-stack-endpoints-sdks)

## S3 on Outposts デュアルスタックのエンドポイント
<a name="s3-outposts-dual-stack-endpoints-description"></a>

デュアルスタックのエンドポイントにリクエストを行うと、S3 on Outposts バケット URL は IPv6 または IPv4 アドレスに解決されます。IPv6 での S3 on Outposts バケットへのアクセスに関する詳細は、「[IPv6 経由で S3 on Outposts へのリクエストを行う](S3OutpostsIPv6-access.md)」を参照してください。

デュアルスタックのエンドポイントを介して S3 on Outposts バケットにアクセスするには、パス形式のエンドポイント名を使用します。S3 on Outposts はリージョンのデュアルスタックエンドポイント名のみをサポートしており、名前の一部としてリージョンを指定する必要があります。

デュアルスタックパス形式の FIPS エンドポイントの場合は、次の命名規則を使用します。

```
s3-outposts-fips.region.api.aws
```

デュアルスタックの非 FIPS エンドポイントの場合は、次の命名規則を使用します。

```
s3-outposts.region.api.aws
```

**注記**  
仮想ホスト形式のエンドポイント名は、S3 on Outposts ではサポートされていません。

## AWS CLI からのデュアルスタックのエンドポイントの使用
<a name="s3-outposts-dual-stack-endpoints-cli"></a>

このセクションでは、デュアルスタックのエンドポイントへリクエストするのに使用される AWS CLI コマンドの例を示します。AWS CLI をセットアップする手順については、「[AWS CLI および SDK for Java の使用開始](S3OutpostsGSCLIJava.md)」を参照してください。

AWS Config ファイルのプロファイル内で設定値 `use_dualstack_endpoint` を `true` に設定すると、`s3` と `s3api` AWS CLI コマンドによるすべての Amazon S3 リクエストが、指定されたリージョンのデュアルスタックエンドポイントに転送されます。`--region` オプションを使用して設定ファイルまたはコマンドでリージョンを指定します。

AWS CLI でデュアルスタックのエンドポイントを使用する場合、`path` のアドレス形式のみがサポートされます。設定ファイルで設定されたアドレス形式により、バケット名がホスト名の一部か URL の一部かが決まります。詳細については、*AWS CLI ユーザーガイド*の [https://docs.aws.amazon.com/cli/latest/reference/s3outposts/](https://docs.aws.amazon.com/cli/latest/reference/s3outposts/) を参照してください。

AWS CLI 経由でデュアルスタックのエンドポイントを使用するには、`s3control` コマンドまたは `s3outposts` コマンドの `http://s3.dualstack.region.amazonaws.com` または `https://s3-outposts-fips.region.api.aws` のエンドポイントを指定して、`--endpoint-url` パラメータを使用します。

例えば、次のようになります。

```
$  aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region.api.aws
```

## AWS SDK から S3 on Outposts デュアルスタックのエンドポイントを使用する
<a name="s3-outposts-dual-stack-endpoints-sdks"></a>

このセクションでは、AWS SDK を使用してデュアルスタックのエンドポイントにアクセスする方法の例を示します。

### AWS SDK for Java 2.x のデュアルスタックのエンドポイントの例
<a name="s3-outposts-dual-stack-endpoints-examples-javav2"></a>

次の例では、AWS SDK for Java 2.x を使用して S3 on Outposts クライアントを作成する際に、`S3ControlClient` クラスと `S3OutpostsClient` クラスを使用してデュアルスタックエンドポイントを有効化する方法を示しています。Amazon S3 on Outposts の動作する Java の例の作成とテストに関する手順については、「[AWS CLI および SDK for Java の使用開始](S3OutpostsGSCLIJava.md)」を参照してください。

**Example – デュアルスタックのエンドポイントを有効にして `S3ControlClient` クラスを作成する**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsRequest;
import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsResponse;
import software.amazon.awssdk.services.s3control.model.S3ControlException;


public class DualStackEndpointsExample1 {

    public static void main(String[] args) {
        Region clientRegion = Region.of("us-east-1");
        String accountId = "111122223333";
        String navyId = "9876543210";

        try {
            // Create an S3ControlClient with dual-stack endpoints enabled.
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                                                             .region(clientRegion)
                                                             .dualstackEnabled(true)
                                                             .build();
            ListRegionalBucketsRequest listRegionalBucketsRequest = ListRegionalBucketsRequest.builder()
                                                                                              .accountId(accountId)
                                                                                              .outpostId(navyId)
                                                                                              .build();

            ListRegionalBucketsResponse listBuckets = s3ControlClient.listRegionalBuckets(listRegionalBucketsRequest);
            System.out.printf("ListRegionalBuckets Response: %s%n", listBuckets.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        }
        catch (S3ControlException e) {
            // Unknown exceptions will be thrown as an instance of this type.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 on Outposts couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3 on Outposts.
            e.printStackTrace();
        }
    }
}
```

**Example – デュアルスタックのエンドポイントを有効にして `S3OutpostsClient` を作成する**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3outposts.S3OutpostsClient;
import software.amazon.awssdk.services.s3outposts.model.ListEndpointsRequest;
import software.amazon.awssdk.services.s3outposts.model.ListEndpointsResponse;
import software.amazon.awssdk.services.s3outposts.model.S3OutpostsException;


public class DualStackEndpointsExample2 {

    public static void main(String[] args) {
        Region clientRegion = Region.of("us-east-1");

        try {
            // Create an S3OutpostsClient with dual-stack endpoints enabled.
            S3OutpostsClient s3OutpostsClient = S3OutpostsClient.builder()
                                                              .region(clientRegion)
                                                              .dualstackEnabled(true)
                                                              .build();
            ListEndpointsRequest listEndpointsRequest = ListEndpointsRequest.builder().build();

            ListEndpointsResponse listEndpoints = s3OutpostsClient.listEndpoints(listEndpointsRequest);
            System.out.printf("ListEndpoints Response: %s%n", listEndpoints.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        }
        catch (S3OutpostsException e) {
            // Unknown exceptions will be thrown as an instance of this type.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 on Outposts couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3 on Outposts.
            e.printStackTrace();
        }
    }
}
```

Windows で AWS SDK for Java 2.x を使用している場合は、必要に応じて、次の Java 仮想マシン (JVM) のプロパティを設定します。

```
java.net.preferIPv6Addresses=true
```