Azure Firewall ポリシーを使用して規則の階層を定義する
セキュリティ管理者は、ファイアウォールを管理し、オンプレミスとクラウドのデプロイ全体でコンプライアンスを確保する必要があります。 重要なコンポーネントは、ファイアウォール規則を自動的に作成するように CI/CD パイプラインをアプリケーション チームが柔軟に実装できるようにする機能です。
Azure Firewall ポリシーを使用すると、規則の階層を定義し、コンプライアンスを適用することができます。
- 子アプリケーション チーム ポリシーの上に中央の基本ポリシーをオーバーレイする階層構造を指定します。 基本ポリシーは優先順位が高く、子ポリシーの前に実行されます。
- Azure のカスタムの役割定義を使用して、基本ポリシーを誤って削除することを防止し、サブスクリプションまたはリソース グループ内の規則コレクション グループへの選択的なアクセスを付与します。
ソリューションの概要
この例の大まかな手順は次のとおりです。
- Security チーム リソース グループにベース ファイアウォール ポリシーを作成します。
- 基本ポリシーで IT セキュリティ固有の規則を定義します。 これにより、トラフィックを許可または拒否する規則の共通セットが追加されます。
- 基本ポリシーを継承するアプリケーション チーム ポリシーを作成します。
- ポリシーでアプリケーション チーム固有の規則を定義します。 また、既存のファイアウォールから規則を移行することもできます。
- Microsoft Entra カスタム ロールを作成して、規則コレクション グループへのきめの細かいアクセスを用意し、ファイアウォール ポリシー スコープでロールを追加します。 次の例では、Sales チームのメンバーは、Sales チームのファイアウォール ポリシーの規則コレクション グループを編集できます。 Database チームと Engineering チームにも同じことが当てはまります。
- ポリシーを対応するファイアウォールに関連付けます。 Azure ファイアウォールには、割り当てられたポリシーを 1 つだけ割り当てることができます。 このためには、各アプリケーション チームが独自のファイアウォールを所有している必要があります。
ファイアウォール ポリシーを作成する
- 基本のファイアウォール ポリシー。
アプリケーション チームごとにポリシーを作成します。
- Sales ファイアウォール ポリシー。 Sales ファイアウォール ポリシーは、基本のファイアウォール ポリシーを継承します。
- Database ファイアウォール ポリシー。 Database ファイアウォール ポリシーは、基本ファイアウォール ポリシーを継承します。
- Engineering ファイアウォール ポリシー。 Engineering ファイアウォール ポリシーも、基本のファイアウォール ポリシーを継承します。
規則コレクション グループにアクセスするカスタム ロールを作成する
各アプリケーション チームに対してカスタム ロールを定義します。 ロールには操作とスコープを定義します。 アプリケーション チームは、それぞれのアプリケーションの規則コレクション グループを編集できます。
おおまかに説明すると、次の手順に従ってカスタム ロールを定義します。
サブスクリプションを取得します。
Select-AzSubscription -SubscriptionId xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx
次のコマンドを実行します。
Get-AzProviderOperation "Microsoft.Support/*" | FT Operation, Description -AutoSize
Get-AzRoleDefinition コマンドを使用して、閲覧者ロールを JSON 形式で出力します。
Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
エディターで ReaderSupportRole.json ファイルを開きます。
JSON 出力を次に示します。 各種のプロパティについては、Azure カスタム ロールに関するページを参照してください。
{
"Name": "Reader",
"Id": "acdd72a7-3385-48ef-bd42-f606fba81ae7",
"IsCustom": false,
"Description": "Lets you view everything, but not make any changes.",
"Actions": [
"*/read"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/"
]
}
JSON ファイルを編集して、
*/read", "Microsoft.Network/*/read", "Microsoft.Network/firewallPolicies/ruleCollectionGroups/write
操作を Actions プロパティに追加します。 read 操作の後に必ずコンマを追加してください。 この操作により、ユーザーは規則コレクション グループを作成および更新できるようになります。
AssignableScopes で、サブスクリプション ID を次の形式で追加します。
/subscriptions/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx
明示的なサブスクリプション ID を追加する必要があります。 追加しない場合、役割をサブスクリプションにインポートできません。
Id プロパティ行を削除し、IsCustom プロパティを true に変更します。
Name および Description の各プロパティを「AZFM 規則コレクション グループ作成者」と「このロールのユーザーはファイアウォール ポリシー規則コレクション グループを編集できます」に変更します
JSON ファイルは次の例のようになります。
{
"Name": "AZFM Rule Collection Group Author",
"IsCustom": true,
"Description": "Users in this role can edit Firewall Policy rule collection groups",
"Actions": [
"*/read",
"Microsoft.Network/*/read",
"Microsoft.Network/firewallPolicies/ruleCollectionGroups/write"
],
"NotActions": [
],
"DataActions": [
],
"NotDataActions": [
],
"AssignableScopes": [
"/subscriptions/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx"]
}
新しいカスタム ロールを作成するには、New-AzRoleDefinition コマンドを使用して、JSON ロール定義ファイルを指定します。
New-AzRoleDefinition -InputFile "C:\CustomRoles\RuleCollectionGroupRole.json
カスタム ロールの一覧表示
すべてのカスタム ロールを一覧表示するには、Get-AzRoleDefinition コマンドを使用します。
Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
Azure portal でカスタム ロールを確認することもできます。 サブスクリプションにアクセスし、 [アクセス制御 (IAM)] 、 [ロール] の順に選択します。
詳細については、Azure PowerShell を使用して Azure カスタム ロールを作成する」をご覧ください。
カスタム ロールにユーザーを追加する
ポータルで、AZFM 規則コレクション グループの作成者ロールにユーザーを追加し、ファイアウォール ポリシーへのアクセスを付与することができます。
- ポータルから、アプリケーション チームのファイアウォール ポリシーを選択します (SalesAppPolicy など)。
- [アクセス制御] を選択します。
- [ロールの割り当ての追加] を選択します。
- ロールにユーザーまたはユーザー グループ (たとえば、Sales チーム) を追加します。
他のファイアウォール ポリシーについても、この手順を繰り返します。
まとめ
カスタム役割を使用したファイアウォール ポリシーを使用して、ファイアウォール ポリシー規則コレクション グループへの選択的アクセスを付与できるようになりました。
ユーザーには以下を行うアクセス許可がありません。
- Azure Firewall またはファイアウォール ポリシーを削除する。
- ファイアウォール ポリシー階層、DNS 設定、または脅威インテリジェンスを更新する。
- AZFM 規則コレクション グループ作成者グループのメンバーではないファイアウォール ポリシーを更新する。
セキュリティ管理者は、基本ポリシーを使用してガードレールを適用し、企業の必要に応じて特定の種類のトラフィック (ICMP など) をブロックすることができます。