RBACとABAC
アクセス制御モデルを理解します
「RBACとABAC」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
アクセス制御モデル
アクセス制御モデルは、権限をどのように決定するかを定義します。最も広く使われているモデルのうち、2つがRBACとABACです。
適切なモデルを選ぶことは、権限の拡張性と柔軟性を左右します。
RBACの基本
ロールベースアクセス制御(RBAC)は、ロールに権限を付与し、その後ユーザーをロールに割り当てます。
ユーザーは、自分に割り当てられたロールのすべての権限を継承します。ロールのメンバーシップを管理することで、アクセスを管理します。
RBACの例
editorやviewerのようなロールを考えてみます。
- editor:ドキュメントの読み取りと書き込み
- viewer:読み取り専用
Aliceにeditorロールを割り当てると、両方の権限が自動的に付与されます。
role: editor
permissions: [doc.read, doc.write]
user: alice -> role: editorRBACの長所
RBACが広く使われている理由は、次の特長があるためです。
- 理解と監査が容易です。
- 似たニーズを持つ多数のユーザーに対して拡張可能です。
- 確認しやすい(誰がどのロールを持っているか)。
RBACの短所:ロール爆発
アクセスが細かな条件に数多く依存すると、editor_finance_emea_tempのようなロールを無数に作ることになります。
このロール爆発により、大規模環境でのRBACの管理が難しくなります。
ABACの基本
属性ベースアクセス制御(ABAC)は、ポリシールールによって評価される属性を使ってアクセスを決定します。
属性は、ユーザー、リソース、アクション、環境を表します。
ABACの例
ABACポリシーでは、専用のロールを作成せずに、複雑で豊かなルールを表現できます。
ALLOW read IF user.department == resource.department
AND user.clearance >= resource.sensitivity
AND env.time BETWEEN 09:00 AND 18:00ABACの長所
ABACには次の特長があります。
- きめ細かく
- ロール爆発が起きず、1つのポリシーで多くのケースに対応できます。
- 時間、場所、デバイスなどの動的な要素を利用できます。
ABACの短所
ABACは、強力である代わりに単純さを失います。
- ポリシーが複雑になり、監査が難しくなることがあります。
- クリーンで信頼できる属性データが必要です。
- 「誰がXにアクセスできるか」を一目で確認するのが難しくなります。
両方の組み合わせ
多くのシステムでは、広い範囲の制御にRBACを使い、細かな条件にはABACを使うハイブリッド方式を採用しています。
たとえば、ロールで基本的なアクセスを許可し、属性ルールで地域や時間帯に応じてさらに制限します。
モデルの選択
目安は次のとおりです。
- アクセスが職務に明確に対応する場合は、RBACを使用します。
- 判断がコンテキストに依存する場合や、頻繁に変わる場合は、ABACを使用します。
- 両方の長所を生かすには、組み合わせて使用します。
簡単な確認
ある組織では、あらゆる組み合わせに対応するために、editor_finance_emea_contractorのようなロールを作り続けています。この問題を軽減できるのは、どのモデルでしょうか。
まとめ
RBACとABACを比較しました。
- RBAC:シンプルでロールを中心に制御できますが、ロールが爆発的に増えやすくなります。
- ABAC:柔軟で属性を中心に制御できますが、監査がより複雑になります。
- ハイブリッド方式では、両者の長所を組み合わせます。
次は、シングルサインオンとフェデレーションについて説明します。
よくある質問
「RBACとABAC」レッスンは無料ですか?
はい。「RBACとABAC」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「RBACとABAC」で何を学びますか?
アクセス制御モデルを理解します ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「RBACとABAC」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- IAMの基礎
- RBACとABAC
- SSOとフェデレーション
- 最小権限