こちらの内容についてMicrosoft社のAzureドキュメントを見ながら勉強し理解した内容を共有する。

この記事をサクッと読んでからMicrosoft社のドキュメントを読むと少し理解が早いかもしれない。(逆に混乱したらすみません)
昔の日本語ドキュメントサイトに比べて最近は本当に改善されて読みやすくなったので、もっと深く理解したいと思った方は記事途中に参照リンクを貼っておくのでそちらを参照されたし。
Azure RBACとは
RBACは、Azure ADに組み込まれたアクセス制御機能の1つ。RBACを理解するためには、Azure AD、Management group、Azure Subscription、Azure Resource Group, Resourceの関係を理解する必要がある。

Azure RBACは、Azure AD で管理しているユーザー、グループ、アプリケーションが、どのAzureリソースに対して、どのような操作を実施できるかを制御する。
用語
- Azure AD
- ユーザー、グループ、アプリケーションの管理機能とAzureリソースへのアクセス制御を提供する
- Azureリソース
- 仮想ネットワーク(Virtual Network – VNet), 仮想マシン(Virtual Machine – VM), ネットワークセキュリティグループ(Network Security Group – NSG)などのAzureで管理しているリソース群
- セキュリティプリンシパル(Who)
- ユーザー
- グループ
- アプリケーション(=サービスプリンシパルともいうらしい)
- ロール(What)
- Azure AD ロール(Azure ADへのアクセス権限を定義したもの)
- Azureロール(Azure リソースへのアクセス権限を定義したもの)
- 従来のサブスクリプション管理者ロール
- Azureリソースのスコープ(Where)
- 管理グループ
- サブスクリプション
- リソースグループ
- リソース

ロールの種類
ロールには3種類あり、それぞれ管理スコープが異なる
- Azure ADロール
- Azure ADテナント自体のアクセス権限を定義した組み込みロール
- 「全体管理者」
- 「アプリケーション管理者」
- 「アプリケーション開発者」
- 「課金管理者」
- Azure ADテナント自体のアクセス権限を定義した組み込みロール
- Azure ロール
- 管理グループ配下のAzureリソースへのアクセス権限を定義したロール
- 「所有者」
- 「共同作成者」
- 「閲覧者」
- 「ユーザーアクセス管理者」
- 管理グループ配下のAzureリソースへのアクセス権限を定義したロール
- 従来のサブスクリプション管理者ロール
- サブスクリプション配下のAzure リソースのロール
- サービス管理者
- 共同管理者
- サブスクリプション配下のAzure リソースのロール

Azureロール
以下は基本的な組み込みロール、必要に応じてカスタムロールも作成できる。
- 所有者
- 他ユーザーへのアクセス許可を委任する権限を含めてリソースに対する全権限
- 共同作成者
- リソースへの全権限を持つが、他ユーザーへのアクセス許可はできない
- 閲覧者
- リソース表示のみ
- ユーザーアクセス管理者
- リソース表示とリソースへのユーザーアクセス管理のみ
Azure RBACの利用シーン
例えば以下のようなアクセス制御を行いたい場合に、RBACが有効。
- ユーザー1にサブスクリプション内のすべての仮想マシンの管理を許可
- ユーザー2にサブスクリプション内のすべての仮想ネットワーク管理を許可
- グループ1にサブスクリプション内のすべてのSQLデータベース管理を許可
- ユーザー3にリソースグループ内のすべてのリソース管理を許可
- アプリケーション1にリソースグループ内のすべてのリソースへのアクセスを許可
Azureリソースのスコープの継承関係
各Azureスコープには継承関係が適用される。
- 管理グループに付与されたロールは、配下のすべてのサブスクリプションにも適用される
- サブスクリプションに付与されたロールは配下のすべてのリソースグループにも適用される
- リソースグループに付与されたロールは配下のリソースにも適用される
具体的な例
Azure ADにはマーケティング部門の従業員が登録されている「マーケティンググループ」がある。
Azureで販売システムを運用しており、「販売リソースグループ」にてVNet、VM、Storageなどを管理している。
例えば、マーケティング部門の従業員が販売システムを管理するために権限を付与する場合、Azureポータル上で、スコープである「販売リソースグループ」のIAMに対して
- セキュリティプリンシパル=「マーケティンググループ」
- ロール=「共同作成者」
というアクセス許可を設定すればよい。
手順としては
- Azureポータルでスコープを特定する
- アクセス許可する対象のセキュリティプリンシパルを指定する
- ロールを付与する
1つのスコープに対して同時に2つ以上のロールを持つセキュリティプリンシパルの場合
Azure RBACは許可モデルである。
例えば、「販売リソースグループ」に対して「閲覧者」と「共同作成者」の2つロールが許可されたユーザーの場合、より権限の強いアクセス許可が付与されるため、「共同作成者」としてのアクセスが許可されることになる。
コメント