条件付きアクセスを利用して、Azureポータルへのアクセスを特定のIPのみに制限してみました。
条件付きアクセスの設定はAzure Active Directory Premium P1以上のライセンスで利用可能な機能です。
Azureポータルへのアクセスを特定のIPのみに制限する方法
Azureポータルへのアクセスを特定のIPのみに制限するには、以下の2つのポリシーを設定する必要があります。
今回はある特定のユーザー・グループに対して制限をかけます。
そこで、「Test_Group」というグループに条件付きアクセスを設定した上で「Testuser」というユーザーを所属させ、このユーザーに対してAzureポータルへのアクセスを特定のIPのみに制限してみました。
条件付きアクセスの設定
ポリシーの設定に入る前に、先に「ネームドロケーション」というIPのグループを定義する必要があります。
ネームドロケーションの設定
・Azureポータルから [Microsoft Entra ID]-[セキュリティ]-[条件付きアクセス]-[ネームドロケーション] と遷移して [+IP範囲の場所] をクリックします。
![Azureポータルから [AzureAD]-[セキュリティ]-[条件付きアクセス]-[ネームドロケーション] と遷移して [+IP範囲の場所] をクリック](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-001.png)
・許可したいIPアドレスを設定し、「作成」をクリックしてネームドロケーションを作成します。
今回は [Test_Loation] という名前で作成します。

ここでは複数のIPアドレスレンジを設定できますが今回は特定の/32となるIPのみ許可する設定を入れます。
許可したいIPアドレスからAzureポータルへのアクセスを許可する
続いて条件付きアクセスのポリシーを設定していきます。
・Azureポータルから [Microsoft Entra ID]-[セキュリティ]-[条件付きアクセス]-[ポリシー] と遷移して [新しいポリシー] をクリックします。
![Azureポータルから [AzureAD]-[セキュリティ]-[条件付きアクセス]-[ポリシー] と遷移して [新しいポリシー] をクリック](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-003.png)
・「名前」を入力後、「ユーザー」の設定で [対象] タブの [ユーザーとグループの選択] にチェックを入れ、 [ユーザーとグループ] を選択しこのポリシーを適用させたいグループを選択します。
今回は「Test_Group」を選択しています。
![「名前」を入力後、「ユーザー」の設定で [対象] タブの [ユーザーとグループの選択] にチェックを入れ、 [ユーザーとグループ] を選択しこのポリシーを適用させたいグループを選択](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-004.png)
・「クラウドアプリまたは操作」の設定で [対象] タブの [アプリを選択] にチェックを入れ、[選択] をクリックして [Microsoft Azure Management] を選択します。
![「クラウドアプリまたは操作」の設定で [対象] タブの [アプリを選択] にチェックを入れ、[選択] をクリックして [Microsoft Azure Management] を選択](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-005.png)
[Microsoft Azure Management] はAzureポータルとAzureCLI、AzurePowersellをまとめたアプリケーションとして定義されています。
Microsoft公式doc:一般的な条件付きアクセス ポリシー: Azure 管理で MFA を必須にする
・「条件」の設定で [場所] を選択し、[構成] を [はい] として [対象] タブの [選択された場所] にチェックを入れ、上記で作成した [Test_Loation] を選択します。
![「条件」の設定で [場所] を選択し、[構成] を [はい] として [対象] タブの [選択された場所] にチェックを入れ、上記で作成した [Test_Loation] を選択](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-006-800x517.png)
・「許可」の設定で [アクセス権の付与] にチェックを入れ、[多要素認証を要求する] にチェックを入れ「選択」をクリックします。
![「許可」の設定で [アクセス権の付与] にチェックを入れ、[多要素認証を要求する] にチェックを入れ「選択」をクリック](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-007.png)
・最後に「ポリシーの有効化」を [オン] に変更して「作成」をクリックすれば完了です。
![最後に「ポリシーの有効化」を [オン] に変更して「作成」をクリック](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-008.png)
上記のIPアドレスを除き、それ以外の全てのIPアドレスからはアクセスを拒否する
上記と同じようにポリシーを作成していきますが、以下の2つの設定だけ上記と異なる設定を入れます。
・「条件」の設定で [場所] を選択し、[構成] を [はい] として [対象外] タブで [選択された場所] から [Test_Loation] を選択します。
[対象] タブで [すべての場所] にチェックを入れるところは同じです。
![「条件」の設定で [場所] を選択し、[構成] を [はい] として [対象外] タブで [選択された場所] から [Test_Loation] を選択](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-009-800x519.png)
・「許可」の設定で [アクセスのブロック] にチェックを入れ「選択」をクリックします。
![「許可」の設定で [アクセスのブロック] にチェックを入れ「選択」をクリック](https://bonjiri-blog.com/wp-content/uploads/restrict-access-to-azure-portal-with-conditional-access-010.png)
これで条件付きアクセスの設定はすべて完了です。
「Test_Group」というグループに所属する「Testuser」はこの制限がかかっているので、上記で設定した特定のIPアドレスからしかAzureポータルにサインインすることができません。
サインインを試す
「Testuser」でAzureポータルへのサインインを試します。
Test_Loation のIPアドレス(末尾.22のIP)からサインイン
[Test_Loation] で設定した末尾が.22のIPアドレスからサインインを試します。


正常にAzureポータルにサインインすることができました。
上記以外のアドレスからサインイン
ID/PWを入力したあとに、以下の画面が出てきてサインインすることができませんでした。

[参考] サインインログを見てみる
サインインログからも上記のサインインの結果を確認します。

末尾.22のアドレスからは「成功」していることが確認できます。
しかし、それ以外のIPからのログには「多要素認証」が「失敗」として出てきます。
このログを監視することで不正アクセスされそうなユーザーを事前に把握して対策をとることもできます。
[注意点] 条件付きアクセスを設定すると「セキュリティの規定値群」が利用できない
条件付きアクセスを設定すると「セキュリティの規定値群」が利用できません。
もし「セキュリティの規定値群」の設定で多要素認証を必須とする設定を入れている場合には、その設定を無効化してから、条件付きアクセスで全てのユーザーに対して多要素認証を必須とする設定を入れる必要があります。

上記にも少し見ていますが、このポリシーを設定しようとすると「自分のユーザーをロックアウトしないように」と警告が出てきます。
これは、ポリシーを適用させることで誰もサインイン行為が実施できなくなることを防ぐための措置なので、素直に従った方が間違いは起きないと思います。
自分以外にポリシーを適用し、ポリシーが想定通りの動きをするのであれば自分も追加するといった形で段階的にポリシー適用をすることをお勧めします。