Amazon S3 のリソース - Amazon Simple Storage Service

Amazon S3 のリソース

AWS では、次の一般的な Amazon リソースネーム (ARN) 形式でリソースを識別します。

arn:partition:service:region:namespace:relative-id

ARN の詳細については、AWS 全般のリファレンスの「Amazon リソースネーム (ARN)」を参照してください。

リソースの詳細については、IAM ユーザーガイドの「IAM JSON ポリシーの要素: Resource」を参照してください。

Amazon S3 の ARN では AWS リージョンと名前空間は除外されますが、以下のものが含まれます。

  • パーティションaws は共通のパーティション名です。リソースが中国 (北京) リージョンにある場合は、aws-cn がパーティション名になります。

  • サービスs3

  • 相対 IDbucket-name または bucket-name/object-key。ワイルドカードを使用できます。

Amazon S3 のリソースの ARN 形式は、以下のように短くなります。

arn:aws:s3:::bucket_name/key_name

Amazon S3 のリソースの一覧については、「Amazon S3 のアクション、リソース、条件キー」を参照してください。

S3 バケットの ARN は、Amazon S3 コンソールのアクセス許可の [Bucket Policy (バケットポリシー)] または [CORS configuration (CORS 設定)] ページで確認することができます。詳細については、Amazon Simple Storage Service コンソールユーザーガイドの以下のトピックを参照してください。

Amazon S3 の ARN の例

以下に、Amazon S3 リソースの ARN の例を示します。

指定されたバケット名とオブジェクトキー

この ARN は、examplebucket バケットの /developers/design_info.doc オブジェクトを指しています。

arn:aws:s3:::examplebucket/developers/design_info.doc

ワイルドカード

リソース ARN の一部にワイルドカードを使用することができます。ARN セグメント (コロンで区切られている部分) でワイルドカード文字 (*?) を使用できます。アスタリスク (*) は 0 個以上の文字の任意の組み合わせを表し、疑問符 (?) は任意の 1 文字を表します。各セグメントで複数の * または ? の文字を使用することができますが、ワイルドカードはセグメントをまたぐことができません。

  • 以下の ARN は ARN の相対 ID の部分でワイルドカード * を使用して、examplebucket バケット内のすべてのオブジェクトを識別します。

    arn:aws:s3:::examplebucket/*
  • 以下の ARN は、* を使用して、Amazon S3 のすべてのリソース (アカウントの S3 のすべてのバケットとオブジェクト) を指定しています。

    arn:aws:s3:::*
  • 以下の ARN は、relative-ID パートでワイルドカードと * および ? の両方を使用します。これにより、example1bucketexample2bucketexample3bucket など、バケット内のすべてのオブジェクトを識別します。

    arn:aws:s3:::example?bucket/*

ポリシー変数

Amazon S3 の ARN では、ポリシー変数を使用することもできます。あらかじめ定義されているこれらの変数は、ポリシーの評価時に対応する値で置き換えられます。たとえば、バケットをフォルダのコレクションとして構成し、ユーザーごとに別のフォルダを使用するとします。フォルダ名はユーザー名と同じです。各ユーザーに自分のフォルダに対するアクセス許可を付与するには、リソース ARN で以下のようにポリシー変数を指定します。

arn:aws:s3:::bucket_name/developers/${aws:username}/

実行時にポリシーが評価されると、リソース ARN の変数 ${aws:username} には、リクエストを行うユーザーの名前が挿入されます。