ユーザーのデータ RBAC を構成する
このページでは、データのロールベース アクセス制御(データ RBAC)管理者が Google Security Operations 内でデータ RBAC を構成する方法について説明します。ラベルで定義されたデータスコープを作成して割り当てることで、データにアクセスできるのは承認されたユーザーのみにすることが可能です。
Data RBAC は、事前定義ロール、カスタムロール、IAM 条件などの IAM コンセプトに依存しています。
構成プロセスの概要は次のとおりです。
実装を計画する: ユーザーのアクセスを制限するさまざまな種類のデータを特定します。組織内のさまざまなロールを特定し、各ロールのデータアクセス要件を決定します。
省略可: カスタムラベルを作成する: デフォルト ラベルに加えてカスタムラベルを作成して、データを分類します。
データスコープを作成する: 関連するラベルを組み合わせてスコープを定義します。
ユーザーにスコープを割り当てる: 責任に基づいて、IAM のユーザーロールにスコープを割り当てます。
始める前に
データ 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 はカスタムラベルをイベントに適用します。
不審な DHCP アクティビティのラベルを使用してスコープを作成し、関連するユーザーにスコープを割り当てることができます。スコープの割り当てを使用すると、これらのイベントへのアクセスを組織内の特定のユーザーまたはロールに制限できます。
ラベルの要件と制限事項
- ラベル名は一意で、最大 63 文字にする必要があります。使用できるのは、英小文字、数字、ハイフンのみです。削除した後で再利用することはできません。
- ラベルではリファレンス リストを使用できません。
- ラベルでは拡充フィールドを使用できません。
- ラベルに正規表現はサポートされていません。
カスタムラベルを作成する
カスタムラベルを作成する方法は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[カスタムラベル] タブで、[カスタムラベルを作成] をクリックします。
[UDM 検索] ウィンドウでクエリを入力し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまで、クエリを絞り込み、[検索を実行] をクリックします。クエリの実行の詳細については、UDM 検索を入力するをご覧ください。
[ラベルを作成] をクリックします。
[ラベルを作成] ウィンドウで、[新しいラベルとして保存] を選択し、ラベル名と説明を入力します。
[ラベルを作成] をクリックします。
新しいカスタムラベルが作成されます。データの取り込み中に、このラベルは UDM クエリに一致するデータに適用されます。ラベルは、すでに取り込まれたデータには適用されません。
カスタムラベルを変更する
変更できるのは、ラベルの説明とラベルに関連付けられたクエリのみです。ラベル名は更新できません。カスタムラベルを変更しても、変更は新しいデータにのみ適用され、すでに取り込まれたデータには適用されません。
ラベルを変更する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[カスタムラベル] タブで、編集するラベルの横にある
メニューをクリックし、[編集] を選択します。[UDM 検索] ウィンドウでクエリを更新し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまで、クエリを絞り込み、[検索を実行] をクリックします。クエリの実行の詳細については、UDM 検索を入力するをご覧ください。
[変更を保存] をクリックします。
カスタムラベルが変更されます。
カスタムラベルを削除する
ラベルを削除すると、そのラベルに新しいデータが関連付けられなくなります。ラベルにすでに関連付けられているデータは、ラベルに関連付けられたままになります。削除したカスタムラベルを復元することや、ラベル名を再利用して新しいラベルを作成することはできません。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[カスタムラベル] タブで、削除するラベルの
[メニュー] をクリックし、[削除] を選択します。[削除] をクリックします。
確認ウィンドウで [確認] をクリックします。
カスタムラベルが削除されます。
カスタムラベルを表示する
カスタムラベルの詳細を表示する手順は次のとおりです。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[カスタムラベル] タブで、編集するラベルの
メニューをクリックし、[表示] を選択します。ラベルの詳細が表示されます。
スコープの作成と管理
Google SecOps のユーザー インターフェースでデータスコープを作成して管理し、IAM を使用してユーザーまたはグループに割り当てることができます。スコープを作成するには、スコープを持つユーザーがアクセスできるデータを定義するラベルを適用します。
スコープを作成する
スコープを作成するには、次の操作を行います。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[スコープ] タブで、[スコープを作成] をクリックします。
[新しいスコープを作成] ウィンドウで、次の操作を行います。
[スコープ名] と [説明] を入力します。
[ラベルを使用してスコープ アクセスを定義する] > [アクセスを許可する] で、次の操作を行います。
ユーザーにアクセス権を付与するラベルとその対応する値を選択するには、[特定のラベルを許可する] をクリックします。
スコープ定義では、同じタイプのラベル(ログタイプなど)は OR 演算子を使用して結合されますが、異なるタイプのラベル(ログタイプと名前空間など)は AND 演算子を使用して結合されます。ラベルがスコープでデータアクセスを定義する方法の詳細については、許可ラベルと拒否ラベルによるデータの可視性をご覧ください。
すべてのデータへのアクセスを許可するには、[すべてへのアクセスを許可する] を選択します。
一部のラベルへのアクセスを除外するには、[特定のラベルを除外] を選択し、ユーザーへのアクセスを拒否するラベルタイプと対応する値を選択します。
スコープ内に複数の拒否アクセスラベルが適用されている場合、それらのラベルのいずれかに一致すると、アクセスが拒否されます。
[スコープをテスト] をクリックして、ラベルがスコープにどのように適用されているかを確認します。
[UDM 検索] ウィンドウでクエリを入力し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまで、クエリを絞り込み、[検索を実行] をクリックします。クエリの実行の詳細については、UDM 検索を入力するをご覧ください。
[スコープを作成] をクリックします。
[スコープを作成] ウィンドウで、スコープの名前と説明を確認し、[スコープを作成] をクリックします。
スコープが作成されます。ユーザーにスコープ内のデータへのアクセス権を付与するには、そのスコープをユーザーに割り当てる必要があります。
スコープを変更する
変更できるのは、スコープの説明と関連付けられたラベルのみです。スコープ名は更新できません。スコープを更新すると、スコープに関連付けられているユーザーは、新しいラベルに従って制限されます。スコープにバインドされているルールは、更新されたスコープと再照合されません。
スコープを変更するには、次の操作を行います。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[スコープ] タブで、編集するスコープに対応する
メニューをクリックし、[編集] を選択します。[編集] をクリックして、スコープの説明を編集します。
[ラベルを使用してスコープ アクセスを定義する] セクションで、必要に応じてラベルと対応する値を更新します。
[スコープをテスト] をクリックして、新しいラベルがスコープにどのように適用されているかを確認します。
[UDM 検索] ウィンドウでクエリを入力し、[検索を実行] をクリックします。
ラベルを付けるデータが結果に表示されるまで、クエリを絞り込み、[検索を実行] をクリックします。クエリの実行の詳細については、UDM 検索を入力するをご覧ください。
[変更を保存] をクリックします。
スコープが変更されます。
スコープの削除
スコープが削除されると、ユーザーはスコープに関連付けられたデータにアクセスできなくなります。削除したスコープ名は、新しいスコープの作成に再利用できません。
スコープを削除するには、次の操作を行います。
[設定] > [SIEM 設定] > [データアクセス] の順にクリックします。
[スコープ] タブで、削除するスコープの
[メニュー] をクリックします。[削除] をクリックします。
確認ウィンドウで、[確認] をクリックします。
スコープが削除されます。
スコープを表示する
スコープの詳細を表示する手順は次のとおりです。
[設定] > [データアクセス] をクリックします。
[スコープ] タブで、表示するスコープの
[メニュー] をクリックし、[表示] を選択します。
スコープの詳細が表示されます。
ユーザーにスコープを割り当てる
権限が制限されているユーザーのデータアクセスを制御するには、スコープの割り当てが必要です。ユーザーに特定のスコープを割り当てることで、ユーザーが表示および操作できるデータが決まります。ユーザーに複数のスコープを割り当てると、そのユーザーはすべてのスコープの結合データにアクセスできるようになります。グローバル アクセス権が必要なユーザーに適切なスコープを割り当てることで、ユーザーがすべてのデータを表示して操作できるようにします。ユーザーにスコープを割り当てる手順は次のとおりです。
Google Cloud コンソールの [IAM] ページに移動します。
Google SecOps にバインドされているプロジェクトを選択します。
[
アクセスを許可] をクリックします。[新しいプリンシパル] フィールドに、次のようにプリンシパル ID を追加します。
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/USER_EMAIL_ADDRESS
[ロールを割り当て] > [ロールを選択] メニューで、必要なロールを選択します。複数のロールを追加するには、[別のロールを追加] をクリックします。追加する必要があるロールについては、ユーザーロールをご覧ください。
ユーザーにスコープを割り当てるには、ユーザーに割り当てられている Chronicle 制限付きデータアクセスのロールに条件を追加します(グローバル アクセス ロールには適用されません)。
[Chronicle Restricted Data Access] ロールに対して [IAM 条件を追加] をクリックします。[条件を追加] ウィンドウが表示されます。
条件のタイトルと説明(省略可)を入力します。
条件式を追加します。
条件作成ツールまたは条件エディタを使用して条件式を追加できます。
条件作成ツールには、条件タイプ、演算子、その他の式に関する適用可能な詳細を選択するためのインタラクティブなインターフェースが用意されています。OR 演算子を使用して、要件に応じて条件を追加します。ロールにスコープを追加するには、次のことをおすすめします。
[条件タイプ] で [名前]、[演算子] で [次で終わる] を選択し、[値] に「
/<scopename>
」と入力します。複数のスコープを割り当てるには、OR 演算子を使用して条件を追加します。ロール バインディングごとに最大 12 個の条件を追加できます。12 個を超える条件を追加するには、複数のロール バインディングを作成し、これらのバインディングに最大 12 個の条件を追加します。
条件の詳細については、IAM 条件の概要をご覧ください。
[保存] をクリックします。
条件エディタには、CEL 構文を使用して手動で式を入力するためのテキストベースのインターフェースが用意されています。
次の式を入力します。
(scope-name: resource.name.endsWith(/SCOPENAME1) || resource.name.endsWith(/SCOPENAME2) || … || resource.name.endsWith(/SCOPENAME))
[リンターを実行] をクリックして、CEL 構文を検証します。
[保存] をクリックします。
注: 条件付きロール バインディングは、条件のないロール バインディングをオーバーライドしません。プリンシパルがロールにバインドされていて、ロール バインディングに条件がない場合、プリンシパルには常にそのロールが割り当てられます。同じロールの条件付きバインディングにプリンシパルを追加しても、効果はありません。
[変更をテスト] をクリックして、変更がデータへのユーザー アクセスにどのように影響するかを確認します。
[保存] をクリックします。
ユーザーは、スコープに関連付けられたデータにアクセスできるようになります。