ユーザー向けにデータの RBAC を構成する
このページでは、データのロールベース アクセス制御(データ RBAC)管理者が Google Security Operations 内でデータ RBAC を構成する方法について説明します。ラベルで定義されたデータスコープを作成して割り当てることで、データにアクセスできるのは承認されたユーザーのみであることを確認できます。
Data RBAC は、事前定義ロール、カスタムロール、IAM 条件などの IAM 概念に依存しています。
構成プロセスの概要は次のとおりです。
実装を計画する: ユーザー アクセスを制限するデータの種類を特定します。組織内のさまざまなロールを特定し、各ロールのデータアクセス要件を決定します。
省略可: カスタムラベルを作成する: (デフォルト ラベルに加えて)カスタムラベルを作成し、データを分類します。
データスコープを作成する: 関連するラベルを組み合わせてスコープを定義します。
ユーザーにスコープを割り当てる: IAM のユーザーロールに、各自の役割に応じたスコープを割り当てます。
データ RBAC が最初に有効になったとき、ルール、参照リスト、データテーブルにはスコープが割り当てられていません。データにアクセスできるのは、グローバル アクセス権を持つユーザーのみです。スコープが設定されたユーザーは、デフォルトではデータにアクセスできません。これにより、意図しないアクセスを防ぎ、スタート時点での安全性を確認します。アクセス権を付与するには、スコープを定義し、必要に応じてユーザー、ルール、参照リストに割り当てます。
始める前に
データ RBAC のコアコンセプト、さまざまなアクセスタイプ、対応するユーザーロール、ラベルとスコープの仕組み、データ RBAC が Google SecOps 機能に与える影響については、データ RBAC の概要をご覧ください。
Google SecOps インスタンスをオンボーディングします。詳細については、Google SecOps インスタンスのオンボーディングまたは移行をご覧ください。
必要なロールがあることを確認します。
データ RBAC はデフォルトでは有効になっていません。データ RBAC を有効にするには、Google SecOps のサポートにお問い合わせください。
カスタムラベルを作成、管理する
カスタムラベルは、SIEM に取り込まれた Google SecOps データに追加して、UDM で正規化された値に基づいて分類および整理できるメタデータです。
たとえば、ネットワーク アクティビティをモニタリングするとします。侵害された可能性がある特定の IP アドレス(10.0.0.1)から DHCP(Dynamic Host Configuration Protocol)イベントを追跡します。
これらの特定のイベントをフィルタして特定するには、次の定義で「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 文字です。使用できるのは、英小文字、数字、ハイフンのみです。削除後に再利用することはできません。
- ラベルではリファレンス リストを使用できません。
- ラベルではエンリッチメント フィールドを使用できません。
- ラベルに正規表現はサポートされていません。
カスタムラベルを作成する
カスタムラベルを作成する方法は次のとおりです。
[設定] > [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 連携または他のサードパーティ認証を使用している場合は、次のようにプリンシパル識別子を追加します。
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/USER_EMAIL_ADDRESS
以下を置き換えます。
POOL_ID
: ID プロバイダ用に作成されたプールの ID。USER_EMAIL
: ユーザーのメールアドレス。
Cloud Identity または Google Workspace を使用している場合は、次のようにプリンシパル識別子を追加します。
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 個の条件を追加できます。13 個以上の条件を追加するには、複数のロール バインディングを作成し、これらのバインディングそれぞれに最大 12 個の条件を追加します。
条件の詳細については、IAM 条件の概要をご覧ください。
[保存] をクリックします。
条件エディタには、CEL 構文を使用して手動で式を入力するためのテキストベースのインターフェースが用意されています。
次の式を入力します。
(scope-name: resource.name.endsWith(/SCOPENAME1) || resource.name.endsWith(/SCOPENAME2) || … || resource.name.endsWith(/SCOPENAME))
[リンターを実行] をクリックして、CEL 構文を検証します。
[保存] をクリックします。
[変更をテスト] をクリックして、変更がデータへのユーザー アクセスにどのように影響するかを確認します。
[保存] をクリックします。
ユーザーは、スコープに関連付けられたデータにアクセスできるようになりました。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。