S3バケットARN — オブジェクトストレージARNの理解
Amazon S3バケットARNを解析し、リージョンとアカウントIDフィールドが空である独特な構造を理解します。S3 ARNが他のAWSサービスと異なる理由を学びます。
Storage
詳細な説明
S3バケットARNは特別
Amazon S3バケットARNは、他のほぼすべてのAWSサービスとは異なる独特の構造を持っています。S3バケット名はグローバルで一意であるため、リージョンとアカウントIDフィールドは空のままです。
ARNの例
arn:aws:s3:::my-application-bucket
解析されたコンポーネント
| コンポーネント | 値 | 備考 |
|---|---|---|
| Partition | aws |
標準的な商用AWS |
| Service | s3 |
Amazon Simple Storage Service |
| Region | (空) | S3バケットはグローバル |
| Account ID | (空) | 不要 — バケット名はグローバルで一意 |
| Resource Type | (なし) | S3はリソースフィールドを直接使用 |
| Resource ID | my-application-bucket |
バケット名 |
なぜリージョンとアカウントがないのか
AWSがS3を設計した際、バケット名をグローバルで一意にすることを選択しました。これは世界中のどのAWSアカウントも同じ名前のバケットを持てないことを意味します。この一意性の制約により、ARNにリージョンやアカウントIDを含める必要がなく、バケット名だけでリソースを特定できます。
これは、リソース名が特定のリージョンとアカウントの組み合わせ内でのみ一意であるEC2やLambdaなどのサービスとは対照的です。
S3オブジェクトARN
バケット内の特定のオブジェクトを参照するには、バケット名の後にオブジェクトキーを追加します:
arn:aws:s3:::my-application-bucket/uploads/photo.jpg
ここで、my-application-bucketは暗黙的なリソースタイプ(バケット)であり、uploads/photo.jpgはプレフィックス「フォルダ」を含む完全なオブジェクトキーです。
ユースケース
特定のS3バケットへのアクセスを付与するIAMポリシーの記述。S3 ARNはIAMポリシードキュメントで最も頻繁に参照されるARNの一つで、ResourceブロックとConditionブロックの両方で使用されます。