

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Security Hub と統合するように Microsoft Azure を設定する
<a name="securityhub-v2-azure-setup-azure"></a>

[前提条件タスク](securityhub-v2-azure-prereqs.md)を完了したら、 AWS Security Hub との統合をサポートするように Microsoft Azure 環境を設定できます。これを行うために、Security Hub コンソールは、設定に合わせてカスタマイズされたセットアップスクリプトを生成します。

**セットアップスクリプトを生成するには**

1.  で AWS Security Hub コンソールを開きますか? [https://console.aws.amazon.com/securityhub/advanced/homeregion=us-east-1。](https://console.aws.amazon.com/securityhub/advanced/home?region=us-east-1.)

1. ナビゲーションペインで、**[統合]** を選択します。

1. **Azure コネクタの作成**を選択します。

1. コネクタ設定 (テナント ID、スコープ、名前) を完了し、生成されたセットアップスクリプトをコピーします。

スクリプトを実行するには、Azure CLI を使用してグローバル管理者アカウント () で認証します`az login`。

スクリプトを実行すると、一連のタスクが実行されます。以下のセクションでは、スクリプトが実行する各タスクについて説明します。組織がスクリプトの実行を制限している場合は、このトピックをガイドとして使用して、これらのタスクを手動で実行できます。Azure 環境を設定したら、[Security Hub を Azure と統合するように設定できます](securityhub-v2-azure-setup-securityhub-v2.md)。

ステップ 1～7 では、アプリケーション登録、フェデレーティッド認証情報、Azure ロール割り当て、Microsoft Graph アクセス許可、Event Hub、ログエクスポートなど、すべての Security Hub 機能が使用する共有基盤を設定します。ステップ 8～10 では、特定の機能用に追加の Azure リソースを設定します。
+ **脆弱性管理 (Amazon Inspector)** – Azure VMs で Azure Container Registry (ACR) リポジトリイベントエクスポートとシステム割り当てのマネージド ID を設定します。
+ **脅威検出 (Microsoft Defender for Cloud)** – セキュリティアラートを Event Hub に継続的にエクスポートするように Microsoft Defender for Cloud を設定します。

**注記**  
単一の Azure アプリ登録は、 AWS セキュリティサービス間で共有されます。Security Hub CSPM または Amazon Inspector for Azure も使用する場合、同じアプリ登録を使用します。 AWS サービスごとに個別の登録を作成する必要はありません。

**Topics**
+ [ステップ 1: アプリケーションを登録する](#securityhub-v2-azure-setup-azure-registration)
+ [ステップ 2: サービスプリンシパルを作成する](#securityhub-v2-azure-setup-azure-sp)
+ [ステップ 3: フェデレーティッド認証情報を設定する](#securityhub-v2-azure-setup-azure-federation)
+ [ステップ 4: RBAC ロールを割り当てる](#securityhub-v2-azure-setup-azure-rbac)
+ [ステップ 5: グラフ API アクセス許可を設定する](#securityhub-v2-azure-setup-azure-graph)
+ [ステップ 6: Event Hub をセットアップする](#securityhub-v2-azure-setup-azure-eventhub)
+ [ステップ 7: ログのエクスポートを設定する](#securityhub-v2-azure-setup-azure-export)
+ [ステップ 8: ACR エクスポートを設定する](#securityhub-v2-azure-setup-azure-acr)
+ [ステップ 9: VM マネージド ID を有効にする](#securityhub-v2-azure-setup-azure-vm-identity)
+ [ステップ 10: Defender アラートをエクスポートする](#securityhub-v2-azure-setup-azure-defender)

## ステップ 1: Azure アプリケーションを登録する
<a name="securityhub-v2-azure-setup-azure-registration"></a>

Microsoft Entra ID に新しいアプリケーションを登録します。このアプリケーションは、 AWS がフェデレーティッド認証情報を使用して Azure 環境を認証するために使用する ID として機能します。クライアントシークレットは必要ありません。

```
$ az ad app create --display-name "AWSSecurityHubIntegration"
```

出力 **( 属性) のアプリケーション (クライアント) ID** を書き留めます。 `appId`Security Hub コンソールでコネクタを作成するときに、この値を指定します。

## ステップ 2: サービスプリンシパルを作成する
<a name="securityhub-v2-azure-setup-azure-sp"></a>

登録済みアプリケーションのサービスプリンシパルを作成します。Azure ロールの割り当てを使用して、サービスプリンシパルにアクセス許可を付与します。サービスプリンシパルは、Azure 環境でアクションを実行します。

```
$ az ad sp create --id {{application-client-id}}
```

{{application-client-id}} は、前のステップのアプリケーション (クライアント) ID です。

登録のアプリケーション ID URI を に設定します`api://{{application-client-id}}`。フェデレーティッドトークンをアプリケーションと交換するには、この識別子 AWS が必要です。この URI がないと、 AWS は有効なフェデレーティッドトークンオーディエンスを生成できず、すべての機能が Azure への認証に失敗します。

```
$ az ad app update \
  --id {{application-client-id}} \
  --identifier-uris "api://{{application-client-id}}"
```

## ステップ 3: フェデレーティッド ID 認証情報を設定する
<a name="securityhub-v2-azure-setup-azure-federation"></a>

クライアントシークレットなしで AWS が認証できるように、アプリケーションでフェデレーション ID 認証情報を設定します。これにより、 AWS と Azure 間の OIDC 信頼が確立されます。存続期間の長いシークレットや認証情報は保存されません。

Security Hub Azure 統合は、リソース設定検出、脆弱性管理、脅威検出の各機能ごとに 1 AWS つの IAM ロールを使用して認証します。すべての機能が Azure に対して認証できるように、各ロールにフェデレーティッド ID 認証情報を追加します。 コネクタを作成すると、 によってサービスにリンクされたロールが自動的に AWS 作成されます。VM スキャン`Inspector2SSMFederationRole`に使用される はサービスにリンクされたロールではありません。[ステップ 9](#securityhub-v2-azure-setup-azure-vm-identity) で説明されているように、Amazon Inspector VM スキャン設定の一部として作成します。


| 機能 | 件名 (IAM ロール ARN) | 
| --- | --- | 
| リソース設定検出 (AWS Config) | arn:aws:iam::{{account-id}}:role/aws-service-role/thirdparty.config.amazonaws.com/AWSServiceRoleForConfigThirdParty | 
| 脆弱性管理 (インスペクター) | arn:aws:iam::{{account-id}}:role/aws-service-role/thirdparty.inspector2.amazonaws.com/AWSServiceRoleForAmazonInspector2ThirdParty | 
| 脆弱性管理 – VM スキャン (Amazon EC2 Systems Manager) | arn:aws:iam::{{account-id}}:role/Inspector2SSMFederationRole-{{tenant-id}} | 
| 脅威検出 (Security Hub) | arn:aws:iam::{{account-id}}:role/aws-service-role/securityhubv2.amazonaws.com/AWSServiceRoleForSecurityHubV2 | 

前の表の件名ごとに次のコマンドを 1 回実行し、 `name`と の`subject`値を毎回変更します。`issuer` と の`audiences`値は、すべての認証情報で同じです。

```
$ az ad app federated-credential create \
  --id {{application-client-id}} \
  --parameters '{
    "name": "{{credential-name}}",
    "issuer": "{{token-issuer-url}}",
    "subject": "{{service-linked-role-arn}}",
    "audiences": ["api://AzureADTokenExchange"],
    "description": "AWS federation for Security Hub Azure integration"
  }'
```

キー値:
+ **発行者** – IAM アウトバウンド ID フェデレーションからのトークン発行者 URL。これは の形式に従います`https://{{uuid}}.tokens.sts.global.api.aws`。
+ **件名** – 前の表の IAM ロール ARN。Amazon EC2 Systems Manager ロールの {{tenant-id}} は Azure テナント ID です。
+ **対象者** – `api://AzureADTokenExchange` (ワークロード ID フェデレーションの標準値）。
+ **名前** – アプリケーション内で一意の名前。

## ステップ 4: RBAC ロールを割り当てる
<a name="securityhub-v2-azure-setup-azure-rbac"></a>

テナントルート管理グループスコープのサービスプリンシパルに次の組み込みロールを割り当てます。この範囲で割り当てると、テナント内のすべてのサブスクリプションにアクセス許可が伝播されます。
+ **リーダー** – すべての Azure リソースへの読み取り専用アクセスを付与し、Security Hub がリソース設定を検出して評価できるようにします。
+ **Contributor** – Azure 仮想マシン、関数アプリ、コンテナイメージの脆弱性をスキャンするために Amazon Inspector が必要とする書き込みアクセスを許可します。
+ **Azure Event Hubs データレシーバ**ー – が Event Hub からイベントを読み取ることを許可します AWS 。

**重要**  
テナントルート管理グループスコープの **Contributor** ロールは、Azure リソースへのテナント全体の書き込みアクセス許可を付与します。Security Hub では、Amazon Inspector がコンピューティングリソースの脆弱性をスキャンできるように、このアクセスが必要です。たとえば、Inspector は Contributor が提供する仮想マシンの run-command アクセス許可を使用します。Amazon EC2 Systems Manager Automation を通じて、Inspector は Azure VMsでコマンドを実行して VM Scanner エージェントをインストールして運用します。

```
$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Reader" \
  --scope "/providers/Microsoft.Management/managementGroups/{{tenant-id}}"

$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Contributor" \
  --scope "/providers/Microsoft.Management/managementGroups/{{tenant-id}}"

$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Azure Event Hubs Data Receiver" \
  --scope "/providers/Microsoft.Management/managementGroups/{{tenant-id}}"
```

**注記**  
このステップが失敗した場合、Microsoft Entra ID > プロパティで *Azure リソースのアクセス管理*が**「はい**」に設定されていることを確認します。次に、サインアウトしてサインインし直してトークンを更新します。

## ステップ 5: Microsoft Graph API アクセス許可を設定する
<a name="securityhub-v2-azure-setup-azure-graph"></a>

次の Microsoft Graph API アクセス許可 (アプリケーションタイプ) をアプリケーションに付与し、管理者の同意を付与します。
+ `Directory.Read.All`
+ `AuditLog.Read.All`
+ `Policy.Read.All`

```
$ az ad app permission admin-consent --id {{application-client-id}}
```

## ステップ 6: Azure Event Hub をセットアップする
<a name="securityhub-v2-azure-setup-azure-eventhub"></a>

AWS Config は Azure Event Hub を使用して、Azure 環境のリソース設定の変更に関するほぼリアルタイムの通知を受け取ります。セットアップスクリプトは Event Hub インフラストラクチャを作成し、検出用にタグ付けします。Event Hub 検出はタグベースの解決を使用します。Security Hub は、Event Hub 名前空間で 形式のタグを検索`AWSConfig-{{account-id}}-{{region}}`して、統合に適した Event Hub インスタンスを特定します。

```
$ az group create \
  --name "aws-securityhub-integration" \
  --location {{event-hub-region}}

$ az eventhubs namespace create \
  --resource-group "aws-securityhub-integration" \
  --name "aws-securityhub-{{account-id}}" \
  --location {{event-hub-region}} \
  --sku Standard

$ az eventhubs eventhub create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --name "activitylog" \
  --message-retention 3 \
  --partition-count 4

$ az eventhubs eventhub consumer-group create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --eventhub-name "activitylog" \
  --name "AWSConfig"
```

Event Hub を作成したら、検出用の名前空間にタグを付け、データレシーバーロールを割り当てます。`az tag update` で `--operation merge`を使用すると、名前空間の他のタグ ([ステップ 10 の脅威検出検出タグなど) ](#securityhub-v2-azure-setup-azure-defender)を保持できます。

```
$ az tag update \
  --resource-id {{namespace-resource-id}} \
  --operation merge \
  --tags "AWSConfig-{{account-id}}-{{region}}=activitylog"

$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Azure Event Hubs Data Receiver" \
  --scope {{namespace-resource-id}}
```

**注記**  
タグ形式 では`AWSConfig-{{account-id}}-{{region}}`、{{account-id}} は 12 桁の AWS アカウント ID で、{{region}} はコネクタを作成する AWS リージョン です (例: `us-east-1`)。これらの値は、この Event Hub 統合を所有する AWS アカウント とリージョンを識別します。

設定キー:
+ **名前空間 SKU** – 標準 (コンシューマーグループに必須）。
+ **Event Hub 名** – `activitylog`。
+ **コンシューマーグループ** – `AWSConfig`。
+ **タグ** – 値 `AWSConfig-{{account-id}}-{{region}}` 。 `activitylog`このタグにより AWS Config 、 は Event Hub を自動的に検出できます。
+ **ロールの割り当て** — 名前空間上の Azure Event Hubs データレシーバー。

脅威検出のために、セットアップでは`AWSSecurityHub`コンシューマーグループを持つ別の `defender-alerts` Event Hub も作成され、Security Hub `AWSSecurityHub-{{account-id}}-{{region}}`が直接読み取るハブを識別する形式で 2 番目の検出タグが追加されます。詳細については、[「ステップ 10](#securityhub-v2-azure-setup-azure-defender)」を参照してください。

## ステップ 7: アクティビティログと Entra ID 監査ログのエクスポートを設定する
<a name="securityhub-v2-azure-setup-azure-export"></a>

アクティビティログと Microsoft Entra ID ログを Event Hub にエクスポートするように Azure を設定します。

**アクティビティログのエクスポート:**

各サブスクリプションの診断設定を設定して、アクティビティログを Event Hub にエクスポートします。セットアップスクリプトは、モニタリング対象のすべてのサブスクリプションに対してこれを自動的に設定します。Activity Logs は、ロールの割り当てやリソースの変更など、サブスクリプションレベルのアクティビティをキャプチャします。

**Microsoft Entra ID ログのエクスポート:**

ログを同じ Event Hub にエクスポートするように Microsoft Entra ID の診断設定を構成します。*Microsoft Entra ID > Monitoring > Diagnostic settings > Add diagnostic settings* に移動します。**AuditLogs**、**SignInLogs**、および **NonInteractiveUserSignInLogs** を有効にし、Event Hub にルーティングします。

## ステップ 8: Azure Container Registry のエクスポートを設定する
<a name="securityhub-v2-azure-setup-azure-acr"></a>

Security Hub は、Amazon Inspector を通じて Azure Container Registry (ACR) コンテナイメージの脆弱性をスキャンします。そのためには、Inspector はレジストリと同じ Azure リージョンの Event Hub にエクスポートされた ACR リポジトリイベントが必要です。ACR エクスポートの設定については、[Amazon Inspector ユーザーガイド」の「Microsoft Azure と統合するように](https://docs.aws.amazon.com/inspector/latest/user/inspector-azure.html) *Amazon Inspector *を設定する」を参照してください。

## ステップ 9: Azure VMs でマネージド ID を有効にする
<a name="securityhub-v2-azure-setup-azure-vm-identity"></a>

Security Hub は Inspector を通じて Azure 仮想マシンをスキャンします。各ターゲット Azure VM では、システム割り当てのマネージド ID が有効になっている必要があります。この ID を VMs に自動的に追加するには、テナントルート管理グループスコープで `modify`効果を使用する 2 つの Azure ポリシーを割り当てます。
+ ID を持たない VM の場合、ポリシーはシステム割り当てのマネージド ID を追加します。
+ ユーザー割り当ての ID のみを持つ VM の場合、ポリシーは、既存のユーザー割り当ての ID を保持しながら、システム割り当てのマネージド ID を追加します。

システム割り当てのマネージド ID が既にある VM は変更されません。ポリシーは `modify`効果を使用するため、VM を再デプロイせずに ID を調整します。

Inspector は Amazon EC2 Systems Manager Automation を使用して、Inspector VM Scanner エージェントを Azure VMsにデプロイおよび管理します。これには、Microsoft Entra ID 用の IAM OIDC ID プロバイダーや複数の IAM ロールなど、追加の AWSサイドセットアップが必要です。VM スキャンのセットアップの詳細については、[Amazon Inspector ユーザーガイド」の「Microsoft Azure と統合するように](https://docs.aws.amazon.com/inspector/latest/user/inspector-azure-setup-inspector.html) *Amazon Inspector *を設定する」を参照してください。

## ステップ 10: Microsoft Defender for Cloud アラートをエクスポートする
<a name="securityhub-v2-azure-setup-azure-defender"></a>

Security Hub は、Microsoft Defender for Cloud 脅威検出アラートを取り込み、Open Cybersecurity Schema Framework (OCSF) 形式にマッピングします。これらのアラートを配信するには、専用の `defender-alerts` Event Hub を作成し、セキュリティアラートを継続的にエクスポートするように Microsoft Defender for Cloud を設定します。

[ステップ 6](#securityhub-v2-azure-setup-azure-eventhub) の Event Hub 名前空間で、`defender-alerts`Event Hub、Security Hub が読み取る`AWSSecurityHub`コンシューマーグループ、Microsoft Defender for Cloud がアラートの送信に使用する**送信**アクセス許可を持つハブスコープの共有アクセス署名 (SAS) 認可ルールを作成します。

```
$ az eventhubs eventhub create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --name "defender-alerts" \
  --message-retention 3 \
  --partition-count 4

$ az eventhubs eventhub consumer-group create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --eventhub-name "defender-alerts" \
  --name "AWSSecurityHub"

$ az eventhubs eventhub authorization-rule create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --eventhub-name "defender-alerts" \
  --name "DefenderExportSend" \
  --rights Send
```

次に、Security Hub が`defender-alerts`ハブを検出できるように、2 番目の検出タグを名前空間にマージします。`az tag update` で `--operation merge`を使用して、[ステップ 6 ](#securityhub-v2-azure-setup-azure-eventhub)の検出`AWSConfig`タグを保持します。

```
$ az tag update \
  --resource-id {{namespace-resource-id}} \
  --operation merge \
  --tags "AWSSecurityHub-{{account-id}}-{{region}}=defender-alerts"
```

最後に、**セキュリティアラート**データ型の `defender-alerts` Event Hub へのクラウド継続的なエクスポート用に Microsoft Defender を設定します。Azure ポータルで、*Microsoft Defender for Cloud > Environment 設定*に移動し、サブスクリプションを選択し、*継続的エクスポート > Event Hub* を選択し、**セキュリティアラート**を選択し、`defender-alerts`Event Hub と `DefenderExportSend` SAS ルールを選択します。

**注記**  
ポータルではなくプログラムで (Azure Resource Manager API、ARM テンプレート、または Azure ポリシーを使用して) 継続的なエクスポートを設定する場合は、`DefenderExportSend`SAS 接続文字列を使用して Event Hub へのエクスポートを認証します。`DefenderExportSend` ルール`az eventhubs eventhub authorization-rule keys list`の を使用して取得し、エクスポートアクションの接続文字列として設定します。詳細については、Microsoft Azure ドキュメントの[「継続的なエクスポートの設定](https://learn.microsoft.com/en-us/azure/defender-for-cloud/continuous-export)」を参照してください。

**注記**  
これらのタスクが完了したら、設定が有効になるまで約 15～30 分待ちます。次に、Security Hub でコネクタを作成する前に、Event Hub がメッセージ (*IncomingMessages* メトリクス) を受信していることを確認します。