ユーザー向けにデータの RBAC を構成する
このページでは、データのロールベース アクセス制御(データ RBAC) 管理者が Google Security Operations 内でデータ RBAC を構成する方法について説明します。ラベルで定義されたデータスコープを作成して割り当てることで、データにアクセスできるのは承認されたユーザーのみにすることが可能です。
Data RBAC は、事前定義ロール、カスタムロール、IAM 条件などの IAM 概念に依存しています。
構成プロセスの概要は次のとおりです。
実装を計画する: ユーザー アクセスを制限するデータの種類を特定します。組織内のさまざまなロールを特定し、各ロールのデータアクセス要件を決定します。
省略可: カスタムラベルを作成する: (デフォルト ラベルに加えて)カスタムラベルを作成し、データを分類します。
データスコープを作成する: 関連するラベルを組み合わせてスコープを定義します。
ユーザーにスコープを割り当てる: IAM のユーザーロールに、各自の役割に応じたスコープを割り当てます。
データ RBAC を有効にする: データ RBAC を有効にして、スコープの割り当てを適用します。 データ RBAC を設定するには、次の 2 つの方法があります。
スコープを割り当てる前にデータ RBAC を有効にする : データ RBAC が有効になっている場合、ルール、参照リスト、データテーブルにはスコープが割り当てられません。データにアクセスできるのは、グローバル アクセス権を持つユーザーのみです。スコープが設定されたユーザーは、デフォルトではデータにアクセスできません。これにより、意図しないアクセスを防ぎ、スタート時点での安全性を確保します。アクセス権を付与するには、スコープを定義し、必要に応じてユーザー、ルール、参照リストに割り当てます。
スコープを割り当てた後にデータ RBAC を有効にする : スコープを事前に設定して割り当てると、データ RBAC が有効になったときにユーザーがデータにすぐにアクセスできるようになります。また、ルールにスコープが割り当てられているため、生成された検出にスコープのタグが付けられます。これにより、ユーザーはスコープの割り当て後に生成された検出を確認できます。
始める前に
データ RBAC のコアコンセプト、さまざまなアクセスタイプ、対応するユーザーロール、ラベルとスコープの仕組み、データ RBAC が Google SecOps 機能に与える影響については、データ RBAC の概要をご覧ください。
Google SecOps インスタンスをオンボーディングします。詳細については、Google Security Operations インスタンスのオンボーディングまたは移行をご覧ください。
必要なロールがあることを確認します。
カスタムラベルを作成、管理する
カスタムラベルは、SIEM に取り込まれた Google SecOps データに追加して、UDM で正規化された値に基づいて分類、整理できるメタデータです。
たとえば、ネットワーク アクティビティをモニタリングするとします。侵害されている可能性がある特定の IP アドレス(10.0.0.1)からの動的ホスト構成プロトコル(DHCP)イベントをトラッキングします。
これらの特定のイベントをフィルタして識別するには、次のクエリを使用して「Suspicious DHCP Activity」という名前のカスタムラベルを作成します。
metadata.event_type = "NETWORK_DHCP" AND principal.ip = "10.0.0.1"
カスタムラベルは次のように機能します。
Google SecOps は、ネットワーク ログとイベントを UDM に継続的に取り込みます。DHCP イベントが取り込まれると、Google SecOps はそれがカスタムラベルの条件と一致するかどうかを確認します。metadata.event_type フィールドが NETWORK_DHCP で、principal.ip フィールド(DHCP リースをリクエストするデバイスの IP アドレス)が 10.0.0.1 の場合、Google SecOps はカスタムラベルをイベントに適用します。
Suspicious DHCP Activity ラベルを使用してスコープを作成し、そのスコープを関連するユーザーに割り当てることができます。スコープを割り当てることで、組織内の特定のユーザーまたはロールに対して、これらのイベントへのアクセスを制限できます。
カスタムラベルの要件と制限事項
カスタムラベルを定義して使用する場合は、次の制限事項と要件を確認することをおすすめします。
命名と構文の要件
- カスタムラベル名は一意にする必要があり、最大 63 文字まで使用できます。 名前に使用できるのは、小文字、数字、ハイフンのみです。 削除したラベル名は、削除後に再利用できません。
機能上の制限事項
カスタムラベル クエリは、次の高度な機能をサポートしていません。
- リファレンス リスト
- 拡充フィールド
- データテーブル
クエリの実行時間: カスタムラベル クエリの最大実行時間は 5 秒です。
カスタムラベルを作成する
カスタムラベルを作成する方法は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Custom labels] タブで、[Create custom label] をクリックします。
[UDM Search] ウィンドウでクエリを入力し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまでクエリを絞り込み、[検索を実行] をクリックします。クエリの実行方法の詳細については、 UDM 検索を入力するをご覧ください。
[ラベルを作成] をクリックします。
[Create label] ウィンドウで、[Save as new label] を選択し、ラベル名と説明を入力します。
[ラベルを作成] をクリックします。
新しいカスタムラベルが作成されます。データの取り込み中に、このラベルは UDM クエリに一致するデータに適用されます。すでに取り込まれているデータにはラベルは適用されません。
カスタムラベルを変更する
変更できるのは、ラベルの説明とラベルに関連付けられたクエリのみです。 ラベル名は更新できません。カスタムラベルを変更すると、変更は新しいデータにのみ適用され、すでに取り込まれているデータには適用されません。
ラベルを変更する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Custom labels] タブで、編集するラベルの メニューをクリックし、[Edit] を選択します。
[UDM Search] ウィンドウでクエリを更新し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまでクエリを絞り込み、[検索を実行] をクリックします。クエリの実行方法の詳細については、 UDM 検索を入力するをご覧ください。
[変更を保存] をクリックします。
カスタムラベルが変更されます。
カスタムラベルを削除する
ラベルを削除すると、新しいデータがラベルに関連付けられなくなります。すでにラベルに関連付けられているデータは、ラベルに関連付けられたままになります。削除したカスタムラベルを復元することや、ラベル名を再利用して新しいラベルを作成することはできません。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Custom labels] タブで、削除するラベルの メニューをクリックし、[Delete] を選択します。
[削除] をクリックします。
確認ウィンドウで [Confirm] をクリックします。
カスタムラベルが削除されます。
カスタムラベルを表示する
カスタムラベルの詳細を表示する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Custom labels] タブで、編集するラベルの メニューをクリックし、[View] を選択します。
ラベルの詳細が表示されます。
スコープの作成と管理
Google SecOps ユーザー インターフェースでデータスコープを作成して管理し、IAM を介してユーザーまたはグループに割り当てることができます。 スコープを作成するには、スコープを持つユーザーがアクセスできるデータを定義するラベルを適用します。
スコープを作成する
スコープを作成する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Scopes] タブで、[Create scope] をクリックします。
[Create new scope] ウィンドウで、次の操作を行います。
[Scope name] と [Description] を入力します。
[Define scope access with labels] > [Allow access] で、次の操作を行います。
ユーザーにアクセス権を付与するラベルとその対応する値を選択するには、[Allow certain labels] をクリックします。
スコープ定義では、同じタイプのラベル(ログタイプなど)は OR 演算子を使用して結合されますが、異なるタイプのラベル(ログタイプと名前空間など)は AND 演算子を使用して結合されます。ラベルが スコープ内のデータアクセスを定義する方法の詳細については、許可ラベルと拒否ラベルを使用したデータの可視性をご覧ください。
すべてのデータへのアクセスを許可するには、[すべてへのアクセスを許可する] を選択します。
一部のラベルへのアクセスを除外するには、[特定のラベルを除外する] を選択し、ユーザーのアクセスを拒否するラベルタイプと対応する値を選択します。
スコープ内に複数の拒否アクセスラベルが適用されている場合、それらのラベルのいずれかに一致すると、アクセスが拒否されます。
[Test scope] をクリックして、ラベルがスコープにどのように適用されているかを確認します。
[UDM Search] ウィンドウでクエリを入力し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまでクエリを絞り込み、[検索を実行] をクリックします。クエリの実行方法の詳細については、 UDM 検索を入力するをご覧ください。
[Create scope] をクリックします。
[Create scope] ウィンドウで、スコープの名前と説明を確認し、[Create scope] をクリックします。
スコープが作成されます。スコープ内のデータにアクセスできるようにするには、スコープをユーザーに割り当てる必要があります。
スコープを変更する
変更できるのは、スコープの説明と関連付けられたラベルのみです。スコープ名は更新できません。スコープを更新すると、スコープに関連付けられたユーザーは新しいラベルに従って制限されます。スコープにバインドされているルールは、更新されたルールと再照合されません。
スコープを変更する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Scopes] タブで、編集するスコープに対応する メニューをクリックし、[Edit] を選択します。
(編集アイコン)をクリックして、スコープの説明を編集します。
[Define scope access with labels] セクションで、必要に応じてラベルと対応する値を更新します。
[Test scope] をクリックして、新しいラベルがスコープにどのように適用されているかを確認します。
[UDM Search] ウィンドウでクエリを入力し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまでクエリを絞り込み、[検索を実行] をクリックします。クエリの実行方法の詳細については、 UDM 検索を入力するをご覧ください。
[変更を保存] をクリックします。
スコープが変更されます。
スコープの削除
スコープが削除されると、ユーザーはスコープに関連付けられたデータにアクセスできなくなります。削除後、スコープ名を再利用して新しいスコープを作成することはできません。
スコープを削除する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Scopes] タブで、削除するスコープの メニューをクリックします。
[削除] をクリックします。
確認ウィンドウで、[確認] をクリックします。
スコープが削除されます。
スコープを表示する
スコープの詳細を表示する手順は次のとおりです。
[設定] > [データアクセス] をクリックします。
[Scopes] タブで、表示するスコープの メニューをクリックし、[View] を選択します。
スコープの詳細が表示されます。
ユーザーにスコープを割り当てる
権限が制限されているユーザーのデータアクセスを制御するには、スコープの割り当てが必要です。ユーザーに特定のスコープを割り当てることで、ユーザーが表示して操作できるデータが決まります。ユーザーに複数のスコープが割り当てられている場合、そのユーザーはすべてのスコープの結合データにアクセスできます。グローバル アクセス権が必要なユーザーに適切なスコープを割り当てると、そのユーザーはすべてのデータを表示して操作できるようになります。ユーザーにスコープを割り当てる手順は次のとおりです。
コンソールで、[IAM] ページに移動します。 Google Cloud
Google SecOps にバインドされているプロジェクトを選択します。
[ アクセスを許可] をクリックします。
[New principals] フィールドで、次の操作を行います。
Workforce Identity 連携またはその他のサードパーティ 認証を使用している場合は、次のようにプリンシパル ID を追加します 。
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/USER_EMAIL_ADDRESS
以下を置き換えます。
POOL_ID: ID プロバイダ用に作成されたプールの ID。USER_EMAIL: ユーザーのメールアドレス。
Cloud Identity または Google Workspace を使用している場合は、 次のようにプリンシパル ID を追加します 。
user:USER_EMAIL
以下を置き換えます。
USER_EMAIL: ユーザーのメールアドレス。
[ロールを割り当てる] > [ロールを選択] メニューで、必要なロールを選択します。複数のロールを追加するには、[別のロールを追加] をクリックします。追加する必要があるロールについては、ユーザーロールをご覧ください。
ユーザーにスコープを割り当てるには、ユーザーに割り当てられている Chronicle Restricted Data Access ロールに条件を追加します(グローバル アクセス ロールには適用されません)。
[Chronicle Restricted Data Access] ロールに対して [IAM の条件を追加] をクリックします。[Add condition] ウィンドウが表示されます。
条件のタイトルと説明(省略可)を入力します。
条件式を追加します。
条件作成ツールまたは条件エディタを使用して条件式を追加できます。
条件作成ツールには、条件タイプ、演算子、その他の式に関する適用可能な詳細を選択するためのインタラクティブなインターフェースが用意されています。次の演算子を使用すると、1 つの IAM 条件で複数のスコープへのアクセスを制御するための正確なルールを作成できます。
ENDS_WITH: スコープ名が特定の単語で終わるかどうかを確認します。完全一致させるには、単語の前に
/を追加します。projects/1234/locations/us/instances/2342-434-44-3434-343434/dataAccessScopes/scopenameという名前のデータアクセス スコープの例を考えてみましょう。ENDS_WITH /scopenameは完全一致し、例のスコープではtrueと評価されます。ENDS_WITH scopenameは「scopename」で終わる名前と一致し、例のスコープとprojects/1234/locations/us/instances/2342-434-44-3434-343434/dataAccessScopes/testscopenameの両方でtrueと評価されます。
STARTS_WITH: スコープ名が特定の単語で始まるかどうかを確認します。たとえば、
STARTS_WITH projects/project1は「project1」内のすべてのスコープへのアクセスを許可します。EQUALS_TO: 名前が特定の単語またはフレーズと完全に一致するかどうかを確認します。 これにより、1 つのスコープにのみアクセスできます。たとえば、
EQUALS_TO projects/1234/locations/us/instances/2342-434-44-3434-343434/dataAccessScopes/scopenameは、例のスコープではtrueと評価されます。
ロールにスコープを追加するには、次のようにすることをおすすめします。
[Condition type] で [Name] を選択し、[Operator] で演算子を選択して、 [Value] にスコープ名を入力します。
/<scopename>複数のスコープを割り当てるには、OR 演算子を使用して条件を追加します。 ロール バインディングごとに最大 12 個の条件を追加できます。12 個を超える条件を追加するには、複数のロール バインディングを作成し、これらのバインディングごとに最大 12 個の条件を追加します。
条件の詳細については、IAM 条件の概要をご覧ください。
[保存] をクリックします。
条件エディタには、CEL 構文を使用して手動で式を入力するためのテキストベースのインターフェースが用意されています。
次の式を入力します。
(scope-name: resource.name.endsWith('/SCOPENAME1') || resource.name.endsWith('/SCOPENAME2') || … || resource.name.endsWith('/SCOPENAME'))/SCOPENAME1、/SCOPENAME2、その他のプレースホルダを、プリンシパルに割り当てる スコープ名に置き換えます。
[リンターを実行] をクリックして、CEL 構文を検証します。
[保存] をクリックします。
[変更をテスト] をクリックして、変更がユーザーのデータアクセスにどのように影響するかを確認します。
[保存] をクリックします。
ユーザーは、スコープに関連付けられたデータにアクセスできるようになりました。
データ RBAC を有効にする
データ RBAC を有効にすると、割り当てられたすべてのスコープがルールと参照リストに適用され、ユーザーはスコープに関連するデータのみを表示できます。データ RBAC を有効にする手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] をクリックします。
[Assignments] タブに移動して、ルールと参照リストのスコープの割り当てを確認します。特定のアイテムを検索するには、フィルタまたは検索機能を使用します。
[データアクセスを強制適用] をクリックします。[Enforce data access] ウィンドウに、データ RBAC が適用された後にスコープが設定されるルールと参照リストの数が表示されます。
[Yes, Enforce] をクリックします。
さらにサポートが必要な場合コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。