「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Azure Resource Manager]]

* 目次 [#ga39c47d]
#contents

*概要 [#g05b61f4]
管理や課金という観点から、RBAC 機能は、さまざまなシナリオで~
時間効率と管理効率に優れた方法であることが証明されている。

-管理者アカウント (サブスクリプション レベルでのサービス管理者ロール) によって
--管理される 1 つの Azure サブスクリプションの所有者を柔軟に設定できる。
--管理者権限を付与することなく、複数のユーザを同じサブスクリプションでの業務に招待できる。 

-管理・課金に関連するスコープへのアクセスが必ずしも必要ではない
--外部のコラボレーター、ベンダー、フリーランサーと
--連携している大企業や SMB 向けの、

>セキュリティ管理を実現できる。

**前提 [#a5cf26fd]
-[[基礎知識>Azure Subscriptionの管理手順@エンプラ#q9fbb2b1]]

**機能 [#gb0259c8]
-[[スコープ>#ae75b754]]に対する特定アクションにアクセスできるユーザをロールベースのアクセス制御 (RBAC : Role Based Access Control)で制御できる。

-アクセス権を付与するには、ユーザ、グループ、およびアプリケーションに適切な [[ロール>#ea4f95c8]]を、特定の[[スコープ>#ae75b754]]に割り当てる。

-アクセス権は、Azure ポータル、Azure コマンドライン ツール、および Azure 管理 API を使用して割り当てる。

-Azure ポータルで RBAC を設定する場合、Access Control ( IAM : Identity and Access Management ) から行う。

*アクセス権の割当 [#k1ba75af]
-サブスクリプションの所有者はAzure Portalなどを使用して、~
他のユーザに詳細なロールを割り当てることができる。
-そのユーザは環境内の特定スコープのリソースを管理できるようになる。

**関連 [#z2c99ad1]
各[[ロール>#ea4f95c8]]は、以下のように(ユーザ <---> グループ)と[[スコープ>#ae75b754]]を関連付ける。

>(ユーザ <---> グループ) <---> [[ロール>#ea4f95c8]] <---> [[スコープ>#ae75b754]]

**継承 [#se8f4211]
各[[スコープ>#ae75b754]]は、以下のようにRBACを継承する。

>サブスクリプション <--- リソース・グループ <--- リソース

*スコープ [#ae75b754]
[[ロール>#ea4f95c8]]に割り当てるスコープ

**指定できるスコープ [#i040f172]
-サブスクリプション
-リソース グループ
-または単独のリソース

**アクセス権の継承 [#q8598e80]
割り当てられたアクセス権は、下位スコープに継承される。

-親スコープで[[ロール>#ea4f95c8]]が割り当てられると、その親に含まれる子へのアクセス権も付与される。

-例えば、リソース グループへのアクセス権を持つユーザは、~
Web サイト、仮想マシン、サブネットなど、~
リソース グループに含まれるすべてのリソースを管理できる。

*ロール [#ea4f95c8]

**ロールの定義 [#e76e3def]
-Actions、NotActionsを定義して、AssignableScopesで[[スコープ>#ae75b754]]に割り当てる。
-アクセス権は、Actions の操作から NotActions の操作を差し引くことで算出される。

***ロール定義 [#f6c3255d]
アクセス許可セットを記述

***ロール割り当て [#dc597603]
特定の[[スコープ>#ae75b754]]のIDに定義を関連付ける。

**ロールの種類 [#p2c79aeb]
ロールの種類には、
-[[組み込みロール>#j27599ed]]
-[[カスタム ロール>#gc65de81]]

がある。

***組み込みロール [#j27599ed]
ユーザ、グループ、サービスに割り当てられる組み込みのロールが用意されている。 

-4つのプラットフォーム ロール
--所有者~
アクセス権を含めすべてを管理できる。
--共同作業者~
アクセス権以外のすべてを管理できる。
--閲覧者~
すべてを閲覧できるが、変更はできない。
--ユーザ アクセス管理者~
Azure リソースへのユーザ アクセスを管理できます。

-リソース固有ロール

--仮想マシンの共同作業者
---仮想マシンを管理できるが、
---仮想マシンのアクセス許可は設定できない。
---接続先の仮想ネットワークまたはストレージ アカウントの管理はできない。

--ネットワークの共同作業者
---すべてのネットワーク リソースを管理できるが、
---ネットワーク リソースのアクセス許可は設定できない。

--ストレージ アカウントの共同作業者
---ストレージ アカウントを管理できるが、
---ストレージ アカウントのアクセス許可は設定できない。

--SQL Server の共同作業者
---SQL サーバーおよびデータベースを管理できるが、
---そのセキュリティ関連ポリシーは設定できない。

--Web サイトの共同作業者
---Web サイトを管理できるが、
---接続されている Web プランは設定できない。

***カスタム ロール [#gc65de81]
組み込みのロールの中にアクセス権に関する特定の要件を満たすものがない場合、~
Azure のロールベースのアクセス制御 (RBAC) でカスタム ロールを作成する。

***参考 [#o740dd43]
-Microsoft Azure サポート チーム サイト
--Microsoft Azure の各種アカウント権限について~
https://blogs.msdn.microsoft.com/dsazurejp/2013/10/02/303/
--アカウント管理者・サービス管理者・共同管理者の変更方法について~
https://blogs.msdn.microsoft.com/dsazurejp/2013/10/02/293/

-Azure 管理者サブスクリプション ロールを追加または変更する~
https://docs.microsoft.com/ja-jp/azure/billing/billing-add-change-azure-subscription-administrator#types-of-azure-admin-accounts

*設定例 [#g03fbf16]

**組み込みロール [#j117f124]

***管理者権限を付与する。 [#kc0d5a6e]
-プラットフォーム ロールを使用する。

-リソース固有ロールを使用する。

***作業者に権限を付与する。 [#tb97e0ed]
-プラットフォーム ロールを使用する。

-リソース固有ロールを使用する。

**カスタム・ロール [#nec899f1]

***管理者権限を付与する。 [#ka8ea084]

***作業者に権限を付与する。 [#f47adf4e]
-「DevTest Labs User」組込ロールを更に絞った、~
「仮想マシンの起動と停止」カスタム・ロールを作成。

-[[Azure Cloud Shell]]などを使用して以下を実行。
--SubsctionId を確認
 Get-AzureRmSubscription
--カスタム・ロールを作成
 $role = Get-AzureRmRoleDefinition "Virtual Machine Contributor"
 
 $role.Id = $Null
 $role.Name = "仮想マシンの起動と停止"
 $role.Description = "仮想マシンの起動と停止、再起動ができます"
 
 $role.Actions.Clear()
 $role.Actions.Add("Microsoft.Compute/VirtualMachines/start/action")
 $role.Actions.Add("Microsoft.Compute/VirtualMachines/restart/action")
 $role.Actions.Add("Microsoft.Compute/VirtualMachines/read")
 $role.Actions.Add("Microsoft.Compute/virtualMachines//read")
 $role.Actions.Add("Microsoft.Compute/VirtualMachines/deallocate/action")
 
 $role.AssignableScopes.Clear()
 $role.AssignableScopes.Add("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") <--- Get-AzureRmSubscription で取得した SubsctionId を指定。
 
 New-AzureRmRoleDefinition -Role $role

*参考 [#z29ebd51]
-Azure でのリソース アクセスについて~
https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-understanding-resource-access

**RBAC を使用したアクセスとアクセス許可 [#d3c11fe6]

-RBAC を使用したアクセスとアクセス許可の管理 - Azure RBAC~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-control-what-is

***ロールの定義 [#l8d5f516]
-Azure リソースのアクセス権の割り当ての確認~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-control-manage-assignments
-Azure Portal におけるロールベースのアクセス制御~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-control-configure

***ロールの種類 [#m78cd5ca]
-Azure ロールベースのアクセス制御の組み込みロール~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-built-in-roles
-Azure RBAC のカスタム ロールの作成~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-control-custom-roles

**アクセス権(ロール)の割当 [#l0030995]
-ロールベースのアクセス制御のカスタム ロールを作成して Azure の内部および外部ユーザーに割り当てる~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-control-create-custom-roles-for-internal-external-users

-Azure リソースの RBAC でカスタムロールを作成する – Junichi Anno's blog~
https://blogs.technet.microsoft.com/junichia/2016/12/13/azure-%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE-rbac-%E3%81%A7%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/

----
Tags: [[:インフラストラクチャ]], [[:クラウド]], [[:Azure]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS