Azure Database for PostgreSQL 用の Azure AI 拡張機能では、Azure AI サービス、Azure OpenAI、Azure Machine Learning を使用したシステム割り当てマネージド ID (SAMI) がサポートされ、お客様に強化されたセキュリティ上の利点が提供されます。 Microsoft Entra ID を使用することで、ユーザーはアクセス キーなしで認証を行い、承認されていないアクセスのリスクを軽減し、資格情報の管理を簡素化できます。 この統合により、ID とアクセス許可が安全かつ効率的に処理され、データベース セキュリティのための堅牢なフレームワークが提供されます。
サブスクリプション の主な利点
- 保存するシークレットなし – サブスクリプション キーを手動で管理またはローテーションする必要はありません。
- セキュリティの強化 – ログまたはコード リポジトリで API キーを公開するリスクはありません。
- メンテナンスが簡単 – Azure はバックグラウンドで認証を処理し、運用上のオーバーヘッドを削減します。
システム割り当てマネージド ID を作成する
- Azure Portal に移動します。
- ポータル内で Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
- マネージド ID を有効にする:
- サーバーの概要ページの左側のナビゲーション メニューで、[ セキュリティ ] を展開し、[ ID] を選択します。
- システム割り当てマネージド ID の [オン] ラジオ ボタンを選択します。
- [ 保存] を 選択してマネージド ID を有効にします。
詳細については、マネージド ID に関するページを参照してください。
マネージド ID の割り当て
- Azure portal に移動し、Azure AI Services リソースを選択します。
- メニューで、[ アクセス制御 (IAM)] を選択します。
- [ 追加] を選択し、[ ロールの割り当ての追加] を選択します。
- Cognitive Services ユーザーロールを選択します。
- [ メンバー ] セクションで、[ マネージド ID] を選択します。
- PostgreSQL サーバーのサブスクリプションとマネージド ID を選択します。
- [保存] を選択してロールを割り当てます。
- サーバーの [概要] ページに戻り、[再起動] ボタンをクリックしてサーバーを再起動します。
詳細については、「Azure AI サービスを使用したマネージド ID」を参照してください
Azure OpenAI のアクセス制御 (IAM)
- Azure portal に移動し、サブスクリプションにデプロイされている Azure OpenAI リソースを選択します。 リソースをすばやく識別するには、種類 (Azure OpenAI) でリソースをフィルター処理します。
- リソースのメニューで、[ アクセス制御 (IAM)] を選択します。
- [ 追加] を選択し、[ ロールの割り当ての追加] を選択します。
- Cognitive Services OpenAI ユーザーロールを選択します。
- [ メンバー ] セクションで、[ マネージド ID] を選択します。
- PostgreSQL サーバーのサブスクリプションとマネージド ID を選択します。
- [保存] を選択してロールを割り当てます。
詳細については、Azure OpenAI を使用したマネージド ID に関するページを参照してください。
Azure Machine Learning のアクセス制御 (IAM)
- Azure portal に移動し、Azure Machine Learning リソースを選択します。
- リソースのメニューで、[ アクセス制御 (IAM)] を選択します。
- [ 追加] を選択し、[ ロールの割り当ての追加] を選択します。
- Azure Machine Learning データ サイエンティストロールを選択します。
- [ メンバー ] セクションで、[ マネージド ID] を選択します。
- PostgreSQL サーバーのサブスクリプションとマネージド ID を選択します。
- [保存] を選択してロールを割り当てます。
- モデル エンドポイントの認証の種類が Microsoft Entra トークン ベースとして選択されていることを確認します。
azure_aiでデータベース承認設定を更新する
マネージド ID またはサブスクリプション キー認証を使用するように PostgreSQL 用の Azure AI 拡張機能を構成するには、データベース承認設定を更新する必要があります。 このプロセスにより、拡張機能が Azure AI Services、Azure OpenAI、または Azure Machine Learning で正しく認証されます。 ユース ケースの適切な承認の種類とエンドポイントを設定するには、次の手順に従います。
承認の種類をマネージド ID に設定する
- OpenAI の場合は、次の SQL コマンドを実行します。
SELECT azure_ai.set_setting('azure_openai.auth_type', 'managed-identity');
- Cognitive Services の場合は、次の SQL コマンドを実行します。
SELECT azure_ai.set_setting('azure_cognitive.auth_type', 'managed-identity');
- 翻訳サービスを使用する場合は、次の SQL コマンドを実行して、Translator リソースのリソース ID を設定する必要があります。
SELECT azure_ai.set_setting('azure_cognitive.translator_resource_id', '<Your_translator_resource_id>');
- Machine Learning Services の場合は、次の 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 Services、Azure OpenAI、または Azure Machine Learning と対話する準備が整います。 次の SQL コマンドを使用して、現在の構成を確認し、正しい承認の種類とエンドポイントが設定されていることを検証します。
SELECT azure_ai.get_setting('azure_openai.auth_type');
SELECT azure_ai.get_setting('azure_openai.endpoint');
構成をテストする
マネージド ID を設定し、PostgreSQL 用の Azure AI 拡張機能を構成した後、統合が期待どおりに動作することを確認することが不可欠です。 テストにより、データベースが Azure AI Services、Azure OpenAI、Azure Machine Learning で正常に認証できることを確認します。 次の例では、サンプル関数呼び出しを実行して構成を検証し、サービスが承認エラーなしで機能することを確認する方法を示します。
SELECT azure_cognitive.analyze_sentiment('Your text here');
承認エラーなしで関数が正常に実行されることを確認します。
OpenAI サービスをテストする
OpenAI サービスをテストすると、PostgreSQL 用 Azure AI 拡張機能と Azure OpenAI の間の統合が正しく機能することが保証されます。 サンプル関数呼び出しを実行することで、マネージド ID またはサブスクリプション キー認証が正しく構成されていること、およびデータベースが OpenAI モデルと正常に対話できることを検証できます。 次の例に従って、埋め込み作成機能をテストし、承認エラーなしでサービスが動作することを確認します。
SELECT azure_openai.create_embeddings('Your model deployment name', 'Your text here');
承認エラーなしで関数が正常に実行されることを確認します。
機械学習サービスをテストする
機械学習サービスをテストすることで、PostgreSQL 用の Azure AI 拡張機能と Azure Machine Learning の間の統合が期待どおりに機能することが保証されます。 サンプル関数呼び出しを実行することで、マネージド ID またはサブスクリプション キー認証が正しく構成されていることを検証できます。 この手順では、データベースがデプロイされた機械学習モデルと正常に対話できることを確認し、予測やその他のモデル操作をシームレスに実行できるようにします。 次の例を使用して、モデル呼び出し機能をテストし、承認エラーなしでサービスが動作することを確認します。
SELECT azure_ml.invoke('Your model input', 'Your model deployment name');
承認エラーなしで関数が正常に実行されることを確認します。
SELECT azure_ml.invoke('Your model input', 'Your model deployment name');
承認エラーなしで関数が正常に実行されることを確認します。
サブスクリプション キー認証
サブスクリプション キー認証の使用に戻す必要がある場合は、次の手順に従います。 これは、マネージド ID ではなく、認証にサブスクリプション キーを使用するように切り替える場合に便利です。
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>');
- Cognitive Services の場合は、次の 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>');
- Machine Learning Services の場合は、次の 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>');