Azure Managed Service Column <Azure運用コラム>

RBAC(ロールベースアクセス制御)とは?Azureを安全に利用するための権限管理

Category: 入門編

2021.08.02

はじめに

企業活動においても、クラウドサービスの利用やモバイル端末の活用が進んでいますが、ここで重要となるのがクラウドネイティブなセキュリティ対策です。また昨今の社会情勢を背景としてテレワークが急速に普及していることを鑑みても、クラウド環境におけるセキュリティ対策を適切に行っておく必要性があるといえるでしょう。

この記事では、Microsoft Azureなどのクラウドサービスを安全に利用するのに役立つアクセス管理手段であるRBAC(ロールベースアクセス制御)についてご紹介します。

1. クラウドにおけるアクセス権限管理の現状

昨今、ビジネスシーンにおいてクラウドサービスの利用率が増加しています。

総務省が公開している「令和2年 情報通信白書」によると、2019年時点における企業のクラウドサービス利用率は「64.7%」となっており、前年の58.7%から大きく上昇しています。また新型コロナウイルス感染症の流行拡大によってテレワークが急速に推進された2020年以降には、この割合がさらに増加していることが推測できるでしょう。ニーズが増えたことにより新たなクラウドサービスも数多くリリースされています。クラウドサービスの活用範囲が広がった結果、クラウドで運用するシステムが増えてきたことで、権限の付与が複雑化しています。

また、特定の業務やプロジェクトにおいて、複数の部署や外部企業がクラウド上の同一システムにアクセスするケースも増えています。そのような状況下で、大きな課題となるのが「権限の付与」です。

これまで権限の付与については、管理者や経営陣には高い権限を付与し、一般従業員や外部のスタッフなどには低い権限を付与するなど、地位や役職に応じてレベルを区分するケースが一般的でした。しかし、複雑かつ専門性が求められるような業務においては、このような付与の手法でそのまま運用を続けていると、弊害が生じる可能性があります。

たとえば、開発者として関わる外部のスタッフに権限を付与する場合において、企業の経営などに関する重要な機密情報へのアクセスは厳禁としなければなりません。しかし外部スタッフが従事している業務の中で、開発において直接関わる必要がある重要データに関しては、経営陣以上に高いアクセス権限が必要となるでしょう。 このような状況下で発生する課題を解消し、クラウドの利便性を活かしたアクセス権限を適切に付与できる手段として、RBACが用いられているのです。

2. ククラウドの利便性を活かすアクセス権限手段「RBAC」とは

RBACとは、”Role Based Access Control”の頭文字をとった略称で、日本語では「ロールベースアクセス制御」となります。RBACは、クラウド活用に適したアクセス権限の管理手法として、Microsoft Azureをはじめとする数多くのクラウドサービスで、幅広く利用されています。なお、Microsoft Azureにおいては「Azure RBAC」という名称で提供されています。

RBACは「ロール(役割)をベースとしたアクセス制御」を行っています。先に述べたとおりこれまでの権限付与は、ユーザーを役職や部署ごとに区分することで権限を付与する手法が一般的でした。その一方でRBACにおいては、個々が持つ業務上の役割ごとに、どのような作業を行ってよいか判断の上、適正な権限を付与しています。

たとえば、開発業務に関わっている人物であれば、社外のスタッフでも「開発のための重要なシステム」にアクセスが可能となります。また、開発業務に関わっていない人であれば、たとえ経営者であってもそのシステムにはアクセスできない状態とすることが可能です。
このように、各ユーザーが業務上必要としているシステムにのみアクセス権を限定することで、セキュリティを高める手法がRBACです。

【RBACにおける権限付与の例】

役割 人事データ 財務データ 開発データ
人事 ×
経営 ×
開発 × ×

3. Microsoft AzureにおけるRBAC(Azure RBAC)

Azure RBACにおけるロールの割り当ては、以下に挙げる3つの要素で構成されています。ここでは、RBACが用いている3種の要素について、それぞれくわしくご紹介します。

3.1 セキュリティプリンシパル(ユーザー)

Microsoft Azureの各種リソースにアクセスする、ユーザーやグループを指します。Azure RBACにおいては、ユーザー、グループ、サービスプリンシパル(※1)、マネージドID(※2)を表しています。これらのセキュリティプリンシパルのいずれかに、ロールが割り当てられます。

※1.サービスプリンシパル:リソース/サービス レベルの無人操作を実行するためにテナント内で作成する Azure Active Directory アプリケーション リソースのこと。アプリケーションID とパスワードまたは証明書が与えられた、独自のユーザーID。

※2.マネージドID:リソースで割り振られた、 Azure Active Directory上の ID。

3.2 ロール(役割)

各ユーザーの役割を定義します。ロールの定義には、実行可能な操作(読み取り、書き込み、削除など)を登録します。Azure RBACでは、ロールを高レベルにすることも、限定的にすることも可能です。

3.3 スコープ(場所)

アクセスが適用される、リソースの場所を示します。ロールを割り当てる際にスコープを定義することにより、操作の制限が可能となります。

