AWS S3 運用 権限設定を逆引形式で整理してみる
AWS の Amazon S3 を利用する上で、権限設定について、お客様に質問をよくいただきます。S3 の権限設定は複数箇所で可能になっており、割と紛らわしいです。そこで今回は、S3 権限設定の簡単な考え方をお伝えできればと思います。
目次
AWS S3 運用 権限設定方法
Amazon S3 の権限設定箇所は次の4つがあります。
- IAM (AWS Identity and Access Management)
- ACL (ネットワークアクセスコントロールリスト)
- バケットポリシー
- パブリックアクセスブロック
大きな違いは以下です。
IAM (AWS Identity and Access Management):
IAMの権限でS3へのアクセスを許可する方法です。
ACL (ネットワークアクセスコントロールリスト):
特定のバケットやオブジェクト(ファイル)へのアクセスを個別に制御するときに利用します。
バケットポリシー:
特定の規則に基づいてアクセス許可をしたい場合に利用します。
パブリックアクセスブロック:
バケットを一般公開する時に設定します。
ただ、同じ意図の設定が IAM でもバケットポリシーでも可能なケースもあり、その辺りの使い分けが利用者にとって分かりにくいポイントかと思います。
AWS S3 運用 よくある権限設定を逆引形式に整理する
上記のように権限設定が複雑なので、Amazon S3 を利用し始めた頃は、全部理解するというよりは、まず逆引きで、やりたいことを探す方が分かりやすいと思います。
S3 のよくある権限設定を逆引形式でまとめてみます。S3 の権限設定でおおよそは下記に該当していると思います。
AWS S3 運用 よくあるケースと設定方法逆引き整理
ケース | 手段 | 設定方法(公式ドキュメント Links) |
S3 バケットを一般公開したい | バケットポリシーパブリックアクセスブロック | S3 バケットのパブリックアクセス設定を編集する方法 |
特定の人にだけ S3 バケットに読書権限を付与したい | IAM | Amazon S3: S3 バケットのオブジェクトへの読み取りおよび書き込みアクセスを許可する |
特定の人だけ S3 バケットの 特定フォルダ配下を読書権限を付与したい | IAM | Amazon S3 バケット内の特定のフォルダへのユーザーアクセス権限をユーザーに付与するには、どうすればよいですか? |
特定IPからのアクセスのみ許可したい | バケットポリシー | 特定の IP アドレスのアクセスの制限 |
Cloudfront-S3 の構成で Cloudfront 経由のアクセスのみ S3 への読取を許可したい | バケットポリシー | CloudFront ディストリビューションを使用して Amazon S3 バケットへのアクセスを制限する方法を教えてください。 |
これらを見ると ACL が登場するケースはありません。
ACL が一番ややこしいのですが、利用するケースはあまりないようです。
総括・まとめ
Amazon S3 の権限設定は AWS のドキュメントに充実していますし、検索するとサンプルが出ることも多くあります。
皆さんもぜひ、実践してみてください。
元記事発行日: 2020年10月09日、最終更新日: 2023年04月03日