データ RBAC の概要
データのロールベース アクセス制御(データ RBAC)は、 個々のユーザーロールを使用して、組織内のデータへのユーザー アクセスを制限するセキュリティ モデルです。 データ RBAC を使用すると、管理者がスコープを定義してユーザーに割り当て、ユーザーが自分のジョブ機能に必要なデータにのみアクセスできるようにします。
このページでは、データ RBAC の概要について説明し、ラベルとスコープが連携してデータアクセス権限を定義する仕組みについて解説します。
データ RBAC と機能 RBAC の違い
データ RBAC と機能 RBAC はどちらもシステム内のアクセスを制御する方法ですが、焦点が異なります。
機能 RBAC は、システム内の特定の機能へのアクセスを制御します。ユーザーがアクセスできる機能を、ユーザーのロールに基づいて決定します。たとえば、ジュニア アナリストはダッシュボードの表示のみが可能で、検出ルールの作成や変更はできませんが、シニア アナリストは検出ルールの作成と管理の権限を持つことができます。機能 RBAC の詳細については、IAM を使用して機能アクセスを制御するをご覧ください。
データ RBAC は、システム内の特定のデータや情報へのアクセスを制御します。ユーザーがデータを表示、編集、削除できるかどうかを、ユーザーのロールに基づいて制御します。たとえば、顧客管理(CRM)システムでは、営業担当者は顧客の連絡先データにアクセスできますが、財務データにはアクセスできません。一方、財務マネージャーは財務データにはアクセスできますが、顧客の連絡先データにはアクセスできません。
データ RBAC と機能 RBAC は、包括的なアクセス制御システムを提供するために併用されることがよくあります。たとえば、特定の機能(機能 RBAC)にアクセスできても、その機能内での特定のデータへのアクセスはロールに基づいてさらに制限される場合があります(データ RBAC)。
実装を計画する
実装を計画するには、Google Security Operations
事前定義された Google SecOps ロールと権限のリスト
を確認し、組織のニーズに合わせて調整します。スコープを定義し、受信データにラベルを付けるための戦略を立てます。スコープを管理するには、ロール閲覧者(roles/iam.roleViewer)ロールが必要です。
これらのスコープ内のデータにアクセスする必要があるメンバーを特定します。
事前定義された Google SecOps ロール以外の IAM ポリシーが組織で必要な場合は、 特定の要件をサポートするカスタムロール を作成します。
ユーザーロール
ユーザーは、スコープ指定されたデータアクセス(スコープ指定されたユーザー)またはグローバル データアクセス(グローバル ユーザー)のいずれかを持つことができます。
スコープ指定されたユーザーは、割り当てられたスコープに基づいてデータへのアクセスが制限されます。これらのスコープにより、表示と操作が特定のデータに制限されます。スコープ指定されたアクセスに関連付けられている具体的な権限の詳細は、次の表をご覧ください。
グローバル ユーザーにはスコープが割り当てられておらず、Google SecOps 内のすべてのデータに無制限にアクセスできます。グローバル アクセスに関連付けられている具体的な権限の詳細は、次の表をご覧ください。
グローバル アクセスはスコープ指定されたアクセスをオーバーライドします。ユーザーにグローバル ロールとスコープ指定されたロールの両方が割り当てられている場合、スコープ指定されたロールによって課せられる制限に関係なく、すべてのデータにアクセスできます。
データ RBAC 管理者は、スコープを作成してユーザーに割り当て、Google SecOps
内のデータアクセスを制御できます。ユーザーを特定のスコープに制限するには、事前定義ロールまたはカスタムロールとともに Chronicle API
制限付きデータアクセス(roles/chronicle.restrictedDataAccess)ロールを割り当てる必要があります。
Chronicle API 制限付きデータアクセス ロールにより、ユーザーがスコープ指定されたユーザーとして識別されます。グローバル データアクセスが必要なユーザーに Chronicle
制限付きデータアクセス ロールを割り当てる必要はありません。
ユーザーに割り当てることができるロールは次のとおりです。
| アクセスタイプ | ロール | 権限 |
|---|---|---|
| 事前定義されたグローバル アクセス | グローバル ユーザーには、事前定義された IAM ロールのいずれかを付与できます。 | |
| 事前定義されたスコープ指定読み取り専用アクセス | Chronicle API 制限付きデータアクセス(roles/chronicle.restrictedDataAccess)と Chronicle API 制限付きデータアクセス閲覧者(roles/chronicle.restrictedDataAccessViewer)
|
Chronicle API 制限付きデータアクセス閲覧者 |
| カスタム スコープ指定アクセス | Chronicle API 制限付きデータアクセス(roles/chronicle.restrictedDataAccess)とカスタムロール(機能 RBAC 定義用) |
機能内のカスタム権限 |
| カスタム グローバル アクセス | chronicle.globalDataAccessScopes.permit 権限と Chronicle API グローバル データアクセス(roles/globalDataAccess)
|
機能内のグローバル権限 |
次の表に、表に示されている各アクセスタイプの説明を示します。
事前定義されたグローバル アクセス: このアクセス権は、通常、すべてのデータへのアクセスが必要なユーザーに必要です。必要な権限に基づいて、1 つ以上のロールをユーザーに割り当てることができます。
事前定義されたスコープ指定読み取り専用アクセス: 読み取り専用アクセスが必要なユーザー向けのアクセスです。Chronicle API 制限付きデータアクセス ロールにより、ユーザーがスコープ指定されたユーザーとして識別されます。Chronicle API 制限付きデータアクセス閲覧者ロールにより、ユーザーは機能内の表示アクセス権が付与されます。
カスタム スコープ指定アクセス: Chronicle API 制限付きデータアクセス ロールにより、ユーザーがスコープ指定されたユーザーとして識別されます。カスタムロールは、ユーザーがアクセスできる機能を指定します。Chronicle API 制限付きデータアクセス ロールに追加されたスコープは、ユーザーが機能でアクセスできるデータを指定します。
RBAC カスタム スコープが正しく機能することを確認するには、カスタムロールを作成するときに chronicle.dataAccessScopes.list
権限を含めます。ただし、chronicle.DataAccessScopes.permit 権限または
chronicle.globalDataAccessScopes.permit 権限は含めないでください。カスタムロールの開始点として、事前構築済みの
Chronicle API エディタまたは Chronicle API 管理者を使用した場合は、これらの権限が含まれている可能性があります。
カスタム グローバル アクセス: このアクセス権は、割り当てられた機能内で無制限の権限が必要なユーザー向けです。ユーザーにカスタム
グローバル アクセス権を付与するには、ユーザーに割り当てられたカスタムロールに加えて、chronicle.globalDataAccessScopes.permit
権限を指定する必要があります。
ダッシュボードのユーザーロール
ダッシュボードへのアクセスは、ユーザーの機能ロール とデータアクセス スコープという 2 つの主な要素によって制御されます。これらの 2 つの要素の組み合わせによって、ダッシュボードへのアクセスが決まります。 ユーザーに割り当てられたロールによって、使用可能なユーザー インターフェースと機能が直接変更されます。 ユーザーにダッシュボードへのアクセス権を付与する、最も一般的な事前定義ロールは次のとおりです。
| アクセスタイプ | ロール | 説明 |
|---|---|---|
| 閲覧者 | roles/chroniclesiem.viewer |
読み取り専用アクセス権を付与します。ユーザーはすべてのダッシュボードを開いて 操作できますが、作成や編集はできません。 |
| 編集者 | roles/chroniclesiem.editor |
カスタム ダッシュボードの作成、編集、削除など、すべてのデータとすべての権限へのアクセス権を付与します。 |
| 管理者 | roles/chroniclesiem.admin |
編集者ロールと同様に、すべてのデータへのアクセス権を持つ完全な権限を付与します。 |
| 制限付き閲覧者 | roles/chroniclesiem.restrictedViewer |
閲覧者ロールと同様ですが、ダッシュボードに表示されるすべてのデータは、ユーザーに割り当てられたログ スコープ(データ RBAC)に従ってフィルタされます。 |
データ RBAC と機能 RBAC の詳細については、 データ RBAC と機能 RBAC の違いをご覧ください。
カスタムロールの権限
カスタムロールを作成することで、詳細な権限を定義できます。
ダッシュボードには次の権限が適用されます。
chronicle.dashboards.list: ユーザーは使用可能なダッシュボードのリストを表示できます。chronicle.dashboards.get: ユーザーはダッシュボードを開いてコンテンツを表示できます。chronicle.dashboards.create: ユーザーは新しいダッシュボードを作成できます。chronicle.dashboards.update: ユーザーは既存のダッシュボードを編集して変更を保存できます。chronicle.dashboards.delete: ユーザーはカスタム ダッシュボードを削除できます。
たとえば、chronicle.dashboards.create 権限と chronicle.dashboards.list permissions
のみを持つダッシュボード作成者カスタムロールを作成できます。
このロールを持つユーザーは新しいダッシュボードを作成できますが、既存のダッシュボードを編集することはできません。
スコープとラベルを使用したアクセス制御
Google SecOps では、スコープを使用してユーザーに対するデータアクセスを制御できます。 スコープは、スコープ内のユーザーがアクセスできるデータを定義するラベルを使用して定義します。取り込み時に、名前空間(省略可)、取り込みメタデータ(省略可)、ログタイプ(必須)などのラベル形式でメタデータがデータに割り当てられます。これらは、取り込み時にデータに適用されるデフォルトのラベルです。また、カスタムラベルを作成することもできます。 デフォルトとカスタムの両方のラベルを使用して、スコープとスコープで定義するデータ アクセスレベルを定義できます。
許可ラベルと拒否ラベルによるデータの可視性
各スコープには、1 つ以上のアクセスを許可するラベルと、必要に応じてアクセスを拒否するラベルが含まれています。アクセス許可ラベルにより、ユーザーはラベルに関連付けられたデータにアクセスできます。アクセス拒否ラベルにより、ユーザーはラベルに関連付けられたデータにアクセスできなくなります。アクセス拒否ラベルは、ユーザー アクセスを制限する際にアクセス許可ラベルをオーバーライドします。
スコープ定義では、同じタイプのアクセス許可ラベル(ログタイプなど)は OR 演算子を使用して結合されますが、異なるタイプのラベル(ログタイプとカスタムラベルなど)は AND 演算子を使用して結合されます。 アクセス拒否ラベルは OR 演算子を使用して結合されます。スコープ内に複数の拒否アクセスラベルが適用されている場合、それらのラベルのいずれかに一致すると、アクセスが拒否されます。
たとえば、次のラベルタイプを使用してログを分類する Cloud Logging システムについて検討してください。
ログタイプ: アクセス、システム、ファイアウォール
名前空間: App1、App2、Database
重大度: 重大、警告
次のアクセス権を持つ「制限付きログ」というスコープについて検討します。
| ラベル タイプ | 使用できる値 | 拒否値 |
|---|---|---|
| ログタイプ | アクセス、ファイアウォール | システム |
| 名前空間 | App1 | App2、Database |
| 重大度 | 警告 | 重大 |
スコープ定義は次のようになります。
許可: (Log type: "Access" OR "Firewall") AND (Namespace: "App1") AND (Severity: "Warning")
拒否: Log type: "System" OR Namespace: App2 OR Namespace: Database OR Severity: "Critical"
スコープに一致するログの例:
- App1 からのアクセスログ(重大度: 警告)
- App1 からのファイアウォール ログ(重大度: 警告)
スコープに一致しないログの例:
- App1 からのシステムログ(重大度: 警告)
- Database からのアクセスログ(重大度: 警告)
- App2 からのファイアウォール ログ(重大度: 重大)
拡充イベントのデータの可視性
拡充イベントは、未加工のログデータに含まれる情報に加えて、追加のコンテキストと情報で強化されたセキュリティ イベントです。拡充イベントは、そのベースイベントがスコープ内でアクセス可能で、拡充ラベルにスコープの拒否ラベルが含まれていない場合にのみ、スコープ内でアクセスできます。
たとえば、IP アドレスからのログイン試行が失敗したことを示す未加工ログで、拡充ラベル user_risk: high(高リスクのユーザーを示します)が付加されている場合を考えてみましょう。
user_risk: high
という拒否ラベルを持つスコープを持つユーザーは、高リスクのユーザーによるログイン試行の失敗を確認できません。
データ RBAC が Google Security Operations の機能に与える影響
データ RBAC が構成されると、Google Security Operations の機能にフィルタされたデータがユーザーに表示されます。影響は、機能が基盤となるデータと統合される方法によって異なります。データ RBAC が各機能に与える影響については、 データ RBAC が Google Security Operations の機能に与える影響をご覧ください。
次のステップ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。