ブログ

AWS S3 運用 権限設定を逆引形式で整理してみる

AWS の Amazon S3 を利用する上で、権限設定について、お客様に質問をよくいただきます。S3 の権限設定は複数箇所で可能になっており、割と紛らわしいです。そこで今回は、S3 権限設定の簡単な考え方をお伝えできればと思います。

AWS S3 運用 権限設定方法  

Amazon S3 の権限設定箇所は次の4つがあります。

  1. IAM (AWS Identity and Access Management)
  2. ACL (ネットワークアクセスコントロールリスト)
  3. バケットポリシー
  4. パブリックアクセスブロック

大きな違いは以下です。

IAM (AWS Identity and Access Management):
IAMの権限でS3へのアクセスを許可する方法です。

ACL (ネットワークアクセスコントロールリスト):
特定のバケットやオブジェクト(ファイル)へのアクセスを個別に制御するときに利用します。

バケットポリシー
特定の規則に基づいてアクセス許可をしたい場合に利用します。

パブリックアクセスブロック
バケットを一般公開する時に設定します。

ただ、同じ意図の設定が IAM でもバケットポリシーでも可能なケースもあり、その辺りの使い分けが利用者にとって分かりにくいポイントかと思います。

AWS S3 運用 よくある権限設定を逆引形式に整理する  

上記のように権限設定が複雑なので、Amazon S3 を利用し始めた頃は、全部理解するというよりは、まず逆引きで、やりたいことを探す方が分かりやすいと思います。

S3 のよくある権限設定を逆引形式でまとめてみます。S3 の権限設定でおおよそは下記に該当していると思います。

AWS S3 運用 よくあるケースと設定方法逆引き整理  

ケース手段設定方法(公式ドキュメント Links
S3 バケットを一般公開したいバケットポリシーパブリックアクセスブロックS3 バケットのパブリックアクセス設定を編集する方法
特定の人にだけ S3 バケットに読書権限を付与したいIAMAmazon S3: S3 バケットのオブジェクトへの読み取りおよび書き込みアクセスを許可する
特定の人だけ S3 バケットの 特定フォルダ配下を読書権限を付与したいIAMAmazon S3 バケット内の特定のフォルダへのユーザーアクセス権限をユーザーに付与するには、どうすればよいですか?
特定IPからのアクセスのみ許可したいバケットポリシー特定の IP アドレスのアクセスの制限
Cloudfront-S3 の構成で Cloudfront 経由のアクセスのみ S3 への読取を許可したいバケットポリシーCloudFront ディストリビューションを使用して Amazon S3 バケットへのアクセスを制限する方法を教えてください。

これらを見ると ACL が登場するケースはありません。
ACL が一番ややこしいのですが、利用するケースはあまりないようです。

総括・まとめ  

Amazon S3 の権限設定は AWS のドキュメントに充実していますし、検索するとサンプルが出ることも多くあります。

皆さんもぜひ、実践してみてください。

元記事発行日: 2020年10月09日、最終更新日: 2023年04月03日

Related Articles