Data 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 )とカスタムロール(機能 RBAC 定義用) |
機能内のカスタム権限 |
カスタム グローバル アクセス | chronicle.globalDataAccessScopes.permit 権限と Chronicle API グローバル データアクセス(roles/globalDataAccess )
|
機能内のグローバル権限 |
次の表に、表に示されている各アクセスタイプの説明を示します。
事前定義されたグローバル アクセス: 通常、すべてのデータにアクセスする必要があるユーザーにこのアクセス権が必要です。必要な権限に基づいて、ユーザーに 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 では、スコープを使用してユーザーに対するデータアクセスを制御できます。 スコープは、スコープ内のユーザーがアクセスできるデータを定義するラベルを使用して定義します。取り込み時に、名前空間(省略可)、取り込みメタデータ(省略可)、ログタイプ(必須)などのラベル形式でメタデータがデータに割り当てられます。これらは、取り込み時にデータに適用されるデフォルトのラベルです。また、カスタムラベルを作成することもできます。 デフォルトとカスタムの両方のラベルを使用して、スコープとスコープで定義するデータ アクセスレベルを定義できます。
許可ラベルと拒否ラベルによるデータの可視性
各スコープには、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
が設定されたスコープを持つユーザーは、リスクの高いユーザーによるログイン試行の失敗を確認できません。
データ RBAC が Google Security Operations の機能に与える影響
データ RBAC が構成されると、Google Security Operations の機能にフィルタされたデータがユーザーに表示されます。影響は、機能が基盤となるデータと統合される方法によって異なります。データ RBAC が各機能に与える影響については、データ RBAC が Google Security Operations の機能に与える影響をご覧ください。
次のステップ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps の専門家から回答を得る。