データ 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 人のユーザーに 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
権限を指定する必要があります。
スコープとラベルを使用したアクセス制御
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 からのシステムログ(重大度: 警告)
- データベースからのアクセスログ(重大度: 警告)
- App2 からのファイアウォール ログ(重大度: 重大)
拡充イベントのデータの可視性
拡充されたイベントは、未加工のログデータに含まれる情報に加えて、追加のコンテキストと情報で強化されたセキュリティ イベントです。拡充されたイベントは、そのベースイベントがスコープ内でアクセス可能であり、拡充されたラベルのいずれにもスコープの拒否ラベルが含まれていない場合にのみ、スコープ内でアクセスできます。
たとえば、IP アドレスからのログイン試行が失敗したことを示す未加工ログで、拡充ラベル user_risk: high
(高リスクのユーザーを示します)が付加されている場合を考えてみましょう。
拒否ラベル user_risk: high
が付加されたスコープを持つユーザーは、リスクの高いユーザーによるログイン試行の失敗を確認できません。
Google Security Operations の機能に対するデータ RBAC の影響
データ RBAC が構成されると、Google Security Operations の機能にフィルタされたデータがユーザーに表示されます。影響は、機能が基盤となるデータと統合される方法によって異なります。データ RBAC が各機能に与える影響については、データ RBAC が Google Security Operations の機能に与える影響をご覧ください。
次のステップ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。