Dome9でセキュリティグループのSourceをDNS名で指定してみた

まいど、大阪の市田です。
Dome9では、Security GroupのルールをDome9の管理画面上から管理(追加、変更、削除)することができます。

ルールを追加する時は、許可するSourceに「IP CIDR」や 「DNS名」で登録することができるのですが 「DNS名でSecurity Groupのルールを登録できる、とは一体どういうことなんだろう?」と個人的に気になりました。

今回はこの挙動についてご紹介したいと思います。

事前準備

まず、検証するためのDNSレコードを用意します。今回はRoute53で自前で管理しているドメインに対してテスト用のレコード(dome9.xxx.info)を登録してみました。

「dome9.xxx.info」のAレコードを「198.51.100.1」で登録しました。

01-before-route53

登録した内容の名前解決になっています。

04-before-dig

Dome9からDNS名でSecurity Groupのルールを追加

この状態でDome9にDNS名でSecurity Groupの許可ルールを登録してみました。

08-dome9-add-on-sg

「dome9.xxx.info」でSecurity Groupにルールが登録されました。

02-dome9-sg

結果を確認してみます。
少し待ってからAWS側のSecurity Groupの設定を見ると、、、「dome9.xxx.info」に対して 名前解決したIPが登録されていました!!面白いですね。

03-before-aws-sg

IPが変わった場合の確認

次に気になったのは、「IPアドレスが変わった場合」はどうなるのか?ということです。
そこで、先程のAレコードのIPを「198.51.100.1」から「198.51.100.100」に変更してみます。

05-after-route53

名前解決の結果も変更されたものになっています。

06-after-dig

5分ほど待ってから、AWS側のSecurity Groupを確認してみます。
すると、なんとSourceのIPアドレスが新しい内容に変わっていました!!(2度びっくり)

07-after-aws-sg

Dome9の履歴を確認

Dome9の画面からDome9側の挙動を確認することもできました。

10-dome9-history1

Historyの詳細を開くと、下記のようにイベントの内容が表示されます。どうやら該当するイベントをCloudTrailから取得しているようです。
(Dome9用のIAM Roleにはcloudtrail:LookupEventsも付与されます)

なお、下記のHistory画面で複数のイベントが見えるのは、テストを何度か繰り返したためです。

11-dome9-history2

CloudTrailで確認

この挙動はCloudTrailからも確認することができます。
下記のスクリーンショットを見ると、対象のSecurity Groupに対して「AuthorizeSecurityGroupIngress」「RevokeSecurityGroupIngress」 というイベントが発生していることが分かります。

「AuthorizeSecurityGroupIngress」で新しいIPアドレスの許可ルールを追加し、「RevokeSecurityGroupIngress」で変更前の古いルールを削除した、ということですね。

09-cloudtrail

最後に

ユースケースとしては、契約プロバイダの関係等で拠点IPアドレスが固定できない場合などに有効な機能かなと思いました。
AWS Lambdaなどを利用して同様のことはできると思いますが、コードの保守等が煩わしい場合には便利ですね。

以上です。