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ブロックの両方で使用されます。

試してみる — AWS ARN Parser

フルツールを開く