Resource Access Manager で Managed Prefix List を共有する
AWS の マネージドプレフィックスリスト、とても便利です。
自分は、ALB に 接続元IP制限 をかけなきゃならないケースでよく利用してました。
しかし、AWS アカウントごとに保持するような管理のしかたをしてて、正直非効率でした。
最近、Resource Access Manager[1] を利用することで共有できることを知り、愕然としました。 それも、だいぶ以前からできたようで。
今回は、Resource Access Manager で Managed Prefix List を共有してセキュリティグループに適用し、ALB に接続元IP制限をかける方法を簡単に紹介します。
組織的な IP制限運用 に役立てていただければ幸いです。
(個人的にはIP制限なくしていきたい派ですが...)
管理アカウントで Organizations 共有を有効化する
Resource Access Manager > 設定 (リンクはバージニアリージョン) で有効にするをチェックONして「設定を保存」するだけです。簡単!
なお、Organizations の主導権がない方は、BOSSに対応を依頼してください。
Organizations 共有を有効化するシーン

Managed Prefix List リソースを作成する
共有元となるアカウントで、マネージドプレフィックスリストの管理画面 (リンクは東京リージョン) もしくは IaC等 で作成してください。
Managed Prefix List 一覧サンプル

Prefix List IaC 実装サンプル (Terraform HCL)

作成したリソースを Resource Access Manager で共有する
共有元となるアカウントで、Resource Access Manager > (自分が共有)リソースの共有 (リンクは東京リージョン) で「リソース共有を作成」もしくは IaC等 で作成してください。
リソース共有を作成の確認画面サンプル
(ここでおこられたので Organizations 共有を有効化の必要があると知った)

RAM IaC 実装サンプル (Terraform HCL)

利用側でセキュリティグループを作成する
共有先のアカウントで、Managed Prefix List 内のIPのみを接続元として許可するように、セキュリティグループ(以降「restrict SG」)を作成します。
セキュリティグループの管理画面 (リンクは東京リージョン) もしくは IaC等 で作成してください。
セキュリティグループの一覧・詳細画面サンプル


restrict SG IaC 実装サンプル (Terraform HCL)

8080 は ECS の Blue/Green デプロイ用に準備したつもりの許可設定です
利用側でセキュリティグループを ALB に紐付ける
共有先のアカウントで、セキュリティグループに restrict SG を指定して ALB(以降「restrict ALB」)を作成/変更します。
ロードバランサーの管理画面 (リンクは東京リージョン) もしくは IaC等 で作成してください。
ALB のセキュリティグループ設定画面サンプル


restrict ALB IaC 実装サンプル (Terraform HCL)

妥当な接続元IP制限ができているか確認する
以下を確認してみて結果で成功/失敗を判断しましょう。
- アクセスできるべきところからアクセスできること
- アクセスできないべきところからアクセスできないこと
接続できないはずの接続元からアクセスを試みてこうなるであろう結果の例

大事なことだと思うので一筆足しておくのですが、設定したときにはもちろんながら定期的に設定が妥当に作用していることのチェックを入れて継続的運用するのが良いと思います。
Discussion