データ RBAC の概要
データのロールベース アクセス制御(データ RBAC)は、個々のユーザーロールを使用して、組織内のデータへのユーザー アクセスを制限するセキュリティ モデルです。データ RBAC を使用すると、管理者がスコープを定義してユーザーに割り当て、ユーザーが自分のジョブ機能に必要なデータにのみアクセスできるようにします。
このページでは、データ RBAC の概要と、ラベルとスコープが連携してデータアクセス権限を定義する仕組みについて説明します。
データ RBAC と特徴 RBAC の違い
データ RBAC と機能 RBAC はどちらもシステム内のアクセスを制御する方法ですが、重点を置く点が異なります。
機能 RBAC は、システム内の特定の機能へのアクセスを制御します。ユーザーがアクセスできる機能は、ロールに基づいて決まります。たとえば、ジュニア アナリストにはダッシュボードの表示のみが許可され、検出ルールの作成や変更は許可されない一方、シニア アナリストには検出ルールの作成と管理の権限が付与される場合があります。機能 RBAC の詳細については、IAM を使用して機能アクセス制御を構成するをご覧ください。
データ RBAC は、システム内の特定のデータや情報へのアクセスを制御します。ユーザーがロールに基づいてデータを表示、編集、削除できるかどうかを制御します。たとえば、顧客管理(CRM)システムでは、営業担当者は顧客の連絡先データにはアクセスできても、財務データにはアクセスできない場合があります。一方、財務マネージャーは財務データにはアクセスできても、顧客の連絡先データにはアクセスできない場合があります。
データ RBAC と機能 RBAC は、包括的なアクセス制御システムを提供するために一緒に使用されることがよくあります。たとえば、ユーザーが特定の機能(機能 RBAC)にアクセスすることを許可し、その機能内で特定のデータへのアクセスをロールに基づいて制限する(データ RBAC)ことができます。
実装を計画する
実装を計画するには、組織の要件に照らし合わせて、Google SecOps の事前定義された Google SecOps のロールと権限のリストをご確認ください。組織に必要なスコープを定義し、受信データをラベル付けするための戦略を策定します。これらのスコープに関連付けられたデータにアクセスする必要がある組織のメンバーを特定します。組織で事前定義された 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 )とカスタムロール |
特徴内のカスタム権限 |
カスタム グローバル アクセス | chronicle.globalDataAccessScopes.permit 権限とカスタムロール |
特徴内のグローバル権限 |
次の表に、表に示されている各アクセスタイプの説明を示します。
事前定義されたグローバル アクセス: 通常、すべてのデータにアクセスする必要があるユーザーにこのアクセス権が必要です。必要な権限に基づいて、ユーザーに 1 つ以上のロールを割り当てることができます。
事前定義されたスコープの読み取り専用アクセス: 読み取り専用アクセスが必要なユーザー向けのアクセスです。Chronicle API 制限付きデータアクセス ロールにより、ユーザーがスコープ指定されたユーザーとして識別されます。Chronicle API 制限付きデータアクセス閲覧者のロールは、機能内のユーザーに閲覧アクセス権を付与します。
カスタム スコープ アクセス: Chronicle API 制限付きデータアクセス ロールは、ユーザーをスコープ ユーザーとして識別します。カスタムロールには、ユーザーがアクセスできる機能を指定します。Chronicle API の制限付きデータアクセス ロールに追加されたスコープは、ユーザーが機能でアクセスできるデータを指定します。RBAC カスタム スコープが正しく機能するように、カスタムロールを作成するときに chronicle.DataAccessScopes.permit
権限または chronicle.globalDataAccessScopes.permit
権限を含めないでください。これらの権限は、カスタムロールの開始点として事前構築された Chronicle API 編集者または Chronicle API 管理者を使用した場合に含まれる場合があります。
カスタム グローバル アクセス: 割り当てられた機能内で無制限の権限が必要なユーザー向けのアクセスです。ユーザーにカスタム グローバル アクセス権を付与するには、ユーザーに割り当てられたカスタムロールに加えて、chronicle.globalDataAccessScopes.permit
権限を指定する必要があります。
スコープとラベルを使用したアクセス制御
Google SecOps では、スコープを使用してユーザーへのデータアクセスを制御できます。スコープは、スコープ内のユーザーがアクセスできるデータを定義するラベルを使用して定義します。取り込み中に、Namespace(省略可)、取り込みメタデータ(省略可)、ログタイプ(必須)などのラベル形式でメタデータがデータに割り当てられます。これらは、取り込み時にデータに適用されるデフォルトのラベルです。また、カスタムラベルを作成することもできます。デフォルトとカスタムの両方のラベルを使用して、スコープとスコープで定義するデータ アクセスレベルを定義できます。
許可ラベルと拒否ラベルによるデータの可視性
各スコープには、1 つ以上のアクセスを許可するラベルと、必要に応じてアクセスを拒否するラベルが含まれています。許可アクセスラベルを使用すると、ユーザーにラベルに関連付けられたデータへのアクセス権を付与できます。アクセス拒否ラベルは、ラベルに関連付けられているデータへのユーザーのアクセスを拒否します。アクセス拒否ラベルは、ユーザー アクセスを制限する際にアクセス許可ラベルをオーバーライドします。
スコープ定義では、同じタイプのアクセス許可ラベル(ログタイプなど)は OR 演算子を使用して結合されますが、異なるタイプのラベル(ログタイプとカスタムラベルなど)は AND 演算子を使用して結合されます。アクセス拒否ラベルは OR 演算子を使用して結合されます。スコープ内に複数の拒否アクセスラベルが適用されている場合、それらのラベルのいずれかに一致すると、アクセスが拒否されます。
たとえば、次のラベルタイプを使用してログを分類する Cloud Logging システムについて検討してください。
ログタイプ: アクセス、システム、ファイアウォール
Namespace: 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 のシステムログ(重大度: 警告)
- データベースからのアクセスログ(重大度: 警告)
- 重大度が「重大」の App2 からのファイアウォール ログ
拡充されたイベントのデータの可視性
拡充イベントは、元のログデータに含まれるコンテキストや情報を超えて拡充されたセキュリティ イベントです。拡充イベントは、ベースイベントがスコープ内でアクセス可能で、拡充ラベルにスコープの拒否ラベルが含まれていない場合にのみ、スコープ内でアクセスできます。
たとえば、IP アドレスからのログイン試行が失敗したことを示す未加工ログで、拡充ラベル user_risk: high
(高リスクのユーザーを示します)が付加されている場合を考えてみましょう。拒否ラベル user_risk: high
が設定されたスコープを持つユーザーは、リスクの高いユーザーによるログイン試行の失敗を確認できません。
データ RBAC が Google Security Operations の機能に与える影響
データ RBAC が構成されると、Google Security Operations の機能にフィルタされたデータが表示されます。影響は、特徴が基盤となるデータと統合される方法によって異なります。データ RBAC が各機能に与える影響については、データ RBAC が Google Security Operations の機能に与える影響をご覧ください。