ユーザー向けにデータの RBAC を構成する
このページでは、データのロールベース アクセス制御(データ RBAC)管理者が Google Security Operations 内でデータ RBAC を構成する方法について説明します。ラベルで定義されたデータスコープを作成して割り当てることで、データにアクセスできるのは承認されたユーザーのみにすることが可能です。
Data RBAC は、事前定義ロール、カスタムロール、IAM 条件などの IAM 概念に依存しています。
構成プロセスの概要は次のとおりです。
実装を計画する: ユーザーのアクセスを制限するさまざまなタイプのデータを特定します。組織内のさまざまなロールを特定し、各ロールのデータアクセス要件を決定します。
省略可: カスタムラベルを作成する: (デフォルト ラベルに加えて)カスタムラベルを作成し、データを分類します。
データスコープを作成する: 関連するラベルを組み合わせてスコープを定義します。
ユーザーにスコープを割り当てる: IAM のユーザーロールに、各自の役割に応じたスコープを割り当てます。
データ RBAC を初めて有効にすると、ルール、参照リスト、データテーブルにスコープは割り当てられません。データにアクセスできるのは、グローバル アクセス権を持つユーザーのみです。スコープが設定されたユーザーは、デフォルトではデータにアクセスできません。これにより、意図しないアクセスを防ぎ、スタート時点での安全性を確保します。アクセス権を付与するには、スコープを定義し、必要に応じてユーザー、ルール、参照リストに割り当てます。
始める前に
データ RBAC のコアコンセプト、さまざまなアクセスタイプ、対応するユーザーロール、ラベルとスコープの仕組み、データ RBAC が Google SecOps 機能に与える影響については、データ RBAC の概要をご覧ください。
Google SecOps インスタンスをオンボーディングします。詳細については、Google Security Operations インスタンスのオンボーディングまたは移行をご覧ください。
必要なロールがあることを確認します。
データ RBAC はデフォルトでは有効になっていません。データ RBAC を有効にするには、Google SecOps のサポートにお問い合わせください。
カスタムラベルの作成と管理
カスタムラベルは、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 設定] > [データアクセス] の順にクリックします。
[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] で、次の操作を行います。
ユーザーにアクセス権を付与するラベルとその対応する値を選択するには、[特定のラベルを許可する] をクリックします。
スコープ定義では、同じタイプのラベル(ログタイプなど)は 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] を選択します。
スコープの詳細が表示されます。
ユーザーにスコープを割り当てる
権限が制限されているユーザーのデータアクセスを制御するには、スコープの割り当てが必要です。ユーザーに特定のスコープを割り当てることで、ユーザーが表示および操作できるデータが決まります。ユーザーに複数のスコープを割り当てると、そのユーザーはすべてのスコープの結合データにアクセスできるようになります。グローバル アクセス権が必要なユーザーに適切なスコープを割り当てると、そのユーザーはすべてのデータを表示して操作できるようになります。ユーザーにスコープを割り当てる手順は次のとおりです。
Google Cloud コンソールの [IAM] ページに移動します。
Google SecOps にバインドされているプロジェクトを選択します。
[
アクセスを許可] をクリックします。[新しいプリンシパル] フィールドで、次の操作を行います。
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 制限付きデータアクセス ロールに条件を追加します(グローバル アクセス ロールには適用されません)。
[Chronicle Restricted Data Access] ロールに対して [IAM の条件を追加] をクリックします。[Add condition] ウィンドウが表示されます。
条件のタイトルと説明(省略可)を入力します。
条件式を追加します。
条件作成ツールまたは条件エディタを使用して条件式を追加できます。
条件作成ツールには、条件タイプ、演算子、その他の式に関する適用可能な詳細を選択するためのインタラクティブなインターフェースが用意されています。次の演算子を使用すると、単一の 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
として評価されます。
ロールにスコープを追加するには、次のようにすることをおすすめします。
[条件タイプ] で [名前]、[演算子] で演算子を選択し、[値] にスコープ名を入力します。
/<scopename>
複数のスコープを割り当てるには、OR 演算子を使用して条件を追加します。ロール バインディングごとに最大 12 個の条件を追加できます。12 個を超える条件を追加するには、複数のロール バインディングを作成し、各バインディングに最大 12 個の条件を追加します。
条件の詳細については、IAM 条件の概要をご覧ください。
[保存] をクリックします。
条件エディタには、CEL 構文を使用して手動で式を入力するためのテキストベースのインターフェースが用意されています。
次の式を入力します。
(scope-name: resource.name.endsWith(/SCOPENAME1) || resource.name.endsWith(/SCOPENAME2) || … || resource.name.endsWith(/SCOPENAME))
[リンターを実行] をクリックして、CEL 構文を検証します。
[保存] をクリックします。
[変更をテスト] をクリックして、変更がデータへのユーザー アクセスにどのように影響するかを確認します。
[保存] をクリックします。
ユーザーは、スコープに関連付けられたデータにアクセスできるようになります。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。