

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

# Amazon S3 のゲートウェイエンドポイント
<a name="vpc-endpoints-s3"></a>

ゲートウェイ VPC エンドポイントを使用して、VPC から Amazon S3 にアクセスできます。ゲートウェイエンドポイントを作成したら、そのエンドポイントをルートテーブル内のターゲットとして、VPC から Amazon S3 に送信されるトラフィック用に追加できます。

ゲートウェイエンドポイントは追加料金なしで使用できます。

Amazon S3 は、ゲートウェイエンドポイントとインターフェイスエンドポイントの両方をサポートしています。ゲートウェイエンドポイントを使用して、VPC 用のインターネットゲートウェイや NAT デバイスを必要とせず、VPC から Amazon S3 にアクセスすることができます。ただし、ゲートウェイエンドポイントは、オンプレミスネットワーク、他の AWS リージョンのピア接続された VPCs、またはトランジットゲートウェイからのアクセスを許可しません。このようなシナリオでは、追加料金で利用できるインターフェイスエンドポイントを使用する必要があります。詳細については、「*Amazon S3 ユーザーガイド*」の「[Amazon S3 の VPC エンドポイントのタイプ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3)」を参照してください。

**Topics**
+ [考慮事項](#gateway-endpoint-considerations-s3)
+ [プライベート DNS](#private-dns-s3)
+ [ゲートウェイエンドポイントを作成する](#create-gateway-endpoint-s3)
+ [バケットポリシーを使用してアクセスを制御する](#bucket-policies-s3)
+ [ルートテーブルを関連付ける](#associate-route-tables-s3)
+ [VPC エンドポイントポリシーを編集する](#edit-vpc-endpoint-policy-s3)
+ [ゲートウェイエンドポイントを削除する](#delete-gateway-endpoint-s3)

## 考慮事項
<a name="gateway-endpoint-considerations-s3"></a>
+ ゲートウェイエンドポイントは、それを作成したリージョンでのみ使用できます。必ず S3 バケットと同じリージョンにゲートウェイエンドポイントを作成してください。
+ Amazon DNS サーバーを使用している場合は、VPC の [DNS ホスト名と DNS 解決](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating)の両方を有効にする必要があります。独自の DNS サーバーを使用している場合は、Amazon S3 へのリクエストが AWSによって維持されている IP アドレスに正しく解決されることを確認してください。
+ ゲートウェイエンドポイントを通じて Amazon S3 にアクセスするインスタンスのセキュリティグループのルールは、Amazon S3 との間のトラフィックを許可する必要があります。Amazon S3 の[プレフィックスリスト](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html) ID は、セキュリティグループルールで参照できます。
+ ゲートウェイエンドポイントを通じて Amazon S3 にアクセスするインスタンスのサブネットのネットワーク ACL は、Amazon S3 との間のトラフィックを許可する必要があります。ネットワーク ACL ルールでプレフィックスリストを参照することはできませんが、Amazon S3 の IP アドレス範囲は Amazon S3 の[プレフィックスリスト](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)から取得できます。
+ S3 バケットへのアクセス AWS のサービス を必要とする を使用しているかどうかを確認します。例えば、サービスがログファイルを含むバケットへのアクセスを必要とする場合や、ドライバーまたはエージェントを EC2 インスタンスにダウンロードする必要がある場合があります。その場合は、エンドポイントポリシーで、 AWS のサービス または リソースが `s3:GetObject`アクションを使用してこれらのバケットにアクセスすることを許可していることを確認します。
+ VPC エンドポイントを通過する Amazon S3 へのリクエストでは、アイデンティティポリシーおよびバケットポリシーで `aws:SourceIp` 条件を使用することはできません。代わりに `aws:VpcSourceIp` 条件を使用してください。ルートテーブルを使用して、VPC エンドポイントから Amazon S3 にアクセスできる EC2 インスタンスを制御することもできます。
+ Amazon S3 が受信した、影響を受けるサブネット内のインスタンスからのソース IPv4 または IPv6 アドレスは、パブリックアドレスから VPC 内のプライベートアドレスに変更されます。エンドポイントはネットワークルートを切り替え、開いている TCP 接続を切断します。パブリックアドレスを使用した以前の接続は再開されません。エンドポイントの作成または変更は、重要なタスクが実行中でないときに行うことをお勧めします。または、接続の障害後に、ソフトウェアが Amazon S3 に自動的に再接続できることをテストするようお勧めします。
+ エンドポイントの接続を、VPC から延長することはできません。VPN 接続、VPC ピアリング接続、トランジットゲートウェイ、または VPC 内の Direct Connect 接続の反対側にあるリソースは、ゲートウェイエンドポイントを使用して Amazon S3 と通信することはできません。
+ アカウントには、リージョンあたり 20 個のゲートウェイエンドポイントのデフォルトクォータがあり、調整可能です。また、VPC あたりのゲートウェイエンドポイントの数は 255 に制限されています。

## プライベート DNS
<a name="private-dns-s3"></a>

Amazon S3 のゲートウェイエンドポイントとインターフェイスエンドポイントの両方を作成するときに、プライベート DNS を設定してコストを最適化できます。

**Route 53 Resolver**  
Amazon は、「[Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html)」と呼ばれる VPC 用の DNS サーバーを提供しています。Route 53 Resolver は、プライベートホストゾーンのローカル VPC ドメイン名とレコードを自動的に解決します。ただし、VPC の外部から Route 53 Resolver を使用することはできません。Route 53 は、VPC の外から Route 53 Resolver を使用できるように、Resolver エンドポイントと Resolver ルールを提供します。*インバウンドリゾルバーエンドポイント*は、DNS クエリをオンプレミスネットワークから Route 53 Resolver に転送します。*アウトバウンド Resolver エンドポイント*は、Route 53 Resolver から DNS クエリをオンプレミスネットワークに転送します。

Amazon S3 のインターフェイスエンドポイントをインバウンド Resolver エンドポイントにのみプライベート DNS を使用するように設定すると、インバウンド Resolver エンドポイントが作成されます。インバウンド Resolver エンドポイントは、オンプレミスからの Amazon S3 への DNS クエリをインターフェイスエンドポイントのプライベート IP アドレスに解決します。また、Route 53 Resolver の ALIAS レコードを Amazon S3 のパブリックホストゾーンに追加して、VPC からの DNS クエリが Amazon S3 のパブリック IP アドレスに解決され、トラフィックがゲートウェイエンドポイントにルーティングされるようにします。

**プライベート DNS**  
Amazon S3 のインターフェイスエンドポイントにはプライベート DNS を設定し、インバウンドの Resolver エンドポイントにのみプライベート DNS を設定しない場合、オンプレミスネットワークと VPC の両方からのリクエストは、インターフェイスエンドポイントを使用して Amazon S3 にアクセスします。そのため、追加料金なしでゲートウェイエンドポイントを使用する代わりに、VPC からのトラフィックにはインターフェイスエンドポイントを使用するため料金が発生します。

![\[両方のエンドポイントタイプを伴う Amazon S3 リクエストルーティング。\]](http://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/images/s3-private-dns-default.png)


**インバウンド Resolver エンドポイント専用のプライベート DNS**  
インバウンドの Resolver エンドポイントのみにプライベート DNS を設定する場合、オンプレミスネットワークからのリクエストはインターフェイスエンドポイントを使用して Amazon S3 にアクセスし、VPC からのリクエストはゲートウェイエンドポイントを使用して Amazon S3 にアクセスします。そのため、ゲートウェイエンドポイントを使用できないトラフィックにのみインターフェイスエンドポイントの使用料を支払うので、コストを最適化できます。

これを設定するには、ゲートウェイエンドポイントの DNS レコード IP タイプがインターフェイスエンドポイントと一致するか、`service-defined`. AWS PrivateLink does が他の組み合わせをサポートしていない必要があります。詳細については、「[DNS レコード IP タイプ](gateway-endpoints.md#gateway-endpoint-dns-record-ip-type)」を参照してください。

![\[プライベート DNS とインバウンド Resolver エンドポイントを伴う Amazon S3 リクエストルーティング。\]](http://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/images/s3-private-dns-inbound-endpoint.png)


**プライベート DNS の設定**  
Amazon S3 のインターフェイスエンドポイントのプライベート DNS は、作成時または作成後に設定できます。詳細については、「[VPC エンドポイントの作成](create-interface-endpoint.md#create-interface-endpoint-aws) (作成中に設定)」または「[プライベート DNS 名を有効にする](interface-endpoints.md#enable-private-dns-names) (作成後に設定)」を参照してください。

## ゲートウェイエンドポイントを作成する
<a name="create-gateway-endpoint-s3"></a>

次の手順を使用して、Amazon S3 に接続するゲートウェイエンドポイントを作成します。

**コンソールを使用してゲートウェイエンドポイントを作成するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

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

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

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

1. **サービス**の場合は、フィルター**タイプ = ゲートウェイ**を追加します。

   Amazon S3 データが汎用バケットに保存されている場合は、**com.amazonaws.***region***.s3** を選択します。

   Amazon S3 データがディレクトリバケットに保存されている場合は、**com.amazonaws.***region***.s3express** を選択します。

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

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

1. **[Route tables]** (ルートテーブル) で、エンドポイントで使用するルートテーブルを選択します。サービス宛てのトラフィックをエンドポイントのネットワークインターフェイスにポイントするルートが自動的に追加されます。

1. **[Policy]** (ポリシー) で **[Full access]** (フルアクセス) を選択して、すべてのリソースに対するすべてのプリンシパルによる VPC エンドポイント経由のすべてのオペレーションを許可します。それ以外の場合は、**[Custom]** (カスタム) を選択して、VPC エンドポイント経由でリソースに対してアクションを実行するためにプリンシパルが持つ許可を制御する VPC エンドポイントポリシーをアタッチします。

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

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

**コマンドラインを使用してゲートウェイエンドポイントを作成するには**
+ [create-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-endpoint.html) (AWS CLI)
+ [New-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2VpcEndpoint.html) (Tools for Windows PowerShell)

## バケットポリシーを使用してアクセスを制御する
<a name="bucket-policies-s3"></a>

バケットポリシーを使用して、特定のエンドポイント、VPCs、IP アドレス範囲、および からバケットへのアクセスを制御できます AWS アカウント。これらの例では、ユースケースに必要なアクセスを許可するポリシーステートメントがあることを前提としています。

**Example 例: 特定のエンドポイントへのアクセスを制限する**  
[aws:sourceVpce](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpce) 条件キーを使用して、特定のエンドポイントへのアクセスを制限するバケットポリシーを作成できます。次のポリシーは、指定されたゲートウェイエンドポイントが使用された場合を除き、指定されたアクションでの指定バケットへのアクセスを拒否します。このポリシーは、指定されたアクションでの AWS マネジメントコンソールを介した指定バケットへのアクセスをブロックすることに注意してください。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-access-to-specific-VPCE",
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
      "Resource": ["arn:aws:s3:::bucket_name",
                   "arn:aws:s3:::bucket_name/*"],
      "Condition": {
        "StringNotEquals": {
          "aws:sourceVpce": "vpce-1a2b3c4d"
        }
      }
    }
  ]
}
```

**Example 例: 特定の VPC へのアクセスを制限する**  
[aws:sourceVpc](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpc) 条件キーを使用して、特定の VPC へのアクセスを制限するバケットポリシーを作成できます。これは、同じ VPC で複数のエンドポイントを設定済みである場合に便利です。次のポリシーは、リクエストが指定された VPC からのものである場合を除き、指定されたアクションでの指定バケットへのアクセスを拒否します。このポリシーは、指定されたアクションでの AWS マネジメントコンソールを介した指定バケットへのアクセスをブロックすることに注意してください。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-access-to-specific-VPC",
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
      "Resource": ["arn:aws:s3:::example_bucket",
                   "arn:aws:s3:::example_bucket/*"],
      "Condition": {
        "StringNotEquals": {
          "aws:sourceVpc": "vpc-111bbb22"
        }
      }
    }
  ]
}
```

**Example 例: 特定の IP アドレス範囲へのアクセスを制限する**  
[aws:VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) 条件キーを使用して、特定の IP アドレス範囲へのアクセスを制限するポリシーを作成できます。次のポリシーは、リクエストが指定された IP アドレスからのものである場合を除き、指定されたアクションでの指定バケットへのアクセスを拒否します。このポリシーは、指定されたアクションでの AWS マネジメントコンソールを介した指定バケットへのアクセスをブロックすることに注意してください。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-access-to-specific-VPC-CIDR",
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
      "Resource": ["arn:aws:s3:::bucket_name",
                   "arn:aws:s3:::bucket_name/*"],
      "Condition": {
        "NotIpAddress": {
          "aws:VpcSourceIp": "172.31.0.0/16"
        }
      }
    }
  ]
}
```

**Example 例: 特定の のバケットへのアクセスを制限する AWS アカウント**  
`s3:ResourceAccount` 条件キーを使用して、特定の AWS アカウント の S3 バケットへのアクセスを制限するポリシーを作成できます。次のポリシーは、指定された AWS アカウントによって S3 バケットが所有されている場合を除き、指定されたアクションでの S3 バケットへのアクセスを拒否します。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-access-to-bucket-in-specific-account",
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
      "Resource": "arn:aws:s3:::*",
      "Condition": {
        "StringNotEquals": {
          "s3:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

## ルートテーブルを関連付ける
<a name="associate-route-tables-s3"></a>

ゲートウェイエンドポイントに関連付けられているルートテーブルを変更できます。ルートテーブルを関連付けると、サービス宛てのトラフィックをエンドポイントのネットワークインターフェイスにポイントするルートが自動的に追加されます。ルートテーブルの関連付けを解除すると、エンドポイントルートはルートテーブルから自動的に削除されます。

**コンソールを使用してルートテーブルを関連付けるには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

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

1. ゲートウェイエンドポイントを選択する

1. [**Actions**]、[**Manage route tables**] の順に選択します。

1. 必要に応じて、ルートテーブルを選択または選択解除します。

1. **[Modify route tables]** (ルートテーブルを変更) を選択します。

**コマンドラインを使用してルートテーブルを関連付けるには**
+ [modify-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint.html) (AWS CLI)
+ [Edit-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VpcEndpoint.html) (Tools for Windows PowerShell)

## VPC エンドポイントポリシーを編集する
<a name="edit-vpc-endpoint-policy-s3"></a>

ゲートウェイエンドポイントのエンドポイントポリシーを編集して、VPC から Amazon S3 へのエンドポイント経由のアクセスを制御できます。エンドポイントポリシーを更新した後、変更が有効になるまでに数分かかる場合があります。デフォルトポリシーでは、フルアクセスを許可します。詳細については、「[エンドポイントポリシー](vpc-endpoints-access.md)」を参照してください。

**コンソールを使用してエンドポイントポリシーを変更するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

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

1. ゲートウェイエンドポイントを選択する

1. **[Actions]** (アクション)、**[Manage policy]** (ポリシーを管理) の順に選択します。

1. **[Full Access]** (フルアクセス) を選択してサービスへのフルアクセスを許可するか、**[Custom]** (カスタム) を選択してカスタムポリシーをアタッチします。

1. **[保存]** を選択します。

Amazon S3 にアクセスするためのエンドポイントのポリシーの例は次のとおりです。

**Example 例: 特定のバケットへのアクセスを制限する**  
特定の S3 バケットへのアクセスを制限するポリシーを作成できます。これは、VPC AWS のサービス 内に S3 バケットを使用する他の がある場合に便利です。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-access-to-specific-bucket",
      "Effect": "Allow",
      "Principal": "*",
      "Action": [
         "s3:ListBucket",
         "s3:GetObject",
         "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucket_name",
        "arn:aws:s3:::bucket_name/*"
      ]
    }
  ]
}
```

**Example 例: 特定の IAM ロールへのアクセスを制限する**  
特定の IAM ロールへのアクセスを制限するポリシーを作成できます。`aws:PrincipalArn` を使用してプリンシパルへのアクセスを許可する必要があります。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-access-to-specific-IAM-role",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "ArnEquals": {
          "aws:PrincipalArn": "arn:aws:iam::111122223333:role/role_name"
        }
      }
    }
  ]
}
```

**Example 例: 特定のアカウントのユーザーへのアクセスを制限する**  
特定のアカウントへのアクセスを制限するポリシーを作成できます。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow-callers-from-specific-account",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalAccount": "111122223333"
        }
      }
    }
  ]
}
```

## ゲートウェイエンドポイントを削除する
<a name="delete-gateway-endpoint-s3"></a>

不要になったゲートウェイエンドポイントは、削除することができます。ゲートウェイエンドポイントを削除すると、エンドポイントルートがサブネットルートテーブルから削除されます。

プライベート DNS が有効になった場合、ゲートウェイエンドポイントを削除することはできません。

**コンソールを使用してゲートウェイエンドポイントを削除するには**

1. Amazon VPC コンソールの [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) を開いてください。

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

1. ゲートウェイエンドポイントを選択する

1. **[Actions]** (アクション)、**[Delete VPC endpoints]** (VPC エンドポイントを削除) の順に選択します。

1. 確認を求められたら、**delete** をクリックしてください。

1. **[削除]** を選択します。

**コマンドラインを使用してゲートウェイエンドポイントを削除するには**
+ [delete-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-vpc-endpoints.html) (AWS CLI)
+ [Remove-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2VpcEndpoint.html) (Tools for Windows PowerShell)