クラウドS3バケットポリシーとIAMポリシーの関係を、同一アカウント・クロスアカウントそれぞれにおいて整理します。アカウント内アクセスクロスアカウントアクセスおわりに参考はじめにこんにちは、@bioerrorlogです。S3に対するアクセス権限の制御方法としては、アクセス元のIAMポリシーとアクセス先のバケットポリシーのふたつが挙げられます。S3に対するアクセス権限の制御IAMポリシーとバケットポリシーのどちらで制御すればよいのか、はたまた両方で制御する必要があるのか、油断してると忘れそうになります。今回は、このIAMポリシーとバケットポリシーでの制御方法の関係性について、同一アカウント内の場合とクロスアカウントの場合でそれぞれ整理します。結論まず簡潔に結論を言うと、以下のようになります。同一アカウント内アクセス:S3バケットポリシーかIAMポリシーのどちらかで許可が必要クロスアカウントアクセス:S3バケットポリシーとIAMポリシーの両方で許可が必要S3バケットポリシーかIAMポリシーのどちらかで拒否された場合は拒否される以降、EC2からS3にGetObjectする場合をもとに検証していきます。検証準備EC2に付与するIAMポリシーとして、以下のものを用意します。]}バケットポリシーとしては、以下のものを用意します。]}EC2からGetObjectするには、以下のCLIを利用します。[ファイル保存名]以上の条件で、各ケースにおけるアクセス可否を検証します。同一アカウント内アクセス同一アカウント内でのS3アクセスまずは、同一アカウント内からのS3アクセスを検証します。Deniedこのように、同一アカウント内ではS3バケットポリシーかIAMポリシーのどちらかで許可されば許可されるS3バケットポリシーかIAMポリシーのどちらかで拒否された場合は拒否されるという挙動になります。クロスアカウントアクセスクロスアカウントでのS3アクセス続いて、クロスアカウントでのS3アクセスを検証します。Deniedこのように、クロスアカウントではS3バケットポリシーかIAMポリシーの両方で許可されば許可されるS3バケットポリシーかIAMポリシーのどちらかで拒否された場合は拒否されるという挙動になります。以上をまとめると、S3バケットポリシーとIAMポリシーの関係は以下のようになります(再掲)。同一アカウント内アクセス:S3バケットポリシーかIAMポリシーのどちらかで許可が必要クロスアカウントアクセス:S3バケットポリシーとIAMポリシーの両方で許可が必要S3バケットポリシーかIAMポリシーのどちらかで拒否された場合は拒否されるおわりに今回は、S3バケットポリシーとIAMポリシーの関係を整理しました。AWSを触っていると、IAM権限周りの正確な理解がとても重要と感じています。今回取り上げた話題は比較的シンプルな話でしたが、一つ一つ整理していくことで、権限周りの自信を深めていきたいところです。(1)プライバシーポリシーお問い合わせ検索はてなブログをはじめよう!BioErrorLogさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。