次の方法で共有


Log Analytics ワークスペースでテーブル レベルのアクセスを管理する

ロールベースのアクセス制御 (RBAC) を使用して Log Analytics ワークスペースでテーブル レベルのアクセスを管理するには、3 つの方法があります。 この記事では、詳細な RBAC のみが推奨されている場合でも、すべての方法を参照します。

きめ細かな RBAC を使用すると、テーブルまたは行レベルでアクセスを細かく調整できます。 テーブル レベルのアクセス権を持つユーザーは、ワークスペースとリソース コンテキストの両方で、指定されたテーブルからデータとクエリを読み取ることができます。 詳細については、きめ細かい RBAC に関するページを参照してください。

テーブル レベルのアクセス用に詳細な RBAC を構成する

詳細な RBAC を使用したテーブル レベルのアクセス構成は、以前の方法よりも複雑ではなく、行レベルの条件を柔軟に実装できます。 ただし、これらの手順では、テーブル レベルのアクセスを構成することに重点を置きます。 詳細については、きめ細かい RBAC に関するページを参照してください。

テーブル レベルのアクセス用に詳細な RBAC を構成するには、次の手順が必要です。

  1. 詳細な RBAC カスタム ロールを作成する
  2. 割り当てられたロールのビルド条件 (制限なしまたは制限付き)

詳細な RBAC カスタム ロールを作成する

コントロール プレーンの "データ アクション" は、テーブル レベルのアクセスを構成する以前の方法とは別に、きめ細かい RBAC を設定するものの 1 つです。 詳細については、「 詳細な RBAC カスタム ロールを作成する」を参照してください。

カスタム ロールの例の JSON を次に示します。

