Amazon S3 のリソース
次の一般的な Amazon リソースネーム (ARN) 形式は、AWS でリソースを識別します。
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 S3 の ARN の例
以下に、Amazon S3 リソースの ARN の例を示します。
指定されたバケット名とオブジェクトキー
この ARN は、/developers/design_info.doc
バケットの examplebucket
オブジェクトを指しています。
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}
には、リクエストを行うユーザーの名前が挿入されます。