共用方式為


使用azure_ai延伸模組預覽啟用 Azure AI 服務的受控識別

Azure 資料庫(適用於 PostgreSQL)的 Azure AI 擴充功能支援系統指派受控識別(SAMI),並整合 Azure AI 服務、Azure OpenAI 和 Azure Machine Learning,為客戶提供增強的安全性效益。 藉由使用Microsoft Entra標識符,用戶可以在沒有存取密鑰的情況下進行驗證,降低未經授權的存取風險,並簡化認證管理。 這項整合可確保身分識別和許可權會安全地且有效率地處理,為資料庫安全性提供健全的架構。

訂閱授權碼的好處

  • 沒有儲存的秘密 – 不需要手動管理或輪替訂用帳戶密鑰。
  • 改善的安全性 – 不會在記錄或程式代碼存放庫中公開 API 金鑰的風險。
  • 更簡單的維護 – Azure 會在幕後處理驗證,減少作業額外負荷。

建立系統指派的受控識別

  1. 瀏覽至 Azure 入口網站。
  2. 在 Azure 入口網站中選取適用於 PostgreSQL 的 Azure 資料庫柔性伺服器實例。
  3. 啟用受控識別:
  • 從伺服器概觀頁面的左側導覽功能表中,展開 [ 安全性 ],然後選取 [ 身分識別]。
  • 選取 開啟 單選按鈕以啟用 系統指派的受控識別
  • 選取 [儲存 ] 以啟用受控識別。

若要深入瞭解,請流覽 受控識別

指派受管理的身分識別

  1. 移至 Azure 入口網站,然後選取 Azure AI 服務資源。
  2. 在功能表中,選取 訪問控制 (IAM)
  3. 選取 [新增 ],然後 選取 [新增角色指派]。
  4. 選擇 認知服務使用者角色。
  5. 在 [ 成員] 區段中,選取 [受控識別]。
  6. 選擇您的 PostgreSQL 伺服器的訂用帳戶和受管理的身分識別。
  7. 選取 [儲存] 以指派角色。
  8. 返回伺服器的 [概觀] 頁面,然後按兩下 [重新啟動] 按鈕重新啟動伺服器。

若要深入瞭解,請流覽 「使用 Azure AI 服務的受控識別」

Azure OpenAI 的存取控制 (IAM)

  1. 移至 Azure 入口網站,然後選取您訂用帳戶中部署的 Azure OpenAI 資源。 若要快速識別資源,您可以依類型 Azure OpenAI 篩選資源。
  2. 在資源的功能表中,選取 [訪問控制][IAM]。
  3. 選取 [新增 ],然後 選取 [新增角色指派]。
  4. 選擇 認知服務 OpenAI 使用者的角色。
  5. 在 [ 成員] 區段中,選取 [受控識別]。
  6. 選擇您的 PostgreSQL 伺服器的訂用帳戶和受管理的身分識別。
  7. 選取 [儲存] 以指派角色。

若要深入瞭解,請流覽 Azure OpenAI 的託管式身分識別

Azure Machine Learning 的訪問控制 (IAM)

  1. 移至 Azure 入口網站,然後選取 Azure Machine Learning 資源。
  2. 在資源的功能表中,選取 [訪問控制][IAM]。
  3. 選取 [新增 ],然後 選取 [新增角色指派]。
  4. 選擇 Azure Machine Learning 數據科學家的角色。
  5. 在 [ 成員] 區段中,選取 [受控識別]。
  6. 選擇您的 PostgreSQL 伺服器的訂用帳戶和受管理的身分識別。
  7. 選取 [儲存] 以指派角色。
  8. 請確定模型端點的驗證類型已選擇為 Microsoft Entra 令牌型。

更新 azure_ai中的資料庫授權設定

您必須更新資料庫授權設定,以設定適用於 PostgreSQL 的 Azure AI 擴充功能,以使用受控識別或訂用帳戶密鑰驗證。 此程式可確保擴充功能已使用 Azure AI 服務、Azure OpenAI 或 Azure Machine Learning 正確驗證。 請遵循下列步驟來設定使用案例的適當授權類型和端點。

