Azure の診断設定で Log Analytics ワークスペースへのログ送信設定 "だけ" が行えるカスタムロールの作り方

## 概要
この記事ではタイトルの通り Azure の各リソースの診断設定から特定の Log Analytics ワークスペースに対してログを送信を設定することだけが可能で、実際に送信したログの閲覧はできないカスタムロールの作り方を紹介します。

### どうしてこの権限が必要なの？
私が遭遇した要件は複数の部門を横断したリソースのログを SOC チームが Microsoft Sentinel を利用して分析を行いたいが、各リソースオーナーには別の部門のログを閲覧させたくない。というものでした。*ちなみに今回の構成では自身のリソースのログも閲覧できません。


### 経験者向けの答え
以下のアクセス権を割り当てることで表題の権限を付与可能です。以下のサイトの抜粋を読んで理解された方は**以降の記事を読んでいただく必要はありません**。

>例 2: リソースからログ データを読み取り、Log Analytics ワークスペースにログを送信するようにリソースを構成する許可をユーザーに付与します。
>ワークスペースのアクセス制御モードを、ワークスペースまたはリソースのアクセス許可を使用するように構成します。
ユーザーに対して、ワークスペースに対するアクセス許可 Microsoft.OperationalInsights/workspaces/read および Microsoft.OperationalInsights/workspaces/sharedKeys/action を付与します。 これらのアクセス許可を持つユーザーはワークスペースレベルのクエリを実行できません。 ワークスペースを列挙して、診断設定またはエージェント構成の行先として使用することのみできます。

https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/manage-access?tabs=portal#custom-role-examples

## 作業項目
1.	受信側のサブスクリプションでカスタムロールを作成する
1.	受信側の Log Analytics ワークスペースの “アクセス制御(IAM) ” で上記カスタムロールを割り当てる

## 実際に設定してみましょう
### 1.	受信側のサブスクリプションでカスタムロールを作成する

1-1. Azure Portal から当該の Log Analytics ワークスペースに移動し[アクセス制御 (IAM)]>[ロール] を選択します。

1-2.[閲覧者] ロールを右クリックし、[複製] を選択します。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/f36560a2-5f46-88cd-ce82-4b8c7375cce1.png)
    これにより、[カスタム ロールの作成] 画面が開きます。

 1-3.画面の [基本] タブで、[カスタム ロール名] の値を入力し、必要に応じて説明を入力し、ベースラインのアクセス許可では***最初からはじめる***を選択して***次へ***をクリックします。

  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/9be3dd39-6262-a8be-7a94-b9a2b0d7f716.png)

  1-4.[JSON] タブ >[編集] を選択します。
    "actions" のセクションで、次を追加します。
 ```JSON:Actinsセクションに追加する内容
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/sharedkeys/read"
 ```
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/24d41153-2d16-9fb6-ef2f-6472b0f8fea3.png)
    上記設定を追加できたら**確認と作成**ボタンをクリックしてカスタムロールの作成を完了してください。


### 2.	受信側の Log Analytics ワークスペースの “アクセス制御(IAM) ” で上記カスタムロールを割り当てる
2-1. Azure Portal から当該の Log Analytics ワークスペースに移動し[アクセス制御 (IAM)]>[ロール] を選択し**ロールの割り当ての追加**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/8abd1af3-e897-8a4b-c57e-73ebf68b25e4.png)
2-2. 作成したカスタムロールを選択して**メンバー**をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/74df6220-155d-eec7-5218-55e44642a640.png)
2-3. 送信元のリソースオーナーを追加して**レビューと割り当て**をクリックして設定を完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/69d3fb97-9f12-d76c-b01d-bcda594e8173.png)

これで作業は完了です。

正しく設定されていることを確認するために、送信側のリソースの診断設定で当該のワークスペースが選択可能であることを確認し、送信設定を追加したり、送信側のリソースで当該の Log Analytics ワークスペースを選択し読み取り権限がないことなどを確認してみてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/84516/b2bc0fe1-db88-9e6f-9c7f-a23a2ff70047.png)
送信側の Log Analytics ワークスペースを確認すると、当該のワークスペースは表示されるが***ログ***をクリックすると読み取り権がない状態になっていることが確認できます。

:::note warn
今回の様に別のサブスクリプションにある Log Analytics ワークスペースにログを送信することは可能ですが、それは**同一テナントに限ります**。
:::

:::note info
テナントが分かれている場合においては、個別に Log Analytics ワークスペースを構成し、同様に Microsoft Sentinel も個別に構成する必要があります。そのような場合においてセキュリティ担当者が複数のテナントのセキュリティ インシデントを一度に確認する方法がありますので必要に応じて下記のドキュメントをご参照ください。
:::

https://learn.microsoft.com/ja-jp/azure/sentinel/multiple-workspace-view

## お疲れさまでした
+ 誤りなどを見つけられた方は優しく教えていただけますと助かります。
+ ほかにもこういった要件に使えそう、などがあればコメントいただければ記事に反映したいと思います。
+ また少しでも記事の内容が参考になりましたら***いいね***ボタンを押していただけますと励みになりますのでよろしくお願いいたします。