{    "properties": {
        "roleName": "Log Analytics Standard Table Access",
        "description": "This custom role provides general access to all non-restricted tables.",
        "assignableScopes": [
            "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-US-la-workspace"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.OperationalInsights/workspaces/read",
                    "Microsoft.OperationalInsights/workspaces/query/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.OperationalInsights/workspaces/tables/data/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

カスタム ロールをユーザーまたはグループに割り当てます。 詳細については、「 詳細な RBAC ロールを割り当てる」を参照してください。

  1. Log Analytics ワークスペースから、 アクセス制御 (IAM) を選択します。
  2. [ロールの割り当ての追加] を選択します。
  3. 作成したカスタム ロールの例 Log Analytics Standard Table Access 選択し、[ 次へ] を選択します。
  4. ロールを割り当てるユーザーまたはグループを選択し、[ 次へ] を選択します。 この例では、ネットワーク チーム セキュリティ グループにロールを割り当てます。
  5. 条件の選択>条件の追加>アクションの追加
  6. [ワークスペース データの読み取り] データ アクションを選択します >[選択]

制限の緩い条件を構築する

この例では、許可されていないものを除くすべてのデータへのアクセス 戦略を使用して緩和的な条件を構築します。 アクセスは SigninLogs テーブルと SecurityEvent テーブルに制限されますが、他のすべてのテーブルへのアクセスは許可されます。 制限条件の例については、「 きめ細かな RBAC のユース ケース」を参照してください。

  1. [ビルド式] セクションで、[式の追加] を選択します。
  2. [属性ソース] ドロップダウンから [リソース] を選択します。
  3. [属性] ドロップダウンから [テーブル名] を選択します。
  4. 演算子 ドロップダウンから ForAnyOfAllValues:StringNotEquals を選択します。
  5. SigninLogs] フィールドに「SecurityEvent」と入力します。

完了すると、許容されるテーブル レベルのアクセス条件がどのように表示されるかを次に示します。

詳細な RBAC テーブル レベルの制限されないアクセス条件のスクリーンショット。

1 つのロールの割り当てにより、テーブル レベルのアクセスは、制限されたテーブルを標準テーブルから分離するように構成されます。 詳細については、 詳細な RBAC に関する考慮事項 と詳細な RBAC のトラブルシューティングに関するページを参照してください。

テーブル レベルのアクセスを構成する (デュアル ロール方式)

ベスト プラクティスは、この方法ではなく、詳細な RBAC メソッドを使用することです。 このセクションでは、デュアル ロール方式の構成方法について説明します。

このテーブル レベルのアクセス制御方法では、Azure カスタム ロールを使用して、ワークスペース内の特定のテーブルへのアクセス権をユーザーまたはグループに付与しますが、ユーザーまたはグループごとに 2 つのロールを割り当てる必要があります。

範囲 ロールの説明
ワークスペース ワークスペースの詳細を読み取り、ワークスペースでクエリを実行するための制限付きアクセス許可を提供するカスタム ロール。ただし、どのテーブルからもデータを読み取りません。
特定のテーブルにスコープが設定された 閲覧者 ロール

ワークスペース ロールを作成する

ワークスペース レベルで カスタム ロール を作成して、ユーザーがワークスペースの詳細を読み取り、ワークスペースでクエリを実行できるようにします。テーブル内のデータへの読み取りアクセスは提供しません。

  1. ワークスペースに移動し、アクセス制御 (IAM)>Roles を選択します。
  2. [閲覧者] ロールを右クリックし、[複製] を選択します。 閲覧者ロールの複製ボタンが強調表示されているアクセス制御画面の [ロール] タブを示すスクリーンショット。 [ カスタム ロールの作成 ] 画面が開きます。
  3. 画面の [ 基本 ] タブで、次の操作を行います。
    1. カスタム ロール名の値を入力し、必要に応じて説明を入力します。
    2. 基本アクセス権ゼロから開始に設定します。 [カスタム ロール名] フィールドと [説明] フィールドが強調表示されている [カスタム ロールの作成] 画面の [基本] タブを示すスクリーンショット。
  4. [ JSON ] タブを選択 >編集:
    1. "actions" セクションで、次のアクションを追加します。
      "Microsoft.OperationalInsights/workspaces/read",
      "Microsoft.OperationalInsights/workspaces/query/read" 
      
    2. [ "not actions" ] セクションで、次を追加します。
      "Microsoft.OperationalInsights/workspaces/sharedKeys/read"
      
  5. 保存>、レビュー + 作成>、作成を選択します。
  6. アクセス制御 (AIM)>追加>役割割り当ての追加を選択します。
  7. 作成したカスタム ロールを選択し、[ 次へ] を選択します。 [カスタム ロールの割り当ての追加] 画面の [メンバー] タブが開きます。
  8. + メンバーを選択 して、[ メンバーの選択 ] 画面を開きます。
  9. ユーザーを検索 >選択します
  10. 「Review and assign」を選択します。

ユーザーはワークスペースの詳細を読み取ってクエリを実行できるようになりましたが、どのテーブルからもデータを読み取ることはできません。

テーブル アクセス ロールを割り当てる

  1. Log Analytics ワークスペース メニューから、[テーブル] を選択します
  2. テーブルの右側にある省略記号 ( ... ) を選択し、[ アクセス制御 (IAM)] を選択します。 テーブル レベルのアクセス制御ボタンが強調表示されている Log Analytics ワークスペースのテーブル管理画面を示すスクリーンショット。
  3. [ アクセス制御 (IAM)] 画面で、 追加>ロールの割り当ての追加を選択します。
  4. 閲覧者ロールを選択し、[次へ] を選択します。
  5. + メンバーを選択 して、[ メンバーの選択 ] 画面を開きます。
    1. ユーザーを検索して>選択します
  6. 「Review and assign」を選択します。

ユーザーがこの特定のテーブルからデータを読み取ることができるようになりました。 必要に応じて、ワークスペース内の他のテーブルへの読み取りアクセス権をユーザーに付与します。

テーブル レベルのアクセスを構成する (従来の方法)

テーブル レベルのアクセス制御の従来の方法は推奨されなくなりました。 行レベルの条件はサポートされておらず、詳細な RBAC メソッドよりも複雑です。 ベスト プラクティスは、この方法ではなく、詳細な RBAC メソッドを使用することです。 このセクションでは、参考として、レガシー メソッドの構成手順を示しています。

テーブル レベルの従来の方法では、 Azure カスタム ロール を使用して、ワークスペース内の特定のテーブルへのアクセス権をユーザーまたはグループに付与することもできます。 Azure カスタム ロールは、ユーザーのアクセス モードに関係なく、ワークスペース コンテキストまたはリソース コンテキストのアクセス制御モードを持つワークスペースに適用されます。

特定のテーブルへのアクセスを定義するには、 カスタム ロールを作成します。

  1. ロール定義の [アクション] セクションでユーザーのアクセス許可を設定します。
  2. すべてのテーブルへのアクセス権を付与するために Microsoft.OperationalInsights/workspaces/query/* を使用します。
  3. アクションでワイルドカードを使用するときに特定のテーブルへのアクセスを除外するには、ロール定義の NotActions セクションで除外されたテーブルを一覧表示します。

特定のテーブルへのアクセス権を付与および拒否するカスタム ロール アクションの例を次に示します。

ハートビート テーブルと AzureActivity テーブルへのアクセスを許可します。

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/Heartbeat/read",
    "Microsoft.OperationalInsights/workspaces/query/AzureActivity/read"
  ],

SecurityBaseline テーブルにのみアクセス権を付与します。

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/SecurityBaseline/read"
],

SecurityAlert テーブルを除くすべてのテーブルへのアクセスを許可します。

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/*/read"
],
"notActions":  [
    "Microsoft.OperationalInsights/workspaces/query/SecurityAlert/read"
],

カスタム テーブルには、 テキスト ログHTTP データ コレクター API などのデータ ソースから収集したデータが格納されます。 テーブルの種類を識別するには、 Log Analytics でテーブル情報を表示します

レガシの方法のテーブル レベルのアクセスを使用して、テーブル レベルで個々のカスタム ログ テーブルへのアクセス権を付与することはできませんが、すべてのカスタム ログ テーブルに対するアクセス権を付与することはできます。 すべてのカスタム ログ テーブルへのアクセス権を持つロールを作成するには、次の操作を使用してカスタム ロールを作成します。

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/Tables.Custom/read"
],

考慮事項

  • Log Analytics UI では、テーブル レベルのユーザーはワークスペース内のすべてのテーブルの一覧を表示できますが、アクセスできるテーブルからデータのみを取得できます。
  • */read アクションを含む標準の閲覧者ロールまたは共同作成者ロールは、テーブル レベルのアクセス制御をオーバーライドし、すべてのログ データへのアクセス権をユーザーに付与します。
  • テーブル レベルのアクセス権がユーザーに付与されているものの、ワークスペース レベルのアクセス許可は付与されていない場合、API からはログ データにアクセスできますが、Azure portal からはアクセスできません。
  • サブスクリプションの管理者と所有者は、他のすべてのアクセス許可設定に関係なくすべてのデータ型に対するアクセス権を持ちます。
  • ワークスペース所有者は、テーブルとごのアクセス制御では他のすべてのユーザーと同様に扱われます。
  • 割当て数を減らすために、ロールは個々のユーザーではなくセキュリティ グループに割り当てます。 このベスト プラクティスは、既存のグループ管理ツールを使用してアクセスを構成および確認するのに役立ちます。