1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Log Analytics/Sentinel - Glanular RBAC を用いたテーブル/フィールドベースの権限設定方法

Last updated at Posted at 2025-07-01

1. はじめに

Azure Log Analytics / Microsoft Sentinel を運用している際に、ユーザー/グループに対して特定のテーブル、もしくは特定のフィールド条件に対してのみクエリー & 閲覧権限を与えたい要件が発生します。
最新の方式では、Glanular RBAC と呼ばれる「きめ細かいロールベースのアクセス制御」方式が推奨となっており、設定も Azure ポータルで GUI ベースで設定が出来るようになりました。本記事では、Glanular RBAC を用いて、Log Analytics ワークスペースに格納されるデータの権限を設定する例をご紹介します。

2. 構成イメージ - Glanular RBAC !

Glanular RBAC の権限設定は 2 段階になっています。
以下設定イメージをご紹介します。
image.png
この例では 4 つのカスタムロールを作成し、Log Analytics ワークスペースにクエリーできる権限を設定しています。

ロール例 与える権限 設計イメージ
CustomRole1 テーブルレベルのアクセス - AzureActivityAWSCloudTrail テーブルのクエリーのみ可能
CustomRole2 テーブル + フィールドレベルのアクセス - AzureActivity テーブルへアクセス
- フィールド Calleradmin で始まるもののみ表示
CustomRole3 テーブルレベルのアクセス - Perf のみ表示
CustomRole4 テーブル + フィールドレベルのアクセス - CommonSecurityLog のみ表示
- フィールド DeviceVendorFortinet のみ表示

3. 設定例

3.1 カスタムロールの作成 (リソースグループ or サブスクリプション)

  • はじめにサブスクリプション / リソースグループ側でベースとなるカスタムロールを作成します
  • このカスタムロールではきめ細やかな制御の設定は行わず、リソースへのアクセス制限とクエリーを実行する権限のみ渡します
     - Action : Microsoft.OperationalInsights/workspaces/read
     - Action : Microsoft.OperationalInsights/workspaces/query/read
     - DataAction : Microsoft.OperationalInsights/workspaces/tables/data/read
  • この設定をリソースグループに割り当てることで最小権限化させます
  • カスタムロールを複数作成する場合は複製します

image.png

image.png

{
    "properties": {
        "roleName": "CustomRole1",
        "description": "Glanular RBAC Role サンプル",
        "assignableScopes": [
            "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/rg-mgmt-Sentinel-AE"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.OperationalInsights/workspaces/read",
                    "Microsoft.OperationalInsights/workspaces/query/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.OperationalInsights/workspaces/tables/data/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

3.2 Glanular RBAC によるテーブル/フィールド条件設定

「きめ細やかな」権限を行います。3.1 で作成したカスタムロールに対して、Log Analytics の RBAC 設定を行います。
image.png
設定を進めると、「条件」タブより、条件を追加することが出来ます。
image.png

3.2.1 CustomRole1 の設定例(テーブルベース)

  • テーブルベースの RBAC では、条件として以下のように式を作成しました
  • 演算子に ForAllOfAnyValues:StringEquals を用いて、テーブル名に AzureActivityAWSCloudTrail をクエリー出来るように設定しています
    image.png

テーブル名属性については、以下の条件演算子を設定することが出来ます。
詳細は公式ドキュメントを参照して下さい。

演算子 説明
StringEquals 大文字と小文字が区別される照合。
値は文字列と正確に一致している必要があります。
StringNotEquals StringEquals の否定。
ForAllOfAnyValues:StringEquals 左側のすべての値が右側の少なくとも 1 つの値との比較を満たす場合、式は true に評価されます。
ForAllOfAllValues:StringNotEquals 左側のすべての値が右側の少なくとも 1 つの値との比較を満たす場合、式は false に評価されます。

3.2.2 CustomRole2 の設定例(フィールド値)

  • フィールド値の RBAC では、3.2.1 のテーブル条件に加えて以下のようにフィールドで絞る式を作成しました
  • 条件式にテーブル条件を設定し、AND 条件で列の値 Calleradmin で始まる文字列(StringStartsWith 演算子) を加えています

image.png

リソース(列の値)の演算子は以下複雑な設定が演算子を用いることで実現できます。
詳細は公式ドキュメントを参照して下さい。

演算子 説明
StringEquals / StringEqualsIgnoreCase 大文字と小文字を区別する (または大文字と小文字を区別しない) 一致。 値は文字列と正確に一致している必要があります。
StringNotEquals / StringNotEqualsIgnoreCase StringEquals (または StringEqualsIgnoreCase) の否定。
StringLike / StringLikeIgnoreCase 大文字と小文字を区別する (または大文字と小文字を区別しない) 一致。 演算子の右辺 (RHS) が左辺 (LHS) に 1 つの項として含まれる
StringNotLike / StringNotLikeIgnoreCase StringLike (または StringLikeIgnoreCase) 演算子の否定
StringStartsWith / StringStartsWithIgnoreCase 大文字と小文字を区別する (または大文字と小文字を区別しない) 一致。 値は文字列で始まります。
StringNotStartsWith / StringNotStartsWithIgnoreCase StringStartsWith (または StringStartsWithIgnoreCase) 演算子の否定。
ForAllOfAnyValues:StringEquals / ForAllOfAnyValues:StringEqualsIgnoreCase  左側のすべての値が右側の少なくとも 1 つの値との比較を満たす場合、式は true と評価されます。
ForAllOfAllValues:StringNotEquals / ForAllOfAllValues:StringNotEqualsIgnoreCase
ForAnyOfAnyValues:StringLikeIgnoreCase

3.2.3 設定反映

設定が完了したら、「レビューと割り当て画面」から条件設定を確認してロール割り当ての追加を行います。設定の反映までに約 15 分ほどかかります。

image.png

4. トラブルシューティング

本設定によってクエリーされたデータは、テーブル名 LAQueryLogsConditionalDataAccess フィールドで記録が残るようになっています。

5.考慮事項

公式サイトに 2025.7.1 時点での考慮事項が記載されています。気になる点をピックアップしてみました。

  • 2025.7.1 現在、本機能はプレビュー
  • 検索ジョブ / 概要ルールは 2025.7.1 時点では未サポート(対応検討中)。ただしデータエクスポートは不可
  • Microsoft Sentinel 機能で他で複製されたデータ(インシデントやハンティングクエリーなど)は対象外

5. まとめ

Log Analytics / MicrosoftSentinel のテーブルベース / フィールドベースで Glanular RBAC を用いてユーザーに対してフィルター表示させることが簡単に設定出来るようになってきました。本記事がどなたかの参考になれば幸いです。

*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。

参考リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?