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
。 -
相対 ID ‐
bucket-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
パートでワイルドカードと*
および?
の両方を使用します。これにより、example1bucket
、example2bucket
、example3bucket
など、バケット内のすべてのオブジェクトを識別します。arn:aws:s3:::example?bucket/*
ポリシー変数
Amazon S3 の ARN では、ポリシー変数を使用することもできます。あらかじめ定義されているこれらの変数は、ポリシーの評価時に対応する値で置き換えられます。たとえば、バケットをフォルダのコレクションとして構成し、ユーザーごとに別のフォルダを使用するとします。フォルダ名はユーザー名と同じです。各ユーザーに自分のフォルダに対するアクセス許可を付与するには、リソース ARN で以下のようにポリシー変数を指定します。
arn:aws:s3:::bucket_name/developers/${aws:username}/
実行時にポリシーが評価されると、リソース ARN の変数 ${aws:username}
には、リクエストを行うユーザーの名前が挿入されます。