- IAM 入門
- RBAC (Role-Based Access Control)とは?
役割ベースのアクセス制御(RBAC)とは?
役割ベースアクセス制御(Role-Based Access Control) (RBAC) という言葉は、役割に基づいて権限を管理する認可戦略のことです(そのため、「役割ベースの(Role-Based)」という言葉が最初につきます)。一般的に、RBAC 認可戦略は、人事を役割で分類する必要のある、中規模から大規模の組織が利用しています。役割は、リソースを利用する際のアクセス権と与えられた許可に関連しています。各ユーザーに役割を割り当てることで、彼らが、それぞれの仕事の遂行に必要な許可のみを持てるようにしています。これは、全体的なサイバーセキュリティ戦略において重要な部分を占めています。
これらの役割は組織構造や、その他のさまざまな部門に反映することもよくあります。言い換えると、特定の部門の一従業員は、その役割要件に基づいてシステムへのアクセス権限が割り当てられており、そのためタスク実行に必要な関連情報にアクセスすることができます。例を挙げると、
人事部の従業員には、極秘データとみなされる給与情報へのアクセス権限があります。おそらく、企業は、こうしたアクセスを人事部門の従業員のみに制限し、他の従業員がこのデータにアクセスすることはないでしょう。
一方、営業部門の管理者は、人事担当者がアクセスできない営業報告書へのアクセス権限を持っています。
しかし、RBAC は、特に部門を基準にしているわけではありません。むしろ、各従業員の役割に関連付けられた役割と権限に基づいているのです。例えば、代理権には、法的根拠に基づき会社を代表する特権が割り当てられています。法務部のユーザーは、全員、代理権を有することになりますが、他のユーザー(CEOや取締役会)がそのような役割を持つ場合もあります。
役割ベースのアクセス制御とは、広い意味でのID とアクセスの管理(IAM)戦略の一環なのです。ここからは、役割ベースのアクセス管理(RBAC)の概要、および企業リソースや極秘情報に対して、どのように権限制御レベルを適用するかについてお話します。
役割ベースのアクセス制御(RBAC)とは?
RBAC を使って、経費管理の支援システムにおける特権をどのように制御するのか説明します。この架空のシステムでは、次のアクションを実行することができます:
- 経費読み取り
- 経費作成
- 経費承認
- 経費支払い
これらのアクションは、システムユーザーが使用できる権限を示します。
次の役割でこれらの権限をグループ化することができます:
- 経費提出者(経費の読み取りと作成ができる)
- 経費承認者(経費の読み取りと承認ができる)
- 経費支払者(経費の読み取りと支払ができる)
RBAC システムは、企業リソースへのアクセス権限に関するそれらの役割を作成することができます。一旦システムを設定すると、システム管理者は関連する一連の権限を持つユーザーを、これらの役割に割り当てることができます。
RBAC のメリット
RBAC 戦略の最大のメリットは、まとめて割り当てたり、取り消したりできるよう、さまざまな権限をグループ化する機能です。1つの役割における一連の権限を変更することにより、1回の手続きで、1つのユーザーグループに対する権限を変更することができます。こうすることで社内システムの権限の取り扱いに関わる労力を減らすことができます。
たとえば、会社が新しい経費を受理しないことを決定したとします(かねてから経費を提出している従業員がすでに法人カードを持っている場合など)。その場合には、ユーザーが新しい経費を送信しないよう、システム管理者は[経費提出者]から[経費作成]の権限を削除するだけで済みます。アプリケーションのユーザーは、以前に提出した経費を確認することができますが、新しく作成することはできなくなります。
役割ベースのアクセス制御のもう1つのメリットは、ユーザー特権の監視が制御しやすくなることです。ユーザーに割り当てられた権限に問題があった場合は、1つのロール(役割)を編集するだけで修正ができます。ただし、ユーザー単位で権限を制御している場合は、何百何千ものユーザーを監視しなければならないということになります。もちろん、これは役割の定義が適切に構成されているかに依ります。
Auth0 を利用して役割ベースのアクセス制御を実行
あらゆる業界でお客様に選ばれている Auth0 は、RBAC をそのコアにしています。Auth0 は、役割ベースの許可を制御する RBACの実装を簡易化するのに役立ちます。
たとえば、ある役割を持つユーザーが API にアクセスできて、他の社員ができないようにするために、自社アプリケーションの API を RBAC と Auth0 で保護するには、4つのステップからなるシンプルな手順に従います。:
1.まず、[Auth0 ダッシュボードの API を登録する]必要があります。](https://auth0.com/docs/getting-started/set-up-api).
2.登録後、この API が使用する許可を定義する 必要があります。
3.権限のマップ化を行ったら、 これらの許可を体系化する役割を作成します。
4.最後に、 ユーザーをこれらの役割に割り当てる必要があります。
RBAC の代替となる、属性ベースのアクセスコントロール(ABAC)
コンピューターサイエンティストたちは、アクセス制御システムを保護するため、多数の認可戦略を開発してきました。RBAC はこれらの戦略のうちの1つに過ぎません。その選択肢に、属性ベースのアクセス制御(ABAC)があります。この戦略では、リソースにアクセスする権限をユーザーに付与する際に、ユーザーの役割ではなく、ユーザーの属性(資格など)を使用します。ユースケースの例としては、請負業者が社内業務を実行するには、特定のライセンスを持っていることを証明しなければならない、などです。ライセンスの保持は、ユーザーのアクセス権限を付与する際の属性となります。
認証または認可についての詳しい内容は、次の記事をご覧ください:
- [認証とは何か?](https://auth0.com/intro-to-iam/what-is-authentication/
- 認可とは何か?
より詳しく学ぶには?
[IAM 入門ページ](https://auth0.com/intro-to-iam/)で、さらに多くの、ID とアクセスの管理に関するトピックをご覧ください。
Table of contents