將授權類型設定為受控識別

  • 針對 OpenAI,執行下列 SQL 命令:
  SELECT azure_ai.set_setting('azure_openai.auth_type', 'managed-identity');
  • 針對認知服務,執行下列 SQL 命令:
  SELECT azure_ai.set_setting('azure_cognitive.auth_type', 'managed-identity');
  • 如果您使用翻譯服務,您必須執行下列 SQL 命令來設定翻譯工具資源的資源識別碼:
  SELECT azure_ai.set_setting('azure_cognitive.translator_resource_id', '<Your_translator_resource_id>');
  • 針對機器學習服務,請執行下列 SQL 命令:
  SELECT azure_ai.set_setting('azure_ml.auth_type', 'managed-identity');

設定端點

  • 針對 Azure OpenAI,請執行下列 SQL 命令來設定端點:
  SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<Your_openai_account>.openai.azure.com'); 

確認設定

設定適用於 PostgreSQL 的 Azure AI 擴充功能之後,請務必確認已正確套用設定。 確認設定可確保整合已正確設定,並準備好與 Azure AI 服務、Azure OpenAI 或 Azure Machine Learning 互動。 使用下列 SQL 命令來檢查目前的組態,並驗證正確的授權類型和端點是否已就緒。

  SELECT azure_ai.get_setting('azure_openai.auth_type');
  SELECT azure_ai.get_setting('azure_openai.endpoint');

測試組態

設定受控識別並設定適用於PostgreSQL的 Azure AI 擴充功能之後,確認整合是否如預期般運作至關重要。 測試可確保資料庫可以成功向 Azure AI 服務、Azure OpenAI 和 Azure Machine Learning 進行驗證。 下列範例示範如何執行範例函式呼叫來驗證組態,並確認服務函式沒有授權錯誤。

  SELECT azure_cognitive.analyze_sentiment('Your text here');

請確定函式在沒有任何授權錯誤的情況下成功執行。

測試 OpenAI 服務

測試 OpenAI 服務可確保適用於 PostgreSQL 的 Azure AI 延伸模組與 Azure OpenAI 之間的整合正常運作。 藉由執行範例函式呼叫,您可以驗證受控識別或訂用帳戶密鑰驗證是否已正確設定,而且資料庫可以成功地與 OpenAI 模型互動。 請遵循下列範例來測試內嵌建立功能,並確認服務在沒有授權錯誤的情況下運作。

  SELECT azure_openai.create_embeddings('Your model deployment name', 'Your text here');

請確定函式在沒有任何授權錯誤的情況下成功執行。

測試機器學習服務

測試機器學習服務可確保適用於PostgreSQL的 Azure AI 擴充功能與 Azure Machine Learning 之間的整合如預期般運作。 您可以執行範例函式呼叫來驗證受控識別或訂用帳戶密鑰驗證是否正確設定。 此步驟會確認資料庫可以成功與已部署的機器學習模型互動,以便順暢地執行預測或其他模型作業。 使用下列範例來測試模型調用功能,並確認服務在沒有授權錯誤的情況下運作。

  SELECT azure_ml.invoke('Your model input', 'Your model deployment name');

請確定函式在沒有任何授權錯誤的情況下成功執行。

  SELECT azure_ml.invoke('Your model input', 'Your model deployment name');

請確定函式在沒有任何授權錯誤的情況下成功執行。

訂用帳戶金鑰驗證

如果您需要還原為使用訂用帳戶密鑰驗證,請遵循下列步驟。 如果您想要切換回使用訂用帳戶密鑰進行驗證,而不是使用受控識別,這會很有用。

聯機到 PostgreSQL 資料庫

使用您慣用的 PostgreSQL 用戶端來連線到您的資料庫。

設定訂用帳戶密鑰授權類型

  • 針對 OpenAI,請執行下列 SQL 命令:
  SELECT azure_ai.set_setting('azure_openai.auth_type', 'subscription-key');
  SELECT azure_ai.set_setting('azure_openai.endpoint','https://<Your_OpenAI_Endpoint>');
  SELECT azure_ai.set_setting('azure_openai.subscription_key', '<Key>');
  • 針對認知服務,執行下列 SQL 命令:
  SELECT azure_ai.set_setting('azure_cognitive.auth_type', 'subscription-key');
  SELECT azure_ai.set_setting('azure_cognitive.endpoint','https://<endpoint>.cognitiveservices.azure.com');
  SELECT azure_ai.set_setting('azure_cognitive.subscription_key', '<Key>');
  • 針對機器學習服務,執行下列 SQL 命令:
  SELECT azure_ai.set_setting('azure_ml.auth_type', 'subscription-key');
  SELECT azure_ai.set_setting('azure_ml.scoring_endpoint','<URI>');
  SELECT azure_ai.set_setting('azure_ml.endpoint_key', '<Key>');