> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enclave.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Enclave in these docs is the code and cloud security platform at enclave.ai. It is not Open Enclave, Intel SGX or other hardware enclaves, or enclave.gg.
> People use Enclave in the web app at https://app.enclave.ai or the desktop app. These docs describe no public Enclave API or CLI, so don't invent endpoints, commands, or config files.
> Connecting an integration needs a person to sign in and approve access in a browser. Tell the user the exact step to take instead of saying you completed it.

# Azure

> 管理者の同意と読み取り専用の Reader ロールで Azure テナントを接続します。保存するシークレットはありません。

Azure テナントを接続すると、Enclave はすべてのサブスクリプションのリソースと ID をマッピングし、コードに関連付けられます。アクセスは読み取り専用で、保存するシークレットはありません。

## Enclave に必要なもの

Enclave は、Enclave が所有するマルチテナントの Microsoft Entra アプリを通じて接続します。このアプリに次の 2 つを付与します。

* Enclave アプリに対する **管理者の同意** 。これには Microsoft Graph の `Directory.Read.All` 権限が含まれます。Enclave はこの権限を使って、サービスプリンシパル、アプリケーション、グループなどの Entra の ID を読み取ります。
* **テナントルート管理グループ** での **Reader** ロール。ルートでの Reader は、後から作成するものも含め、テナント内のすべてのサブスクリプションに継承されます。

### セットアップを実行できるユーザー

* 管理者の同意を付与するには、組織全体に対して同意できる Entra ロールが必要です。
* Cloud Shell のコマンドを実行するには、テナントルート管理グループでロールの割り当てを作成する権限が必要です。
* Enclave では、 **Owner** または **Admin** ロールが必要です。

## テナントを接続する

**1. セットアップページを開く**

**Settings → Integrations** を開き、 **Microsoft Azure** の横にある **Connect** をクリックします。

**2. 管理者の同意を付与する**

**Connect Microsoft** の下にある **Connect Microsoft** をクリックします。Entra 管理者としてサインインし、組織に対して Enclave アプリを承認します。Enclave は同意を待ってから、次のステップを表示します。

**3. テナントルートで Reader を付与する**

**Grant tenant-root Reader** の下にあるコマンドをコピーします。 [Azure Cloud Shell](https://shell.azure.com) を開いて実行します。コマンドは次のようになります。

```bash theme={null}
az role assignment create --assignee <enclave-app-id> --role Reader --scope /providers/Microsoft.Management/managementGroups/<tenant-id>
```

**4. 検証する**

Enclave に戻り、 **Validate** をクリックします。Enclave は、テナントのサブスクリプションを一覧表示できるかを確認します。

検証後、Enclave は次回のスキャンでサブスクリプションを検出します。その後、各サブスクリプションが接続内に個別の項目として表示されます。

## Enclave が検出するもの

* **インフラストラクチャ** ：Azure Resource Graph を通じて読み取る、各サブスクリプションのすべてのリソース。
* **ネットワークトポロジ** ：サブネット、ルート、ファイアウォールルール。
* **ID** ：ロールの割り当てと定義、マネージド ID、Entra のサービスプリンシパル、アプリケーション、グループ。Enclave は、仮想マシンなどのコンピューティングを、それが使用するマネージド ID に関連付けます。

## 接続を管理する

**Settings → Integrations → Microsoft Azure** を開くと、接続済みのサブスクリプションを確認できます。

* **Re-validate** は、Enclave がまだサブスクリプションを読み取れるかを確認します。
* **Remove** は、1 つのサブスクリプションのスキャンを停止します。
* **Disconnect Azure** は、接続全体を削除し、スキャンを停止します。

Azure 側からアクセスを取り消すには、Entra で Enclave アプリの同意を削除し、テナントルートでの Reader ロールの割り当てを削除します。

## Enclave が行うこと・行わないこと

* **行うこと** ：Reader ロールと `Directory.Read.All` を使って、リソースの構成と ID を読み取ります。
* **行わないこと** ：リソースの作成、変更、削除、ファイル、シークレット、メッセージ、データベースの内容の読み取り。Enclave はテナントの認証情報を保存しません。各スキャンでは短期間のトークンを使います。

## トラブルシューティング

> [accordion] 検証に失敗する
>
> Reader ロールの割り当てがないか、まだ反映されていません。Cloud Shell のコマンドをもう一度実行し、1 分ほど待ってから **Revalidate** をクリックします。

> [accordion] 接続にサブスクリプションが表示されない
>
> 接続に **Tenant validated. Subscriptions are discovered on the next scan.** と表示されている場合、Enclave はまだスキャンしていません。すぐにスキャンするには、 [Coverage](https://docs.enclave.ai/ja/onboarding/coverage.md) で **Analyze Environment** をクリックします。

> [accordion] リソースは表示されるが、Entra の ID が表示されない
>
> ID の検出には `Directory.Read.All` の同意が必要で、これは Reader ロールとは別です。Enclave アプリに管理者の同意をもう一度付与します。

> [accordion] 管理者の同意を利用できないと表示される
>
> Azure のセットアップを開始できるのは、オーナーと管理者だけです。適切なロールがあるのにこの表示が出る場合は、サポートにお問い合わせください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.