はじめに
AWS S3に関する Tips情報です。
S3環境下で静的ウェブサイトのホスティングを行っており、クライアント様の諸事情で特定のグローバル固定IPからのアクセスを拒否する事例があったので、記事にしたいと思います。
設定内容
バケットポリシー設定にて、公開している S3バケットポリシーに Condition ブロック内でNotIpAddress 条件と、aws:SourceIp 条件キー(拒否したいIP)で設定します。
なお、設定する際の送信元IPにはCIDR 記法で記載します。
設定例
{ "Version": "2012-10-17", "Id": "S3PolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket/*", "Condition": { "NotIpAddress": {"aws:SourceIp": "203.0.113.2/32"} } } ] }
※設定例にある、値はサンプル
まとめ
サーバレスアーキテクチャがより普及が広まり、静的ファイルのみであれば、サーバ環境不要でS3ウェブサイトホスティング機能のみでの運用が可能です。
これまでは Apache等のWEBサーバ上で、.htaccess ファイルで制御する事が多かったですが、S3上では .htaccess が利用できない代わりにバケットポリシーにて設定する必要があります。
他にも HTTPリファラ等、多様なポリシーを設定することができますので、機会があれば導入したいと思います。
参考文献
[ AWS Documentation ] 特定の IP アドレスへのアクセスの制限
[amazonjs asin=”4822262960″ locale=”JP” title=”Amazon Web Services 基礎からのネットワーク&サーバー構築”]
[amazonjs asin=”4822277372″ locale=”JP” title=”Amazon Web Services クラウドデザインパターン設計ガイド 改訂版”]