

# S3 on Outposts の AWS PrivateLink
<a name="s3-outposts-privatelink-interface-endpoints"></a>

S3 on Outposts は AWS PrivateLink をサポートしているため、仮想プライベートネットワーク内のプライベートエンドポイント経由で S3 on Outposts ストレージに直接管理アクセスを提供します。これにより、仮想プライベートクラウド (VPC) のプライベート IP アドレスを使用して、内部ネットワークアーキテクチャを簡素化し、Outposts オブジェクトストレージに対して管理オペレーションを実行できます。AWS PrivateLink を使用することで、パブリック IP アドレスやプロキシサーバーを使用する必要がなくなります。

Amazon S3 on Outposts の AWS PrivateLink では、*インターフェイス VPC エンドポイント*を仮想プライベートクラウド (VPC) でプロビジョニングし、S3 on Outposts の[バケット管理](S3OutpostsAPI.md#S3OutpostsAPIsBucket)および[エンドポイント管理](S3OutpostsAPI.md#S3OutpostsAPIs) API にアクセスできます。インターフェイス VPC エンドポイントには、VPC またはオンプレミスにデプロイしたアプリケーションから、仮想プライベートネットワーク (VPN) や AWS Direct Connect 経由で直接アクセスできます。バケット管理 API とエンドポイント管理 API には、AWS PrivateLink を介してアクセスできます。AWS PrivateLink は、[データ転送](S3OutpostsAPI.md#S3OutpostsAPIsObject) API オペレーション (GET、PUT、同様の API など) をサポートしていません。これらのオペレーションは、S3 on Outposts エンドポイントとアクセスポイントの設定を通じて既にプライベートに転送されています。詳細については、「[S3 on Outposts のネットワーキング](S3OutpostsNetworking.md)」を参照してください。

インターフェイスエンドポイントは、VPC 内のサブネットからプライベート IP アドレスが割り当てられた 1 つ以上の Elastic Network Interface (ENI) で表されます。S3 on Outposts のインターフェイスエンドポイントに対するリクエストは、AWS ネットワーク上の S3 on Outposts バケット管理およびエンドポイント管理 API に自動的にルーティングされます。AWS Direct Connect または AWS Virtual Private Network (Site-to-Site VPN) を介して、オンプレミスのアプリケーションから VPC 内のインターフェイスエンドポイントにアクセスすることもできます。VPC をオンプレミスネットワークに接続する方法の詳細については、[https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)および [https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)を参照してください。

次の図に示すように、インターフェイスエンドポイントは、AWS ネットワークおよび AWS PrivateLink を介してリクエストを S3 on Outposts のバケット管理およびエンドポイント管理 API にルーティングします。

![\[データフロー図は、インターフェイスエンドポイントが Outposts バケットおよびエンドポイント管理 API 上の S3 へのリクエストをどのようにルーティングするかを説明しています。\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/s3-outposts/images/s3-outposts-interface-endpoints.png)


インターフェイスエンドポイントの一般的な情報については、*AWS PrivateLink ガイド*の[インターフェイス VPC エンドポイント (AWS PrivateLink) ](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html)を参照してください。

**Topics**
+ [制約と制限](#s3-outposts-privatelink-restrictions)
+ [S3 on Outposts インターフェイスエンドポイントへのアクセス](#s3-outposts-accessing-s3-interface-endpoints)
+ [オンプレミスの DNS 設定の更新](#s3-outposts-updating-on-premises-dns-config)
+ [S3 on Outposts 用の VPC エンドポイントの作成](#s3-outposts-creating-vpc)
+ [S3 on Outposts のバケットポリシーと VPC エンドポイントポリシーの作成](#s3-outposts-creating-vpc-endpoint-policy)

## 制約と制限
<a name="s3-outposts-privatelink-restrictions"></a>

AWS PrivateLink を介して S3 on Outposts のバケット管理およびエンドポイント管理 API にアクセスする場合は、VPC の制限が適用されます。詳細については、*AWS PrivateLink ガイド*の [インターフェイスエンドポイントのプロパティと制限](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) と [AWS PrivateLink クォータ](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) を参照してください。

また、AWS PrivateLink では、以下の機能はサポートされていません。
+ [連邦情報処理規格 (FIPS) エンドポイント](https://aws.amazon.com/compliance/fips/)
+ [S3 on Outposts データ転送 API](S3OutpostsAPI.md#S3OutpostsAPIsObject)、GET、PUT、および類似のオブジェクト API オペレーションなど。
+ プライベート DNS

## S3 on Outposts インターフェイスエンドポイントへのアクセス
<a name="s3-outposts-accessing-s3-interface-endpoints"></a>

AWS PrivateLink を使用して S3 on Outposts バケット管理およびエンドポイント管理 API にアクセスするには、エンドポイント固有の DNS 名を使用するようにアプリケーションを更新する必要があります。**インターフェイスエンドポイントを作成すると、AWS PrivateLink は、Amazon S3 はエンドポイント固有の 2 つのタイプの S3 on Outposts 名 (*Regional* および *zonal*) を生成します。
+ **Regional DNS 名** – 一意の VPC エンドポイント ID、サービス識別子、AWS リージョン、および `vpce.amazonaws.com` 、`vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com` などが含まれます。
+ **Zonal DNS 名**— 一意の VPC エンドポイント ID、アベイラビリティーゾーン、サービス識別子、AWS リージョン、および `vpce.amazonaws.com` たとえば `vpce-1a2b3c4d-5e6f-us-east-1a.s3-outposts.us-east-1.vpce.amazonaws.com` が含まれます。このオプションは、アーキテクチャがアベイラビリティーゾーンを分離する場合に使用できます。例えば、障害を隔離し、リージョン間のデータ転送コストを削減するために Zonal DNS 名を使用できます。

**重要**  
S3 on Outposts のインターフェイスエンドポイントは、パブリック DNS ドメインから解決されます。S3 on Outposts はプライベート DNS をサポートしていません。すべてのバケット管理およびエンドポイント管理 API には `--endpoint-url` パラメータを使用します。

### AWS CLI の例
<a name="s3-outposts-privatelink-aws-cli-examples"></a>

`--region` および `--endpoint-url` パラメータを使用して S3 on Outposts インターフェイスエンドポイントを介してバケット管理およびエンドポイント管理 API にアクセスします。

**Example : エンドポイント URL を使用して S3 コントロール API のバケットをリスト化します。**  
次の例では、リージョン `us-east-1`、VPC エンドポイント URL `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com`、およびアカウント ID `111122223333` を適切な情報に置き換えます。  

```
aws s3control list-regional-buckets --region us-east-1 --endpoint-url https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com --account-id 111122223333
```

### AWS SDK の例
<a name="s3-outposts-privatelink-aws-sdk-examples"></a>

S3 on Outpostsインターフェイスエンドポイントの S3 コントロール API にアクセスするように、SDK を最新バージョンに更新して、エンドポイント URL を使用するようにクライアントを設定します。

------
#### [ SDK for Python (Boto3) ]

**Example : エンドポイント URL を使用して S3 コントロール API にアクセスする**  
次の例では、リージョン `us-east-1`と VPC エンドポイント URLURL `vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com` を適切な情報に置き換えます。  

```
control_client = session.client(
service_name='s3control',
region_name='us-east-1',
endpoint_url='https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com'
)
```
詳細については、*Boto3 デベロッパーガイド*の「[Amazon S3 の AWS PrivateLink](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-privatelink.html)」を参照してください。

------
#### [ SDK for Java 2.x ]

**Example : エンドポイント URL を使用して S3 コントロール API にアクセスする**  
次の例では、VPC エンドポイント URL `vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com` とリージョン `Region.US_EAST_1` を適切な情報に置き換えます。  

```
// control client
Region region = Region.US_EAST_1;
s3ControlClient = S3ControlClient.builder().region(region)
                                 .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.s3-outposts.us-east-1.vpce.amazonaws.com"))
                                 .build()
```
詳細については、「*AWS SDK for Java API リファレンス*」の「[https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3control/S3ControlClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3control/S3ControlClient.html)」を参照してください。

------

## オンプレミスの DNS 設定の更新
<a name="s3-outposts-updating-on-premises-dns-config"></a>

エンドポイント固有の DNS 名を使用して S3 on Outposts バケット管理およびエンドポイント管理 API にアクセスする場合、オンプレミス DNS リゾルバーを更新する必要はありません。パブリック S3 on Outposts DNS ドメインからのインターフェイスエンドポイントのプライベート IP アドレスを使用して、エンドポイント固有の DNS 名を解決できます。

## S3 on Outposts 用の VPC エンドポイントの作成
<a name="s3-outposts-creating-vpc"></a>

S3 on Outposts の VPC インターフェイスエンドポイントを作成するには、「*AWS PrivateLink ガイド*」の「[VPC エンドポイントの作成](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)」を参照してください。

## S3 on Outposts のバケットポリシーと VPC エンドポイントポリシーの作成
<a name="s3-outposts-creating-vpc-endpoint-policy"></a>

VPC エンドポイントに S3 on Outposts へのアクセスをコントロールするエンドポイントポリシーをアタッチできます。また、S3 on Outposts バケットポリシーの `aws:sourceVpce` 条件を使用して、特定の VPC エンドポイントからの特定のバケットへのアクセスを制限することもできます。VPC エンドポイントポリシーを使用すると、S3 on Outposts バケット管理 API およびエンドポイント管理 API へのアクセスを制御できます。バケットポリシーを使用すると、S3 on Outposts バケット管理 API へのアクセスを制御できます。ただし、`aws:sourceVpce` を使用して S3 on Outposts のオブジェクトアクションへのアクセスを管理することはできません。

S3 on Outposts のアクセスポリシーでは、以下の情報が指定されています。
+ アクションを許可または拒否する AWS Identity and Access Management (IAM) プリンシパル。
+ 許可または拒否されるS3 コントロールアクション。
+ アクションが許可または拒否される S3 on Outposts リソース。

次の例は、バケットまたはエンドポイントへのアクセスを制限するポリシーを示しています。VPC 接続の詳細については、[ ホワイトペーパー ](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)Amazon Virtual Private Cloud 接続オプションAWSの[ネットワークから VPC への接続オプション](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/welcome.html) を参照してください。

**重要**  
このセクションで説明している VPC エンドポイントに例のポリシーを適用すると、バケットへのアクセスが意図せずにブロックされる場合があります。VPC エンドポイントからの接続に対するバケットのアクセスを制限するバケットのアクセス許可により、バケットへのすべての接続がブロックされる場合があります。この問題を修正する方法については、[バケットポリシーの VPC または VPC エンドポイント ID が間違っています。「ポリシーを修正してバケットにアクセスできるようにするにはどうすれば良いですか?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/)」(*サポート ナレッジセンター*) を参照してください。
次のバケットポリシーの例を使用する前に、VPC エンドポイントの ID をユースケースに応じた値に置き換えてください。そうしないと、バケットにアクセスできません。
ポリシーで、特定の VPC エンドポイントからの S3 on Outposts バケットへのアクセスだけが許可されている場合、コンソールリクエストは指定の VPC エンドポイントから送信されないため、そのバケットのコンソールアクセスは無効になります。

**Topics**
+ [例: VPC エンドポイントから特定のバケットへのアクセスの制限](#privatelink-example-restrict-access-to-bucket)
+ [例:S3 on Outposts バケットポリシーの特定の VPC エンドポイントからのアクセスを拒否する](#s3-outposts-privatelink-example-deny-access-from-vpc-endpoint)

### 例: VPC エンドポイントから特定のバケットへのアクセスの制限
<a name="privatelink-example-restrict-access-to-bucket"></a>

特定の S3 on Outposts バケットへのアクセスのみを制限するエンドポイントポリシーを作成できます。次のポリシーは、GetBucketPolicy アクションのアクセスを `example-outpost-bucket` のみに制限します。このポリシーを使用するには、例の値を独自の値に置き換えます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy1415115909151",
    "Statement": [
        {
            "Sid": "Access-to-specific-bucket-only",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": "s3-outposts:GetBucketPolicy",
            "Effect": "Allow",
            "Resource": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket"
        }
    ]
}
```

------

### 例:S3 on Outposts バケットポリシーの特定の VPC エンドポイントからのアクセスを拒否する
<a name="s3-outposts-privatelink-example-deny-access-from-vpc-endpoint"></a>

次の S3 on Outposts バケットポリシーは、`vpce-1a2b3c4d`VPC エンドポイントを使用する `example-outpost-bucket` バケットの GetBucketPolicy へのアクセスを拒否します。

`aws:sourceVpce` 条件はエンドポイントを指定し、VPC エンドポイントリソースの Amazon リソースネーム (ARN) を必要とせず、エンドポイント ID のみを指定します。このポリシーを使用するには、例の値を独自の値に置き換えます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Policy1415115909152",
    "Statement": [
        {
            "Sid": "Deny-access-to-specific-VPCE",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": "s3-outposts:GetBucketPolicy",
            "Effect": "Deny",
            "Resource": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "vpce-1a2b3c4d"
                }
            }
        }
    ]
}
```

------