HeadBucket を使用して、S3 on Outposts バケットが存在し、アクセス許可があるかどうかを調べる - Amazon S3 on Outposts

HeadBucket を使用して、S3 on Outposts バケットが存在し、アクセス許可があるかどうかを調べる

オブジェクトは、Amazon S3 on Outposts に保存される基本エンティティです。すべてのオブジェクトはバケット内に保存されます。Outpost バケット内の任意のオブジェクトにアクセスするには、アクセスポイントを使用する必要があります。オブジェクト操作のためにバケットを指定するときには、アクセスポイントの Amazon リソースネーム (ARN) またはアクセスポイントエイリアスを使用します。アクセスポイントエイリアスの詳細については、「S3 on Outposts アクセスポイントでのバケット形式のエイリアスの使用」を参照してください。

次の例は、S3 on Outposts アクセスポイントの ARN 形式を示し、これは、Outpost が属するリージョンの AWS リージョン コード、AWS アカウント ID、Outpost ID、アクセスポイント名を含みます。

arn:aws:s3-outposts:region:account-id:outpost/outpost-id/accesspoint/accesspoint-name

S3 on Outposts ARN の詳細については、「S3 on Outposts のリソース ARN」を参照してください。

注記

Amazon S3 on Outposts では、オブジェクトデータは常に Outpost に保存されます。AWS が Outpost ラックを設置すると、データの常駐要件を満たすために、データは Outpost にローカルに保たれます。オブジェクトが Outpost を離れたり、AWS リージョン 外に出たりすることはありません。AWS Management Consoleはリージョン内でホストされるため、コンソールを使用して Outpost にオブジェクトをアップロードしたり、管理したりすることはできません。ただし REST API、AWS Command Line Interface (AWS CLI)、および AWS SDK を使用して、アクセスポイントを介してオブジェクトのアップロードと管理を行うことができます。

以下の AWS Command Line Interface (AWS CLI) と AWS SDK for Java の例は、HeadBucket API オペレーショを使用して、Amazon S3 on Outposts バケットが存在し、そのバケットにアクセスする許可があるかどうかを調べる方法を示しています。詳細については、「Amazon Simple Storage Service API リファレンス」の「HeadBucket」を参照してください。

次の S3 on Outposts AWS CLI の例では、head-bucket コマンドを使用して、バケットが存在し、そのバケットにアクセスする許可があるかどうかを調べます。このコマンドを使用するには、それぞれの user input placeholder をユーザー自身の情報に置き換えます。詳細については、「AWS CLI リファレンス」の「head-bucket」を参照してください。

aws s3api head-bucket --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point

次の S3 on Outposts の例は、バケットが存在するかどうか、また、そのバケットにアクセスする許可があるかどうかを調べる方法を示しています。この例を使用するには、Outpost のアクセスポイント ARN を指定します。詳細については、「Amazon Simple Storage Service API リファレンス」の「HeadBucket」を参照してください。

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.HeadBucketRequest; public class HeadBucket { public static void main(String[] args) { String accessPointArn = "*** access point ARN ***"; try { // This code expects that you have AWS credentials set up per: // https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .enableUseArnRegion() .build(); s3Client.headBucket(new HeadBucketRequest(accessPointArn)); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }