Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

ポリシーでのリソースの指定

以下に、AWS のリソースを識別する Amazon リソース名 (ARN) の一般的な形式を示します。

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

Amazon S3 リソースの場合:

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

  • s3 はサービスです。

  • リージョンと名前空間は指定しません。

  • Amazon S3 では、bucket-name または bucket-name/object-key となります。ここでは、ワイルドカードを使用できます。

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

arn:aws:s3:::bucket_name arn:aws:s3:::bucket_name/key_name

次に、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 は、*? の両方のワイルドカードを相対 ID の部分で使用します。これにより、example1bucketexample2bucketexample3bucket など、バケット内のすべてのオブジェクトを識別します。

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

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

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

S3 バケットの ARN は、Amazon S3 コンソールの Bucket Policy または CORS configuration アクセス権限ページで調べることができます。詳細については「S3 バケットポリシーを追加する方法 (How Do I Add an S3 Bucket Policy?)」 または「CORS で Cross-Domain Resource Sharing を許可する方法 (How Do I Allow Cross-Domain Resource Sharing with CORS?)」」(Amazon Simple Storage Service コンソールユーザーガイド) を参照してください。

ARN の詳細については、以下を参照してください。

アクセスポリシー言語の他のエレメントについては、「アクセスポリシー言語の概要」を参照してください。