Azure Blob Storage との連携
このページでは、Zilliz Cloud の Azure BYOC-I プロジェクトに外部 Azure Blob Storage コンテナへのアクセスを承認する方法について説明します。Microsoft Entra アプリケーションを登録し、BYOC-I AKS ワークロードとのフェデレーション信頼を確立して、対象コンテナへのデータアクセス権をアプリケーションに付与します。
この統合では、AKS OIDC のフェデレーション資格情報を使用します。Zilliz Cloud が生成した発行者 URL、Kubernetes 名前空間、サービスアカウント名をコピーしてください。クライアントシークレットは作成も入力もしないでください。
アクセスフロー

事前準備
以下を満たしていることを確認してください。
-
Azure BYOC-I データプレーンが稼働していること。
-
Zilliz Cloud プロジェクトに対する Organization Owner または Project Admin の権限を持っていること。
-
対象の Microsoft Entra テナントでアプリケーションを登録し、フェデレーション資格情報を追加できること。
-
対象のストレージスコープで Azure ロールの割り当てを作成できること。
-
ストレージアカウントが、この統合を使用する BYOC-I データプレーンと同じ Azure リージョンにあること。
ストレージ統合はリージョン固有です。プロジェクトに複数のリージョンのデータプレーンがある場合は、リージョンごとに個別のストレージアカウントまたはコンテナ統合を構成してください。
ステップ 1: Zilliz Cloud で統合を開始する
Zilliz Cloud コンソール にログインします。
Azure BYOC-I プロジェクトを開き、左側のナビゲーションで Integrations を選択します。
Azure Blob Storage セクションで + Integration をクリックします。
一意の Integration Name を入力し、任意で Integration Description を入力します。
Next をクリックします。
ステップ 2: 外部ストレージアカウントとコンテナを指定する
Region で、コンテナにアクセスする BYOC-I データプレーンのリージョンを選択します。
Azure ポータルで Storage accounts を開きます。
同じリージョンにある既存のストレージアカウントを選択するか、新しく作成します。
Data storage > Containers で、既存のコンテナを選択するか、新しく作成します。
Zilliz Cloud に戻り、正確な Storage Account Name と Container Name を入力します。Blob エンドポイントの URL やパスは入力しないでください。
Next をクリックします。
ステップ 3: アプリケーションを登録し、フェデレーション資格情報を追加する
Azure ポータルで Microsoft Entra ID > App registrations を開き、+ New registration をクリックします。
統合を識別しやすい名前を入力します。リダイレクト URI は必要ありません。
Application (client) ID と Directory (tenant) ID をコピーし、Zilliz Cloud に入力します。
アプリケーションで Certificates & secrets > Federated credentials > + Add credential を選択します。
Federated credential scenario で Kubernetes accessing Azure resources を選択します。
Zilliz Cloud から以下の値をコピーします。audience は api://AzureADTokenExchange に設定したままにします。
| Azure のフィールド | Zilliz Cloud の値 |
|---|---|
| クラスターの発行者 URL | <CLUSTER_ISSUER_URL> |
| 名前空間 | <NAMESPACE> |
| サービスアカウント名 | <SERVICE_ACCOUNT_NAME> |
Issuer
<CLUSTER_ISSUER_URL>
Subject
system:serviceaccount:<NAMESPACE>:<SERVICE_ACCOUNT_NAME>
Audience
api://AzureADTokenExchange
フェデレーション資格情報の名前を入力し、Add をクリックします。
発行者 URL、名前空間、サービスアカウント名、テナント ID、クライアント ID、または audience が異なると、Microsoft Entra はワークロードトークンを交換できません。
ステップ 4: アプリケーションに Blob Storage へのアクセス権を付与する
Azure ポータルで対象の container を開き、Access Control (IAM) を選択します。
+ Add > Add role assignment をクリックします。
Role タブで Job function roles を選択し、Storage Blob Data Contributor を検索して Next をクリックします。
Members タブで User, group, or service principal を選択します。ステップ 3 で登録したアプリケーションを選択します。
Review + assign をクリックします。
| 設定 | 必要な値 |
|---|---|
| Role | Storage Blob Data Contributor |
| Member | この統合用に作成した Microsoft Entra アプリケーション |
| Scope | 現在の Zilliz Cloud コンソールのフローに従った、対象の Blob Storage コンテナ |
ステップ 5: 統合の検証と追加
Zilliz Cloud に戻り、Validate Integration をクリックします。
ロールの割り当てを最近作成した場合は、Azure RBAC が反映されるまで待ってから検証を再試行してください。
ステータスが Successful に変わったら、Add をクリックします。Azure Blob Storage 統合が、同じ Zilliz Cloud プロジェクトおよびリージョンのサポート対象ワークフローで使用できるようになります。
ワークロード ID と書き込みアクセスを検証するため、検証では .zilliz-verify-access という名前のゼロバイトのオブジェクトを対象コンテナにアップロードします。
セキュリティに関する推奨事項
-
この統合用に専用の Microsoft Entra アプリケーションとフェデレーション資格情報を作成します。
-
クライアントシークレットや証明書は作成しないでください。この統合では AKS OIDC ワークロード ID を使用します。
-
現在の統合フローでサポートされる最小のスコープで Storage Blob Data Contributor を付与します。
-
匿名 Blob アクセスは無効のままにしておいてください。
-
Azure Policy、リソースロック、ストレージファイアウォール、プライベートエンドポイント、またはカスタマーマネージドキーが適用される場合は、BYOC-I データプレーンが引き続きコンテナに到達して使用できることを確認してください。
トラブルシューティング
| 検証結果 | 考えられる原因 | 確認事項 |
|---|---|---|
AADSTS70021 または一致するフェデレーション ID レコードがない | 発行者、サブジェクト、または audience が AKS サービスアカウントのトークンと一致していません。 | Zilliz Cloud から発行者 URL、名前空間、サービスアカウント名を再度コピーしてください。audience が api://AzureADTokenExchange であることを確認してください。 |
AuthorizationPermissionMismatch または HTTP 403 | ロールが存在しないか、スコープが正しくないか、Azure RBAC がまだ反映されていません。 | 対象のストレージスコープで Storage Blob Data Contributor がアプリケーションのサービスプリンシパルに割り当てられていることを確認してください。 |
| Container not found | ストレージアカウント名またはコンテナ名が正しくありません。 | https://、.blob.core.windows.net、または blob パスを含めず、名前だけを入力してください。 |
| 認証は成功するがストレージに到達できない | ストレージファイアウォール、プライベートエンドポイント、DNS 構成、またはネットワークポリシーがアクセスをブロックしています。 | 選択した BYOC-I データプレーンからストレージアカウントのエンドポイントへの接続を確認してください。 |