こんにちは、ちゃりおです。
今回はAWSでIPアドレスを制限する方法についてです。
AWSは様々なサービスがあり、アクセス制限の方法も色々あります。
思いつく限り上げていきます。
セキュリティグループ

対象
- EC2
- RDS
- ALB
- Elasticache
- ElasticSearch
- etc…
特徴
- インスタンスの仮想ファイアウォール
- インスタンス単位でアクセス制限ができる
- インバウンドとアウトバウンドのルールを設定できる
- ステートフル
- ホワイトリスト方式
雑感
代表的なアクセス制御の方法です。インスタンス単位でアクセス制限ができます。
今回紹介する方法の中で最も使用することが多いと思います。
個人的には、アウトバウンドは全許可でいいと思っています。
アウトバウンドを絞っておけば、攻撃されてサーバを乗っ取られたときにサーバ→攻撃者のサーバ感の通信を防げるかもしれません。
OSのバッチやawscliとかで、アウトバウンドで80・443は許可にしておきたいので結局やられる気がします。
ネットワーク ACL

対象
- VPCサブネット
特徴
- サブネットの仮想ファイアウォール
- インバウンドとアウトバウンドのルールを設定できる
- ステートレス
- ホワイトリスト・ブラックリスト方式両方可能
雑感
よくセキュリティグループと混同されます。
セキュリティグループがインスタンス単位なのに対して、ネットワークACLはサブネット単位です。
他にもステートレス・ステートフルとか違いがあります。
ネットワークACLの便利な点は、特定のIPの拒否ができる点です。(セキュリティグループだとできない)
攻撃などがあった際に、特定のIPアドレスからの通信を拒否したいときなどに便利です。
WAF

対象
- ALB
- Cloudfront
特徴
- ホワイトリスト・ブラックリスト方式両方可能
- パスやレートなどと組みわせることができる
雑感
WAFを使うことで、ALBやCloudfrontに送られる通信にIP制限をかけることができます。
パスやレートなどと組み合わせることもできます。
例)
レートルールで同一IPから5分間に500アクセスあったら、拒否するが特定IPは除外する
特定IPアドレスから通信は、/hogeには通さない
ALBのリスナールール

対象
- ALB
特徴
- リスナールールの条件でIPアドレスを指定できる
- HTTPとHTTPSのみ
- ホスト名・パスと組み合わせることができる
- ホワイトリスト方式
雑感
このIPアドレスが来たら、このターゲットグループに流すみたいなことができます。
ALBを通したいけど、IPアドレスは制限したいときとかに使えます。
S3パケットポリシー

対象
- S3
特徴
- S3バケットへのアクセスを制限できる
- ホワイトリスト・ブラックリスト方式両方可能
- アクションと組み合わせることができる(Read、Writeなど)
雑感
IPアドレスだけではなく、VPCエンドポイントも指定することができます。
アクションと組み合わせることができるので、このIPからはReadだけみないたことができます。
Amazon S3 バケットにアクセスできる VPC エンドポイントまたは IP アドレスを指定するにはどうすればよいですか?
まとめ
今回は、AWSでのアクセス制限を書いてみました。
様々サービスがあるので今回挙げた以外にも、方法があるかもしれません。
それぞれの場面で最適な方法を使って、セキュリティを担保していきたいです。


