Azure VM の作成(とリソースグループ作成)、JIT の設定が出来るアカウントは「所有者」か「共同作成者(英語名:Contributor)」のロールを持っていれば良いのですが、これらのロールは上位ロールなので通常アカウントに付与するには強力すぎます。
Azure VMとリソースグループの作成/削除、JIT 操作だけを許可するのでしたら、操作に必要なロールだけを付与すれば過剰権限付与にならないので、セキュリティ的におすすめです。
Azure VM 操作には、以下の組み込みロールを付与すれば操作可能になります。
仮想マシン共同作成者(英語名:Virtual Machine Contributor)
ネットワーク共同作成者(英語名:Network Contributor)
ストレージアカウント共同作成者(英語名:Storage Account
Contributor)
リソースグループの作成/削除と JIT 設定を可能にする組み込みロールは無いので、カスタムロールを作成します。
リソースグループを操作するには、以下の Actions を持ったカスタムロールが必要です
Microsoft.Resources/subscriptions/resourceGroups/read
Microsoft.Resources/subscriptions/resourceGroups/write
Microsoft.Resources/subscriptions/resourceGroups/delete
JIT を設定するには、以下の Actions を持ったカスタムロールが必要です
Microsoft.Security/locations/jitNetworkAccessPolicies/*
Microsoft.Security/*/read
Azure VM の作成/削除をせず、リモートアクセスするために JIT アクセスを要求を可能にするには、組み込みロールと、カスタムロールが必要です。
組み込みロール
仮想マシンのユーザー ログイン(英語名:Virtual Machine User Login)
カスタムロール
Microsoft.Security/locations/jitNetworkAccessPolicies/read
Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/action
Microsoft.Security/*/read
カスタムロールの作成の作成と、ロール割り当ては以下の手順で進めます
カスタムロール名 | 概要 | 許可する Action |
リソースグループ操作許可 | リソースグルーブの作成と削除を許可する |
Microsoft.Resources/subscriptions/resourceGroups/read Microsoft.Resources/subscriptions/resourceGroups/write Microsoft.Resources/subscriptions/resourceGroups/delete |
JIT 操作許可 | JIT 設定を許可する |
Microsoft.Security/locations/jitNetworkAccessPolicies/* Microsoft.Security/*/read |
JIT リクエスター | JIT アクセス要求を許可する |
Microsoft.Security/locations/jitNetworkAccessPolicies/read Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/Microsoft.Security/*/read |
グループ名 | 業務内容 | 割り当てるロール |
VM 作成者 | VM、リソースグループの作成削除と、JIT 設定をする | 仮想マシン共同作成者(組み込みロール) ネットワーク共同作成者(組み込みロール) ストレージアカウント共同作成者(組み込みロール) リソースグループ操作許可(カスタムロール) JIT 操作許可(カスタムロール) |
VM 操作者 | VM の作成/削除はせず、VM のリモート操作だけをする | 仮想マシンのユーザー ログイン(組み込みロール) JIT リクエスター(カスタムロール) |
ロールを付与したグループにメンバー追加
以下のカスタムロールを作成します
カスタムロール名 | 概要 | 許可する Action |
リソースグループ操作許可 | リソースグルーブの作成と削除を許可する |
Microsoft.Resources/subscriptions/resourceGroups/read Microsoft.Resources/subscriptions/resourceGroups/write Microsoft.Resources/subscriptions/resourceGroups/delete |
JIT 操作許可 | JIT 設定を許可する |
Microsoft.Security/locations/jitNetworkAccessPolicies/* Microsoft.Security/*/read |
JIT リクエスター | JIT アクセス要求を許可する |
Microsoft.Security/locations/jitNetworkAccessPolicies/read Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/Microsoft.Security/*/read |
リソースグループを操作できるようにするカスタムロールを作るには、「所有者」か「共同作成者」で「サブスクリプション」の「アクセス制御(IAM)」で「カスタムロールを作成する」で作成します。
カスタムロールの作成
カスタムロール名
アクセス許可の追加
Action の一部を入力すると対象が絞られる
Action に追加する操作を選択し追加
次へ
次へ
生成された JSON を確認して次へ
作成し OK
JIT を設定できるようにするには、直接カスタムロールの JSON を編集します
これは、JIT 操作のように * で操作許可する場合は、GUI で対象操作をポチポチ出来ないので、直接 JSON
を編集します。
(JIT の許可は、許可する操作が多すぎて GUI ポチポチは現実的ではない)
カスタムロールの作成
他の設定は不要なので JSON まで一気に進める
編集
actions に許可する操作を追加(カンマを忘れないように)し、保存
次へ
作成し OK
JIT アクセス要求のカスタムロールは、GUI ポチポチと JSON 編集の両方で作成します。(全て JSON 編集でも OK)
カスタムロールの作成
アクセス許可の追加
Microsoft.Security/locations/jitNetworkAccessPolicies
で対象を絞る
読み取りとその他を追加する
JSON まで飛ばす
編集モードにして Microsoft.Security/*/read を追加し(カンマを忘れずに)保存
内容を確認し、作成
カスタムロールのを修正する場合は、「役割」を開いて、該当カスタムロールを編集します。
ロールの割り当ては、AzureAD のグループに対して設定がお勧めです。
こうすれば、グループにメンバーを追加するだけでロールの割り当てが完了します。
個々のアカウントにロール割り当てしても良いのですが、ロール割り当て操作が面倒なのであまりお勧めしません。
今回は以下のグループを作成してみました
グループ名 | 業務内容 | 割り当てるロール |
VM 作成者 | VM、リソースグループの作成削除と、JIT 設定をする | 仮想マシン共同作成者(組み込みロール) ネットワーク共同作成者(組み込みロール) ストレージアカウント共同作成者(組み込みロール) リソースグループ操作許可(カスタムロール) JIT 操作許可(カスタムロール) |
VM 操作者 | VM の作成/削除はせず、VM のリモート操作だけをする | 仮想マシンのユーザー ログイン(組み込みロール) JIT リクエスター(カスタムロール) |
グループへのロール割り当ては、「アクセス制御(IAM)」の「ロールの割り当てを追加する」で割り当てます。
ロールの割り当てを追加する
役割を選択し、グループ名入力し保存する
これを繰り返してロールを割り当てます。
ロールの割り当て確認は、「ロールの割り当て」で確認します
JIT で Azure VM を保護する
http://www.vwnet.jp/Windows/Azure/2020081101/JIT.htm
Azure 組み込みロール - Azure RBAC | Microsoft Docs
https://docs.microsoft.com/ja-jp/azure/role-based-access-control/built-in-roles?WT.mc_id=AZ-MVP-36880
Azure portal を使用して Azure カスタム ロールを作成または更新する - Azure RBAC |
Microsoft Docs
https://docs.microsoft.com/ja-jp/azure/role-based-access-control/custom-roles-portal?WT.mc_id=AZ-MVP-36880
Azure カスタム ロール - Azure RBAC | Microsoft Docs
https://docs.microsoft.com/ja-jp/azure/role-based-access-control/custom-roles?WT.mc_id=AZ-MVP-36880
Copyright © MURA All rights reserved.