

# アクセスポイントの作成
<a name="creating-access-points"></a>

S3 アクセスポイントは、AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して作成できます。アクセスポイントは、バケット、Amazon FSx for ONTAP ボリューム、Amazon FSx for OpenZFS ボリュームなどのデータソースにアタッチされた名前付きネットワークエンドポイントです。

デフォルトでは、リージョンごとに AWS アカウントあたり最大 10,000 個のアクセスポイントを作成できます。1 つのリージョンで 1 つのアカウントに 10,000 個を超えるアクセスポイントが必要な場合は、サービスクォータの引き上げをリクエストできます。サービスクォータと引き上げリクエストの詳細については、「*AWS 全般のリファレンス*」の「[AWS Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)」を参照してください。

**Topics**
+ [S3 バケットを使用してアクセスポイントを作成する](#create-access-points)
+ [Amazon FSx を使用してアクセスポイントを作成する](#create-access-points-with-fsx)
+ [Virtual Private Cloud に制限されたアクセスポイントの作成](access-points-vpc.md)
+ [汎用バケットのアクセスポイントへのパブリックアクセスの管理](access-points-bpa-settings.md)

## S3 バケットを使用してアクセスポイントを作成する
<a name="create-access-points"></a>

アクセスポイントは、1 つの Amazon S3 汎用バケットにのみ関連付けられます。AWS アカウント でバケットを使用する場合は、まずバケットを作成する必要があります。バケットの作成の詳細については、[Amazon S3 汎用バケットの作成、設定、操作](creating-buckets-s3.md)」を参照してください。

バケット名とバケット所有者のアカウント ID がわかっていれば、別の AWS アカウント のバケットに関連するクロスアカウントアクセスポイントを作成することもできます。ただし、クロスアカウントアクセスポイントを作成しても、バケット所有者からアクセス権が付与されるまで、バケット内のデータへのアクセスは許可されません。バケット所有者は、バケットポリシーを通じて、アクセスポイント所有者のアカウント (お客様のアカウント) にバケットへのアクセス権を付与する必要があります。詳細については、「[クロスアカウントアクセスポイントへのアクセス許可の付与](access-points-policies.md#access-points-cross-account)」を参照してください。

### S3 コンソールの使用
<a name="access-points-create-ap"></a>

**アクセスポイントを作成するには**

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

1. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョン の名前をクリックします。次に、アクセスポイントを作成するリージョンを選択します。アクセスポイントは、関連付けられたバケットと同じリージョンに作成する必要があります。

1. 左のナビゲーションペインで、[**アクセスポイント**] を選択します。

1. [**アクセスポイント**] ページで、[**アクセスポイントの作成**] を選択します。

1. **[アクセスポイント名]** フィールドに、アクセスポイントの名前を入力します。アクセスポイントの名前付けの詳細については、「[アクセスポイントの命名規則](access-points-restrictions-limitations-naming-rules.md#access-points-names)」を参照してください。

1. **[データソース]** には、アクセスポイントで使用する S3 バケットを指定します。

   アカウントのバケットを使用するには、**[このアカウント内のバケットを選択]** を選択し、バケット名を入力または参照します。

   別の AWS アカウント でバケットを使用するには、**[別のアカウントのバケットを指定]** を選択し、バケットの AWS アカウント ID と名前を入力します。別の AWS アカウント でバケットを使用している場合は、バケット所有者がアクセスポイントからのリクエストを許可するようにバケットポリシーを更新する必要があります。バケットポリシーの例については、「[クロスアカウントアクセスポイントへのアクセス許可の付与](access-points-policies.md#access-points-cross-account)」を参照してください。
**注記**  
FSx for OpenZFS ボリュームをデータソースとして使用する方法については、「[Amazon FSx を使用してアクセスポイントを作成する](#create-access-points-with-fsx)」を参照してください。

1. **[インターネット]** または **[仮想プライベートクラウド (VPC)]** のいずれかの **[ネットワークオリジン]** を選択します。**[仮想プライベートクラウド (VPC)]** を選択した場合は、アクセスポイントで使用する **[VPC ID]** を入力します。

   アクセスポイントのネットワークオリジンの詳細については、「[Virtual Private Cloud に制限されたアクセスポイントの作成](access-points-vpc.md)」を参照してください。

1. [**Block Public Access settings for this Access Point**] (このアクセスポイントのパブリックアクセス設定をブロック) で、アクセスポイントに適用するパブリックアクセスブロック設定を選択します。デフォルトでは、新しいアクセスポイントに対してすべてのブロックパブリックアクセス設定が有効になります。これらの設定を特に無効にする必要がある場合を除いて、すべての設定を有効にしておくことをお勧めします。
**注記**  
アクセスポイントの作成後は、アクセスポイントパブリックアクセスのブロック設定を変更できません。

   アクセスポイントで Amazon S3 パブリックアクセスブロックを使用することについて詳細は、「[汎用バケットのアクセスポイントへのパブリックアクセスの管理](access-points-bpa-settings.md)」を参照してください。

1. (オプション) [**Access Point policy - *optional***] (アクセスポイントポリシー - オプション) で、アクセスポイントポリシーを指定します。ポリシーを保存する前に、セキュリティ警告、エラー、一般的な警告、および提案を解決してください。アクセスポイントポリシーの指定の詳細については、「[アクセスポイントのポリシーの例](access-points-policies.md#access-points-policy-examples)」を参照してください。

1. [**アクセスポイントの作成**] を選択します。

### AWS CLI の使用
<a name="creating-access-point-cli"></a>

以下の例では、アカウント *`111122223333`* のバケット *`amzn-s3-demo-bucket`* に「*`example-ap`*」という名前のアクセスポイントを作成します。アクセスポイントを作成するには、以下を指定するリクエストを Amazon S3 に送信します。
+ アクセスポイント名。命名規則の詳細については、「[アクセスポイントの命名規則](access-points-restrictions-limitations-naming-rules.md#access-points-names)」を参照してください。
+ アクセスポイントを関連付けるバケットの名前。
+ アクセスポイントを所有している AWS アカウントのアカウント ID。

```
aws s3control create-access-point --name example-ap --account-id 111122223333 --bucket amzn-s3-demo-bucket
```

別の AWS アカウント でバケットを使用してアクセスポイントを作成する場合は、`--bucket-account-id` パラメータを含めてください。次のコマンド例では、AWS アカウント *`444455556666`* にあるバケット *`amzn-s3-demo-bucket2`* を使用してAWS アカウント *`111122223333`* にアクセスポイントを作成します。

```
aws s3control create-access-point --name example-ap --account-id 111122223333 --bucket amzn-s3-demo-bucket --bucket-account-id 444455556666
```

### REST API の使用
<a name="creating-access-point-rest-api"></a>

REST API を使用してアクセスポイントを作成できます。詳細については、「**Amazon Simple Storage Service 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)」を参照してください。

## Amazon FSx を使用してアクセスポイントを作成する
<a name="create-access-points-with-fsx"></a>

Amazon FSx コンソール、AWS CLI、または API を使用して、アクセスポイントを作成して FSx for OpenZFS ボリュームにアタッチできます。アタッチしたら、S3 オブジェクト API を使用してファイルデータにアクセスできます。データは引き続き Amazon FSx ファイルシステムに存在し、既存のワークロードから直接アクセスできます。バックアップ、スナップショット、ユーザーおよびグループのクォータ、圧縮など、すべての FSx for OpenZFS ストレージ管理機能を使用してストレージを管理し続けます。

アクセスポイントを作成して FSx for OpenZFS ボリュームにアタッチする手順については、「*FSx for OpenZFS ユーザーガイド*」の「[アクセスポイントの作成](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/create-access-points.html)」を参照してください。

# Virtual Private Cloud に制限されたアクセスポイントの作成
<a name="access-points-vpc"></a>

アクセスポイントを作成するときに、そのアクセスポイントをインターネットからアクセス可能にするか、特定の 仮想プライベートクラウド (VPC) からのリクエストにのみアクセスを制限するかを指定できます。インターネットからアクセス可能なアクセスポイントは、`Internet` をネットワークオリジンとすると言います。この種のアクセスポイントは、インターネット上のどこからでも利用できます。ただし、このアクセスポイントや、基となるデータソース、関連リソース (リクエストされたオブジェクトなど) に関する他のすべてのアクセス制限に従うことを条件とします。指定された VPC からのみアクセス可能なアクセスポイントは `VPC` をネットワークオリジンとします。Amazon S3 は、アクセスポイントに対するその VPC からのリクエストを除いて、他のすべてのリクエストを拒否します。

**重要**  
アクセスポイントのネットワークオリジンは、アクセスポイントの作成時にのみ指定できます。アクセスポイントの作成後は、そのネットワークオリジンを変更できません。

アクセスポイントを VPC からのアクセスにのみ制限するには、アクセスポイントを作成するリクエストに `VpcConfiguration` パラメータを含めます。`VpcConfiguration` パラメータには、アクセスポイントを使用できるようにする VPC ID を指定します。アクセスポイントを介してリクエストが行われた場合、リクエストは VPC から発信されている必要があり、そうでない場合、Amazon S3 はそれを拒否します。

アクセスポイントのネットワークオリジンを取得するには、AWS CLI、AWS SDK、または REST API を使用します。アクセスポイントに VPC 設定が指定されている場合、そのネットワークオリジンは `VPC` です。それ以外の場合、アクセスポイントのネットワークオリジンは `Internet` です。

## 例: アクセスポイントの作成と VPC ID への制限
<a name="access-points-vpc-example1"></a>

次の例では、アカウント `123456789012` のバケット `amzn-s3-demo-bucket` に対して `vpc-1a2b3c` VPC からのアクセスのみを許可する `example-vpc-ap` という名前のアクセスポイントを作成します。次に、新しいアクセスポイントのネットワークオリジンが `VPC` であることを確認します。

------
#### [ AWS CLI ]

```
aws s3control create-access-point --name example-vpc-ap --account-id 123456789012 --bucket amzn-s3-demo-bucket --vpc-configuration VpcId=vpc-1a2b3c
```

```
aws s3control get-access-point --name example-vpc-ap --account-id 123456789012

{
    "Name": "example-vpc-ap",
    "Bucket": "amzn-s3-demo-bucket",
    "NetworkOrigin": "VPC",
    "VpcConfiguration": {
        "VpcId": "vpc-1a2b3c"
    },
    "PublicAccessBlockConfiguration": {
        "BlockPublicAcls": true,
        "IgnorePublicAcls": true,
        "BlockPublicPolicy": true,
        "RestrictPublicBuckets": true
    },
    "CreationDate": "2019-11-27T00:00:00Z"
}
```

------

VPC でアクセスポイントを使用するには、VPC エンドポイントのアクセスポリシーを変更する必要があります。VPC エンドポイントは、VPC から Amazon S3 へのトラフィックフローを許可します。これらのエンドポイントには、VPC 内のリソースに対して Amazon S3 とのやり取りを許可する方法を制御するアクセスコントロールポリシーがあります。アクセスポイントを経由した VPC から Amazon S3 へのリクエストが成功するのは、VPC エンドポイントポリシーがアクセスポイントおよび基となるバケットの両方へのアクセスを許可した場合のみです。

**注記**  
VPC 内でのみリソースにアクセスできるようにするには、VPC エンドポイントエンドポイントに対して[プライベートホストゾーン](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html)を必ず作成してください。プライベートホストゾーンを使うには、[VPC 設定を変更](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating)して、[VPC のネットワーク属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) `enableDnsHostnames` と `enableDnsSupport` を `true` に設定してください。

次のポリシーステートメントの例では、`GetObject` という名前のバケットと `awsexamplebucket1` という名前のアクセスポイントに対する `example-vpc-ap` の呼び出しを許可するように VPC エンドポイントを設定します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Principal": "*",
        "Action": [
            "s3:GetObject"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::awsexamplebucket1/*",
            "arn:aws:s3:us-west-2:123456789012:accesspoint/example-vpc-ap/object/*"
        ]
    }]
}
```

------

**注記**  
この例の `"Resource"` 宣言では、Amazon リソースネーム (ARN) を使用してアクセスポイントを指定します。アクセスポイントの ARN の詳細については、「[ARN、アクセスポイントエイリアス、または仮想ホスト形式の URI を使用したアクセスポイントの参照](access-points-naming.md)」を参照してください。

VPC エンドポイントポリシーの詳細については、*VPC ユーザーガイド*の「[Amazon S3 のエンドポイントポリシーの使用](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)」を参照してください。

VPC エンドポイントを使用してアクセスポイントを作成するチュートリアルについては、「[Managing Amazon S3 access with VPC endpoints and access points](https://aws.amazon.com/blogs/storage/managing-amazon-s3-access-with-vpc-endpoints-and-s3-access-points/)」を参照してください。

## 例: FSx for OpenZFS ボリュームにアタッチされたアクセスポイントを作成して VPC ID に制限する
<a name="access-points-vpc-example2"></a>

Amazon FSx コンソール、AWS CLI、または API を使用して、FSx for OpenZFS ボリュームにアタッチされたアクセスポイントを作成できます。アタッチしたら、S3 オブジェクト API を使用して、指定された VPC からファイルデータにアクセスできます。

FSx for OpenZFS ボリュームにアタッチされたアクセスポイントを作成および制限する手順については、「*FSx for OpenZFS ユーザーガイド*」の「[仮想プライベートクラウド (VPC) に制限されたアクセスポイントの作成](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/create-access-points.html)」を参照してください。

## 例: FSX for ONTAP ボリュームにアタッチされたアクセスポイントを作成して VPC ID に制限する
<a name="access-points-vpc-example3"></a>

Amazon FSx コンソール、AWS CLI、または API を使用して、FSx for ONTAP ボリュームにアタッチされたアクセスポイントを作成できます。アタッチしたら、S3 オブジェクト API を使用して、指定された VPC からファイルデータにアクセスできます。

FSx for ONTAP ボリュームにアタッチされたアクセスポイントを作成および制限する手順については、「[https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/access-points-for-fsxn-vpc.html](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/access-points-for-fsxn-vpc.html)」を参照してください。

# 汎用バケットのアクセスポイントへのパブリックアクセスの管理
<a name="access-points-bpa-settings"></a>

Amazon S3 アクセスポイントは、アクセスポイントごとに独立した*ブロックパブリックアクセス*設定をサポートしています。アクセスポイントを作成するときに、そのアクセスポイントに適用するブロックパブリックアクセス設定を指定できます。アクセスポイントを経由するすべてのリクエストについて、Amazon S3 は、そのアクセスポイント、基となるバケット、およびバケット所有者のアカウントに関するパブリックアクセスブロック設定を評価します。これらの設定のいずれかで、リクエストをブロックする必要があることが示されると、Amazon S3 はリクエストを拒否します。

S3 のブロックパブリックアクセス機能の詳細については、「[Amazon S3 ストレージへのパブリックアクセスのブロック](access-control-block-public-access.md)」を参照してください。

**重要**  
デフォルトでは、アクセスポイントに対してすべてのブロックパブリックアクセス設定が有効になります。アクセスポイント作成時に、不要な設定を明示的に無効にする必要があります。
Amazon FSx ファイルシステムにアタッチされたアクセスポイントを作成または使用する場合、ブロックパブリックアクセス設定をオフにすることはできません。
アクセスポイントの作成後は、アクセスポイントパブリックアクセスのブロック設定を変更できません。

**Example**  
***例: カスタムのブロックパブリックアクセス設定を使用してアクセスポイントを作成する***  
この例では、デフォルトではないブロックパブリックアクセス設定を使用して、アカウント `example-ap` のバケット `amzn-s3-demo-bucket` に対して`123456789012` という名前のアクセスポイントを作成します。次に、新しいアクセスポイントの設定を取得して、ブロックパブリックアクセス設定を確認します。  

```
aws s3control create-access-point --name example-ap --account-id 123456789012 --bucket amzn-s3-demo-bucket--public-access-block-configuration BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=true,RestrictPublicBuckets=true
```

```
aws s3control get-access-point --name example-ap --account-id 123456789012

{
    "Name": "example-ap",
    "Bucket": "amzn-s3-demo-bucket",
    "NetworkOrigin": "Internet",
    "PublicAccessBlockConfiguration": {
        "BlockPublicAcls": false,
        "IgnorePublicAcls": false,
        "BlockPublicPolicy": true,
        "RestrictPublicBuckets": true
    },
    "CreationDate": "2019-11-27T00:00:00Z"
}
```