「[[マイクロソフト系技術情報 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 サブスクリプションの所有者を柔軟に設定できる。 --管理者権限を付与することなく、複数のユーザを同じサブスクリプションでの業務に[[招待>Microsoft Azure Active Directory#u0768137]]できる。 -管理・課金に関連するスコープへのアクセスが必ずしも必要ではない --外部のコラボレーター、ベンダー、フリーランサーと --連携している大企業や 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]], [[:セキュリティ]]