ディレクトリバケットのアクセスポイントの作成 - Amazon Simple Storage Service

ディレクトリバケットのアクセスポイントの作成

ディレクトリバケットと同様に、アクセスポイントはアベイラビリティーゾーンまたは専有ローカルゾーンに作成できます。アクセスポイントは、それに関連付けられているディレクトリバケットと同じゾーンに作成する必要があります。

アクセスポイントは、1 つの Amazon S3 ディレクトリバケットにのみ関連付けられます。AWS アカウントでディレクトリバケットを使用する場合は、まずディレクトリバケットを作成する必要があります。ディレクトリバケットの作成の詳細については、「アベイラビリティーゾーンでのディレクトリバケットの作成」または「Local Zone でのディレクトリバケットの作成」を参照してください。

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

AWS Management Console、AWS CLI、REST API、または AWS SDK を使用して、任意のディレクトリバケットのアクセスポイントを作成できます。各アクセスポイントは 1 つのディレクトリバケットに関連付けられており、バケットごとに数百のアクセスポイントを作成できます。アクセスポイントを作成するときは、アクセスポイントの名前と関連付けるディレクトリバケットを選択します。アクセスポイント名は、ユーザーが指定したベース名、バケットの場所のゾーン ID を含むサフィックス、および --xa-s3 で構成されます。例えば、myaccesspoint-zoneID--xa-s3 などです。仮想プライベートクラウド (VPC) を介してアクセスポイントへのアクセスを制限することもできます。次に、ディレクトリバケット名を使用するのと同様に、その名前を使用して、アクセスポイントを介してデータの読み取りと書き込みをすぐに開始できます。

アクセスポイントのスコープを使用すると、アクセスポイントを介したディレクトリバケットへのアクセスを特定のプレフィックスまたは API オペレーションに制限できます。アクセスポイントにスコープを追加しない場合、アクセスポイントを介してアクセスすると、ディレクトリバケット内のすべてのプレフィックスとすべての API オペレーションをバケット内のオブジェクトに対して実行できます。アクセスポイントを作成したら、AWS CLI、AWS SDK、または REST API を使用してスコープを追加、変更、または削除できます。詳細については、「ディレクトリバケットのアクセスポイントの範囲を管理する」を参照してください。

アクセスポイントを作成したら、アクセスポイントの IAM リソースポリシーを設定できます。詳細については、「アクセスポイントポリシーの表示、編集、または削除」を参照してください。

注記

ディレクトリバケット画面からディレクトリバケットのアクセスポイントを作成することもできます。この場合、ディレクトリバケット名が提供されるため、アクセスポイントの作成時にバケットを選択する必要はありません。詳細については、「ディレクトリバケットの一覧表示」を参照してください。

ディレクトリバケットのアクセスポイントを作成するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/ を開きます。

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

  3. 左のナビゲーションペインで、[ディレクトリバケットのアクセスポイント] を選択します。

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

  5. 自分のアカウントまたは別のアカウントのディレクトリバケットのアクセスポイントを作成できます。別のアカウントのディレクトリバケットのアクセスポイントを作成するには、次の手順を実行します。

    注記

    別の AWS アカウント でバケットを使用している場合は、バケット所有者がアクセスポイントからのリクエストを許可するようにバケットポリシーを更新する必要があります。バケットポリシーの例については、「クロスアカウントアクセスポイントへのアクセス許可の付与」を参照してください。

    1. [ディレクトリバケット] フィールドで、[別のアカウントのバケットを指定する] を選択します。

    2. [バケット所有者のアカウント ID] フィールドに、バケットを所有する AWS アカウント ID を入力します。

    3. [バケット名] フィールドに、ベース名とゾーン ID を含むバケットの名前を入力します。例えば、bucket-base-name--zone-id--x-s3

  6. 自分のアカウントでディレクトリバケットのアクセスポイントを作成するには:

    1. [ディレクトリバケット] フィールドで、[このアカウントのバケットを選択する] を選択します。

    2. [バケット名] フィールドに、ベース名とゾーン ID を含むバケットの名前を入力します。例えば、bucket-base-name--zone-id--x-s3。リストからバケットを選択するには、[S3 を参照] を選択し、ディレクトリバケットを選択します。

  7. [アクセスポイント名][ベース名] フィールドに、アクセスポイントの名前を入力します。ゾーン ID と完全なアクセスポイント名が表示されます。アクセスポイントの名前付けの詳細については、「ディレクトリバケットのアクセスポイントの命名規則」を参照してください。

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

  9. (オプション) [アクセスポイントの範囲] で、このアクセスポイントに範囲を適用するには、[プレフィックスまたはアクセス許可を使用してこのアクセスポイントの範囲を制限する] を選択します。

    1. ディレクトリバケット内のプレフィックスへのアクセスを制限するには、[プレフィックス] に 1 つ以上のプレフィックスを入力します。別のプレフィックスを追加するには、[プレフィックスを追加] を選択します。プレフィックスを削除するには、[削除] を選択します。

      注記

      アクセスポイントのスコープには、プレフィックス全体で合計 512 文字の文字数制限があります。残りの文字数は、[プレフィックスを追加] の下で確認できます。

    2. [アクセス許可] で、アクセスポイントが許可する 1 つ以上の API オペレーションを選択します。データオペレーションを削除するには、データオペレーション名の横にある [X] を選択します。

  10. アクセスポイントにスコープを適用せず、ディレクトリバケット内のすべてのプレフィックスとアクセスポイントを介したすべての API オペレーションへのアクセスを許可するには、[アクセスポイントの範囲] で、[バケット全体へのアクセスを適用] を選択します。

  11. [ディレクトリバケットのアクセスポイントを作成] を選択します。アクセスポイント名とそのその他の情報が、[ディレクトリバケットのアクセスポイント] リストに表示されます。

次のコマンド例では、アカウント 111122223333 でバケット amzn-s3-demo-bucket--zone-id--x-s3 のアクセスポイントを example-ap という名前で作成します。

aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3

VPC 経由でアクセスポイントへのアクセスを制限するには、--vpc パラメータと VPC ID を含めます。

aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3 --vpc vpc-id

クロスアカウントバケットのアクセスポイントを作成するときは、--bucket-account-id パラメータを含めます。次のコマンド例では、AWS アカウント 444455556666 が所有するバケット amzn-s3-demo-bucket--zone-id--x-s3 のアクセスポイントを AWS アカウント 111122223333 に作成します。

aws s3control create-access-point --name example-ap--zoneID--xa-s3 --account-id 111122223333 --bucket amzn-s3-demo-bucket--zone-id--x-s3 --bucket-account-id 444455556666

詳細および例については、「AWS CLI コマンドリファレンス」の「create-access-point」を参照してください。

次のコマンド例では、アカウント 111122223333 でバケット amzn-s3-demo-bucket--zone-id--x-s3 のアクセスポイントを example-ap という名前で作成し、VPC vpc-id (オプション) を介してアクセスを制限します。

PUT /v20180820/accesspoint/example-ap--zoneID--xa-s3 HTTP/1.1 Host: s3express-control.region.amazonaws.com x-amz-account-id: 111122223333 <?xml version="1.0" encoding="UTF-8"?> <CreateAccessPointRequest> <Bucket>amzn-s3-demo-bucket--zone-id--x-s3s</Bucket> <BucketAccountId>111122223333</BucketAccountId> <VpcConfiguration> <VpcId>vpc-id</VpcId> </VpcConfiguration> </CreateAccessPointRequest>

レスポンス:

HTTP/1.1 200 <?xml version="1.0" encoding="UTF-8"?> <CreateAccessPointResult> <AccessPointArn> "arn:aws:s3express:region:111122223333:accesspoint/example-ap--zoneID--xa-s3" </AccessPointArn> <Alias>example-ap--zoneID--xa-s3</Alias> </CreateAccessPointResult>

AWS SDK を使用してアクセスポイントを作成できます。詳細については、「Amazon Simple Storage Service API Reference」の「list of supported SDKs」を参照してください。