IncrediBuild CloudのHelper Agentに独自のセキュリティグループを設定してみた
五十嵐です。
みなさんはIncrediBuild使ってますか?IncrediBuildは複数端末のCPUに対して演算処理を分散させる事で高速なビルド処理を実現するイスラエル発のソフトウェアになります。日本でもゲーム会社様で多くの活用事例が挙げられています。
2022年10月19日からIncrediBuild Cloudで独自のSecurityGroupを設定できるようになっていました。リリースから少し時間が経っていますが、検証する機会があったため試してみました。
今回試した構成
IncrediBuild のバージョンは 10.1.2 になります。
これまでのセキュリティグループ
IncrediBuild CloudでHelper Agentを起動すると、以下のセキュリティグループが自動設定されていました。
Port | Source |
---|---|
31105 | 0.0.0.0/0 |
31106 - 311xx | 0.0.0.0/0 |
31106 - 311xx はHelper Agentに使用するインスタンスタイプのvCPU数で変動します。例えば c5.largeの場合2vCPUのため31106 - 31108で設定されます。
Helper Agent自体、ビルド実行中のみ起動するため0.0.0.0/0で許可されていてもそこまで問題は無いと思います。ですがSecurityHubを有効にしている場合、[EC2.18]の項目に該当して検知されてしまいます。
SecurityHub [EC2.18]については以下ブログをご参照ください。
SecurityHubの検出抑制すれば良くない?と思いましたが、IncrediBuild Cloudを停止して再度起動すると新規にセキュリティグループが作成され、その度に抑制する必要があったのでちょっと面倒でした。
IncrediBuild CloudのHelper Agentに独自セキュリティグループを付与すれば0.0.0.0/0で許可せずに済むため、SecurityHubにも検出されず、よりセキュアに利用できる!って事で試してみました。
独自セキュリティグループの作成
IncrediBuild Cloudのドキュメントを確認したところ、Windows版 IncrediBuildのデフォルト設定ではセキュリティグループにCoordinator Port「31105」とVM Ports「31106~」を開放する必要があるとの事でした。
今回検証した構成、設定では以下のようなセキュリティグループを設定する事で分散ビルドを行う事ができました。
Port | Source |
---|---|
31105 | Coordinator Public IP |
31106 - 311xx | Initiator Public IP |
Coordinator Port
今回の構成ではCoordinator - HelperはAWSで構築しているためPublic IPで許可する必要はないと考え、Coordinatorに設定しているセキュリティグループIDで許可した所、Coordinator UI上でHelper Agentがグレーアウトしてしまい、認識する事が出来ませんでした。
恐らく、IncrediBuild CloudのNetwork設定項目でPublicを選択している場合、Public IPで許可する必要がありそうです。
CoordinatorのPublic IPで許可した所、Helper Agentはグレーアウトせず認識する事が出来ました。
VM Ports
次にVM Portsですが、こちらもIncrediBuild CloudのNetwork設定でPublicを選択している場合、Public IPで許可が必要となります。
InitiatorからHelper Agentに接続出来ない場合、Build Monitorのログに Failed to connect to [Helper Agent Public IP] とエラーが出ます。
Initiator - Helper間で通信に問題が無ければ、分散ビルドを実施する事が出来ました。
独自セキュリティグループの設定
IncrediBuild CloudのHelper Agentに独自セキュリティグループを設定するには、IncrediBuild Cloudの画面から設定出来ます。
IncrediBuild CloudのNetwork設定画面から Use your existing network で既存VPCを選択、Use your own Security Groupを有効にして独自セキュリティグループを指定する事が可能です。
IncrediBuild Cloudが起動している、またPoolのHelper Agentが存在する場合は設定変更出来ない項目になるため、設定変更を行う場合はIncrediBuild Cloud停止時にPoolも削除する必要があります。
最後に
IncrediBuild Cloudで起動するHelper Agentに独自セキュリティグループを設定してみました。
Helper Agent自体ビルド時のみ起動するため、InitiatorのIPが完全に固定されていない限りは0.0.0.0/0で許可した方が運用的にも楽なのかな…と設定しつつ思いましたが、独自セキュリティグループでも0.0.0.0/0で許可してSecurityHubの検知抑制すれば、IncrediBuild Cloudを停止させてもセキュリティグループが変わらないのがいいですね。気になった方は是非試してみてください。