Preview 開始の新機能: NSG のサービス タグ "Azure Storage" についての実演

こんにちは。Azure サポートチームにインターンしている矢野です。

本日は先日発表された NSG のサービス タグの機能拡張に関して、特に Azure Storage  を使って実際に検証してみました。

公開情報としては、下記 URL の Service tags for NSGs に該当します。

Public preview: application security groups, service tags, augmented security rules
https://azure.microsoft.com/en-us/updates/public-preview-features-for-nsgs/

記事の一部を要約すると NSG の Service Tags をストレージに適用することでストレージに対して、アクセス可能にするか否かを設定することができます。

2017年9月28日現在では
US West Central
US East
US West
US West 2
Australia East
Australia Southeast
UK South
のリージョンに対してプレビュー版で提供されています。

※ プレビュー版のフィードバックや動作状況を見て、プレビューのリージョンの拡大や、一般提供開始 (GA) の時期が決定されます。現時点では一般提供の時期は未定となります。

[この機能のメリットとは]
Azure はパブリック クラウドですが、様々な企業のセキュリティ ニーズに基づいて利用されています。本機能は、特に、Azure 仮想マシンからインターネット側の通信を制限している環境にて役立ちます。
Azure 仮想マシンでは、例えば拡張機能のセットアップなどにおいて、内部的に Azure Storage との通信を行う場合があります。
また、診断機能にて、Azure 仮想マシンのパフォーマンス情報やイベント ログを Azure Storage にアップロードする処理においても、Azure Storage との疎通が行えなければなりません。
Azure Storage との通信は、パブリック IP、つまり VM からみるとインターネット方向の通信が行えない場合に処理が失敗します。

一方、ネットワーク セキュリティ グループ (NSG) では、これまでは IP アドレスを設定し、個別に例外を許可する必要がありました。
Azure Storage をはじめとする、Azure のサービス エンドポイントは、IP アドレスが固定ではないため、NSG の例外は、特定のデータセンターの IP アドレスすべてを追加しなければならず、100 を超える NSG ルールの設定・メンテナンスが必要ということが課題でした。

ここで、NSG のサービス タグという新機能が登場します。現時点では、Traffic Manager、Storage、SQL Database といったパブリックのエンドポイントがタグとして指定できます。

今回は、Azure Storage のサービス タグを指定し、VM のインターネット アクセスができないというセキュリティを実現しつつ、Azure Storage のみの通信を許可するという設定を簡単に実現してみます。

-------------------------------------

イメージ: お客様のサービスから NSG にてパブリック IP アドレスへの通信をブロックしているため、Azure Storage や SQL Database など Azure のパブリック IP にも疎通ができない。

-------------------------------------

イメージ: NSG のサービスタグにて、Azure 上のサービスへのタグを追加・許可することで、簡単に、Azure 上のサービス限定で例外を設けることができる。

[検証手順]

今回の検証手順としては以下の手順で行いました。

1. 仮想マシンの作成
2. ストレージアカウントをデプロイ
3. NSG で送信のインターネットアクセスを完全に禁止
4. 仮想マシンから Azure Storage にファイルをアップ (インターネットアクセスしているため失敗)
5. NSG で Azure Storage のみインターネット許可するよう、サービス タグを付与
6. 仮想マシンから Azure Storage にファイルをアップ(成功)

 

1. 仮想マシンの作成

本プレビュー機能が有効な米国東部と非対応なリージョンにヨーロッパ西部に仮想マシンを作成しました。

2. ストレージアカウントをデプロイ

以下画像の条件でストレージアカウントを作成しました。

3. NSG で送信のインターネットアクセスを禁止
以下のように作成した仮想マシンに NSG で送信セキュリティ規則を追加しました。

 

4. 仮想マシンから Azure Storage にファイルをアップ(失敗)

この段階では、インターネット方向 (パブリックな IPアドレス) への送信を完全にブロックしていますので、VM から Azure Storage へのアクセスが失敗するはずです。
AzCopy on Windows を使ったデータの転送
/ja-jp/azure/storage/common/storage-use-azcopy
の以下のコマンドを参考に

 AzCopy /Source:C:\myfolder /Dest:https://myaccount.blob.core.windows.net/mycontainer /DestKey:key /Pattern:"abc.txt"

デスクトップ配下のtest.txtファイルをAzure Storageに転送しました。
送信においてすべてのインターネットアクセスを禁止しているため

このように ERROR となり Azure Storage にアップできないことが確認できました。

5. NSG で Azure Storageのみインターネット許可するよう、Service Tag を追加

4 の状況から、Azure Storage のみアクセスが通るということを確認するため、以下のように対応リージョンである米国東部に作成された仮想マシンに送信セキュリティ規則の追加をしました。

サービスタグをStorage.JapanEastにし送信アクセスを許可しました。
仮想マシンが対応リージョンに配置されている場合

このようにセキュリティ規則が作成されます。

6. 仮想マシンから Azure Storage にファイルをアップ(成功)

この状態で4と同じ手順で Azure Storage にファイルをアップすると

このようにファイル送信が成功します。
(※ 補足) プレビューに非対応なリージョンで NSG で Azure Storage のみインターネット許可するサービス タグを追加

以下のように本プレビュー機能に非対応リージョンであるヨーロッパ西部に配置されている仮想マシンに送信セキュリティ規則の追加をしました。

設定画面ではサービスタグの追加に Storage の項目が存在し、選択できる状態であるが、OK をして規則を追加しようとすると以下の画像のように規則を作成できません。

このように、本プレビュー機能に対応していないリージョンでも設定画面では選択できるようになっていますが、2017 年 9 月 29 日現在、内部の実装はまだですので気を付けてください。