AWS VPC にネットワークセキュリティを確認する Network Access Analyzer 機能があることに気がついたので、ちょっと試してみました。
情報はこのあたりから。
- [新機能] ネットワークがアクセス要件を満たしているか確認するのに便利な VPC Network Access Analyzer がリリースされました! #reinvent
- ネットワークが目的どおりに設定されているか確認できる!Amazon VPC Network Access Analyzerとは
まずは用意された設定を使ってみる
以下のように4つの Network Access Scopes が作成済みだったので、とりあえず AWS-VPC-Ingress を試してみます。
JSON 形式で設定内容を表示させてみた結果が以下です。
{
"networkInsightsAccessScopeId":"nis-00ada90ffc919f190",
"matchPaths":[
{
"source":{
"resourceStatement":{
"resources":[],
"resourceTypes":[
"AWS::EC2::InternetGateway",
"AWS::EC2::VPCPeeringConnection",
"AWS::EC2::VPCEndpointService",
"AWS::EC2::TransitGatewayAttachment",
"AWS::EC2::VPNGateway"
]
}
},
"destination":{
"resourceStatement":{
"resources":[],
"resourceTypes":[
"AWS::EC2::NetworkInterface"
]
}
}
}
],
"excludePaths":[]
}
私の今の AWS 環境は Cloud9 環境だけしか作成していないシンプルな状態なのですが、とりあえず実行した結果が以下になります。
結果が2つ表示されていますが、比べてみたら InternetGateway でインバウンドヘッダーの送信元アドレスが違うだけのようでした。CIDR の範囲内で最大と最小のIP Address がそれぞれ表示されているので、範囲内を調べて両端の2つだけ報告してくれる感じ?ですかね。
そして各行を選択すると下に詳細が表示され、各要素をクリックすることで詳細情報の確認ができます。これは便利ですね。
自分で設定を定義してみる
「Network Access Scope の作成」から独自の設定を定義できます。とりあえず「空のテンプレート」から始めてみます。
わりとわかりやすい設定画面が開き、送信元・送信先・除外条件などを定義できます。
とりあえず EC2 から InternetGateway への 443 ポート tcp アクセスを設定してみた結果がコチラ。
{
"networkInsightsAccessScopeId":"nis-05b34bf95e3863463",
"matchPaths":[
{
"source":{
"packetHeaderStatement":{
"sourceAddresses":[],
"destinationAddresses":[],
"sourcePorts":[],
"destinationPorts":[
"443"
],
"sourcePrefixLists":[],
"destinationPrefixLists":[],
"protocols":[
"tcp"
]
},
"resourceStatement":{
"resources":[],
"resourceTypes":[
"AWS::EC2::Instance"
]
}
},
"destination":{
"packetHeaderStatement":{
"sourceAddresses":[],
"destinationAddresses":[],
"sourcePorts":[],
"destinationPorts":[
"443"
],
"sourcePrefixLists":[],
"destinationPrefixLists":[],
"protocols":[
"tcp"
]
},
"resourceStatement":{
"resources":[],
"resourceTypes":[
"AWS::EC2::InternetGateway"
]
}
}
}
],
"excludePaths":[
{
"throughResources":[
{
"resourceStatement":{
"resources":[],
"resourceTypes":[
"AWS::EC2::TransitGatewayAttachment"
]
}
}
]
}
]
}
以下が実行結果です。想定したとおり、1種類のパスが動作していることが確認できました。
Network Access Scope の設定ですが、アドレス指定にプリフィックスリストが使えるあたり、ちょっと嬉しいかも。
ちなみに費用ですが「分析された Elastic Network Interface (ENI) ごとに 0.002 USD」とあり、今回の独自定義だと結果に2個と表示されているので、1ドル125円で計算し、1回あたり0.5円ぐらいかな。これぐらいの値段なら気軽に試せそうです!
⇒ 何度か分析した結果、翌日に費用を確認したら合計で 0.02$、約 2.5 円ほど請求されていました。
というわけで
VPC Network Access Analyzer かなり便利そうですね。
ネットワーク設定後に疎通確認したい場合など、踏み台サーバから ping 打ったりしなくても、この機能で楽々試せそうです。そしてこれが本来の使い方だと思いますが、定期的にガッツリ広範囲で確認し、遮断漏れの検知もできます。
仕事用の環境でも、いろいろ設定して確認してみようかな。
それではまた。