Azure Functions で Azure サービスタグを設定する
Azure サービスタグとは
Azureのサービスタグ(Service Tags)
は、Azureのサービスやリソースに関連するIPアドレス範囲を簡単に管理するための機能です。
ネットワークセキュリティグループ(NSG)やAzure Firewallなどで、特定のAzureサービスへのアクセスを許可・制限する際に使われます。
サービスタグのポイント
サービスタグ
をNSG
やAzure Firewall
などで設定すると、自動的に設定したサービスタグに関連する Azure サービスのIPアドレス一覧を許可したり、拒否したり設定できます。
しかも、IPアドレスの一覧は、自動的に Microsoft によって更新 されます!(これが便利よね)
-
IPアドレスの管理が不要
- サービスタグを使うことで、Azureのサービスに関連するIPアドレス範囲を個別に指定する必要がなくなります。
-
自動更新
- サービスタグはMicrosoftによって自動的に更新されるため、IPアドレスの変更に対応する必要がありません。
ちなみに、Power Platform
のサービスタグ
も用意されているため、Power Platform
からのみアクセス許可というような設定も可能です。
Azure Functions のネットワークオプション
Azure Functions
の従量課金プラン
だと、受信のIP制限
が使用できます。
従量課金プランで受信の規則を設定してみます。
下準備 Azure サブスクリプションでリソースプロバイダー登録
Azure サブスクリプション > 設定 > リソースプロバイダー
から Microsoft.Network
を登録する。
これをしないと、一部のサービスタグしか表示されない。
この設定がわからなくて、小一時間ほどハマってました...
Azure Functions の設定
キャプチャーは従量課金プランの場合。
設定 > ネットワーク > 受信トラフィックの構成 の 公衆ネットワークアクセス
をクリックします。
一致しないルール
は拒否がデフォルトでもいいんじゃないかなぁと思いながら、拒否を選択します。
優先度が一番低い状態(優先度の数値が大きい)で拒否ルールが設定されます。
あとは、拒否よりも優先度を高く(優先度の数値が小さく)、IPアドレス
、サービスタグ
、仮想ネットワーク
を追加していきます。
項目 | 設定 | 備考 |
---|---|---|
アプリのアクセス > 公衆ネットワークアクセス | 選択した仮想ネットワークとIPアドレスから有効 | 受信の規則 |
サイトのアクセスとルール > 一致しないルールのアクション | 拒否 | ルールに当てはまらなければブロック |
サービスタグでLogicApps
を設定するとこんな感じになります。
これで、LogicApps
のIPアドレス範囲
しか、このAzure Functions
にアクセスできない(コールできない)ように設定できました。
サービスタグの取得
サービスタグ
はAzure
で設定できる以外に、REST API
やJSON ファイル
で公開されています。
内容見てみると、サービスだけじゃなくて、リージョン
でも記載があるので、リージョン
が決まっているのであれば、リージョン
指定してもいいかもしれないですね。
REST API
JSON ファイル
##さいごに
Azure サービスタグ
を設定してみました。
最低限のアクセス制限として、サービスタグ
は有効だと思います。
設定すれば、Microsoft が自動更新してくれるのも、メンテナンスしなくて済むので楽でいいですね。
Discussion