なお、Azure RBACでは、Azure portalから以下のステップでロールを割り当てています。

  1. 必要なスコープを特定する
  2. [ロールの割り当ての追加]ウィンドウを開く
  3. 適切なロールを選択する
  4. アクセスを必要とするユーザーを選択する
  5. ロールを割り当てる

なお、さらに詳細な手順を知りたい方は、以下のMicrosoftドキュメントをご参照ください。
【Azure portal を使用して Azure ロールを割り当てる】

4. Azureにおけるロールの種類

Azureでは、従来のサブスクリプション管理者ロールと、Azureロール、およびAzure ADロールの、3種のロールが定義できます。

4.1 従来のサブスクリプション管理者ロール

アカウント管理者、サービス管理者、および共同管理者などといったような、以前から用いられてきたタイプのアクセス権限を割り当てます。

4.2 Azureロール

Azure VMやAzure Storageなどの、各種リソースへのアクセス権限を割り当てます。

4.3 Azure ADロール

Azure Active Directoryリソースへのアクセス権限を割り当てます。具体的なAzure Active Directoryリソースには、ユーザーの作成や編集、他のユーザーへの管理ロールの割り当て、ユーザーパスワードのリセット、ライセンスやドメインの管理などがあります。

5. Azureにおけるロールの要素

Azure RBACには、70を超える組み込みロールが用意されています。それらのなかで基本的となるAzureロールには、以下の4つが挙げられます。なお、以下の4つのうち1~3までは、すべてのリソースの種類に適用されます。

  1. 所有者
    すべてのリソースへのフルアクセスが可能です。また、アクセスを他のユーザーに委任します。
  2. Contributor(共同作成者)
    すべての種類のAzureリソースを作成および管理できます。Azure Active Directoryで新しいテナントを作成します。なお、他のユーザーにアクセスを許可することはできません。
  3. Reader(閲覧者)
    Azureリソースを表示します。
  4. User Access Administrator Azure (ユーザーアクセス管理者)
    リソースに対するユーザーアクセスを管理します。

6. Azureにおけるスコープの要素

RBACにおける「スコープ」とは、アクセス権限を付与するリソースをセットにしたものです。アクセス権の付与にあたってロールを割り当てる際には、セキュリティプリンシパルに実際に必要なアクセス権のみを付与できるよう、このスコープについて理解することが重要です。

スコープを制限することで、セキュリティプリンシパルが侵害された場合にも、リスクに晒されるリソースの制限が可能です。Azureでは、管理グループ、サブスクリプション、リソース グループ、リソースの4段階でスコープを指定できます。

スコープは、親子関係で各階層に分けられることで構造化されています。階層のレベルによってスコープがさらに限定的となり、また選択するレベルによってロールの適用範囲が決定されます。なお、上位レベルのロールのアクセス許可が下位レベルに継承されるようになっています。

以下は、Azureロールの具体的な設定例を図版化したものです。システムや環境、部署やチームによってロールを設定する際の参考にしてください。

【Azureロールの設定例】

■部門ごとに別のサブスクリプションに独立したシステムがあるケース

部署 システムA システムB
部署A 所有者 閲覧者
部署B 閲覧者 所有者

■リソースグループで本番環境、開発環境を分けているケース (開発環境は誰でも触れるが、本番環境は特定のチームだけ)

チーム 本番環境 開発環境
開発チーム 所有者 所有者
評価チーム 閲覧者 共同制作者

7. Azure RBACを利用する際のポイント

Azure RBACを利用する場合、Microsoft Azureのサブスクリプションサービスの申し込みを行う必要があります。なお、Azure RBACの機能はこのサブスクリプションに含まれているため、別途オプションサービスなどを申し込む必要や追加料金を支払う必要はありません。

Azure ロールの割り当てには「Microsoft.Authorization/roleAssignments/write」へのアクセス許可が必要となります。また、前述した3つの要素(セキュリティプリンシパル、ロールの定義、スコープ)を、それぞれ指定する必要があります。

Azure RBACでは、容易かつ柔軟にアクセス権限の付与を行うことができます。しかしその一方で、簡単で柔軟であるからこそ、ついつい場当たり的にロールを割り当ててしまうことも考えられます。それによって、せっかく適正にアクセス権限を付与することを試みたにもかかわらず、従来以上に付与権限の複雑化を招いてしまうケースも想定できるでしょう。このため、各要素の設定については、事前にある程度の方向性を定めておき、計画性を持って行うべきでしょう。

まとめ

企業ビジネスにおけるクラウドの活用範囲は、今後さらに急拡大していくことが予想されます。ビジネスにおいて、Microsoft Azureの機能や利便性を十分に活用するためにも、Azure RBACによるアクセス権限の管理を取り入れてみてはいかがでしょうか。

Microsoft Azureの各サブスクリプション、リソースグループなどの単位で、柔軟かつ簡単にアクセス権限の管理を行えるAzure RBACをもしまだ導入していなければ、今からでもぜひ利用を検討することをおすすめします。

Azure設計・構築を任せたい

Azure構築サービス

Azure構築サービス

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Tag: Azure RBAC セキュリティ

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php