次の方法で共有


Azure Key Vault シークレットの環境変数を使用する

環境変数を使用すると、Azure Key Vault に格納されているシークレットを参照できます。 これで、これらのシークレットを、Power Automate フローやカスタム コネクタで使用できます。 シークレットは、他のカスタマイズに対してや、一般的に API 経由では使用できないことにご注意ください。

実際のシークレットは Azure Key Vault にのみ保存され、環境変数は Key Vault のシークレット場所を参照します。 環境変数で Azure Key Vault シークレットを使用するには、Azure Key Vault を、Power Platform が参照したい特定のシークレットを読むことができるように構成する必要があります。

シークレットを参照する 追従する 変数は現在、 Power Automate フローで使用するために動的コンテンツ セレクターから利用できません。

Azure Key Vault を構成する

Power PlatformでAzure Key Vaultシークレットを使用するには、コンテナーを持つAzureサブスクリプションにリソース プロバイダーが登録されている必要があり、 PowerPlatform Azure変数を作成するユーザーにはAzure Key Vaultリソースに対する適切なアクセス許可が必要です。

重要

  • Azure Key Vault内でアクセス権限をアサートするために使用される セキュリティ ロール に最近変更がありました。 前の手順には、Key Vault 閲覧者 ロールの割り当てが含まれていました。 以前にKey Vault閲覧者 ロールを使用してキー コンテナーを設定している場合は、Key Vaultシークレット ユーザー ロールを追加して、ユーザーにシークレットを取得するための十分な権限があることを確認してください。 Microsoft Dataverse
  • コンテナー アクセス ポリシーのアクセス許可モデルを使用するようにキー コンテナーを構成している場合でも、セキュリティ ロール の割り当てを評価するために、当社のサービスは Azure ロールベースのアクセス制御APIを使用していることを認識しています。 構成を簡素化するために、コンテナーのアクセス許可モデルを Azure ロールベースのアクセス制御に切り替えることをお勧めします。 これは、 「アクセス構成」 タブで行うことができます。
  1. Microsoft.PowerPlatform リソース プロバイダーをAzureサブスクリプションに登録します。 次の手順に従って、確認および構成します: リソース プロバイダーとリソース タイプ

    Azureにプロバイダを登録します Power Platform

  2. Azure Key Vault ボールトを作成します。 Power Platform 環境ごとに個別のボールトを使用して、侵害が発生した場合の脅威を最小限に抑えることを検討してください。 アクセス許可モデルAzure ロールベースのアクセス制御 を使用するようにキー コンテナーを構成することを検討してください。 詳細: Azure Key Vault を使用するためのベストプラクティスクイックスタート - Azure ポータルを使用して Azure Key Vault を作成する

  3. シークレット タイプの環境変数を作成または使用するユーザーは、シークレット コンテンツを取得する権限を持っている必要があります。 新規ユーザーにシークレットを使用する能力を付与するには、アクセスの制御 (IAM) エリアを選択し、追加 を選択して、ドロップから ロールの割り当ての追加 を選択します。 詳細: Azure ロールベースのアクセス制御を使用して、Key Vault のキー、証明書、シークレットへのアクセスを提供する

    Azure でのアクセスを表示する

  4. ロール割り当ての追加 ウィザードで、デフォルトの割り当てタイプを 役職ロール のままにして、 役割 タブに進みます。 Key Vault Secrets ユーザー ロール を見つけて選択します。 メンバー タブに進み、メンバーを選択 リンクを選択し、サイド パネルでユーザーを見つけます。 ユーザーを選択してメンバー セクションに表示したら、レビューと割り当て タブに進み、ウィザードを完了します。

  5. Azure Key Vault には、 Key Vault Secrets ユーザー ロールが Dataverse サービス プリンシパルに付与されている必要があります。 このボールトに存在しない場合は、以前にエンド ユーザーのアクセス許可に使用したのと同じ方法で、ユーザーの代わりに Dataverse アプリケーション ID のみを使用して、新しいアクセス ポリシーを追加します。 テナントに複数の Dataverse サービス プリンシパルがある場合は、それらをすべて選択してロールの割り当てを保存することをお勧めします。 役割が割り当てられたら、 Dataverse 役割の割り当てリストに表示されている各項目を確認し、 Dataverse 名前を選択して詳細を表示します。 アプリケーションIDが 00000007-0000-0000-c000-000000000000** でない場合は、IDを 選択 し、次に 選択 削除 してリストから削除します。

  6. Azure Key Vault Firewall を有効にしている場合は、 Power Platform IPアドレスにキー コンテナーへのアクセスを許可する必要があります。 Power Platform は「信頼されたサービスのみ」オプションには含まれていません。 サービスで現在使用されているIPアドレスについては、 Power Platform URLとIPアドレスの範囲 を参照してください。

  7. まだ行っていない場合は、新しいボールトにシークレットを追加します。 詳細: Azure クイックスタート - Azure ポータルを使用して Azure Key Vault からシークレットを設定および取得する

Key Vault シークレットの新しい環境変数を作成します

Azure Key Vault が構成され、ボールトにシークレットが登録されると、環境変数を使用して Power Apps 内で参照できるようになります。

ヒント

  • シークレットのユーザー アクセス検証はバックグラウンドで実行されます。 ユーザーに少なくとも読み取り権限がない場合、次の検証エラーが表示されます: 「この変数は正しく保存されませんでした。 ユーザーは、『Azure Key Vault パス』からシークレットを読み取ることを許可されていません。」
  • 現在、Azure Key Vault は、環境変数でサポートされている唯一のシークレット ストアです。
  • Azure Key Vault は、あなたの Power Platform サブスクリプションと同じテナント内に存在する必要があります。
  1. Power Appsにサインオンして、ソリューション エリアで、開発に使用しているアンマネージド ソリューションを開きます。

  2. 新規>その他>環境変数 を選択します。

  3. 環境変数に、表示名およびオプションで説明を入力します。

  4. データ タイプシークレットとして、シークレット ストアAzure Key Vault として選択します。

  5. 次のオプションを選択します。

    • 新しい Azure Key Vault 値参照を選択します。 次のステップで情報を追加して保存した後、環境変数 value レコードが作成されます。
    • 既定値を表示を展開し、フィールドを表示して、既定の Azure Key Vault シークレットを作成します。 次のステップで情報を追加して保存した後、環境変数 definition レコードに既定値境界線が追加されます。
  6. 次の情報を入力してください。

    • Azure サブスクリプション ID: キー ボールトに関連付けられている Azure サブスクリプション ID。

    • リソース グループ名: シークレットを含むキー ボールトが配置されている Azure リソース グループ。

    • Azure Key Valut 名: シークレットを含む Key Vault の名前です。

    • シークレット名: Azure Key Vaultにあるシークレットの名前。

      チップ

      サブスクリプション ID、リソース グループ名、およびキー ボールト名は、キー ボールトの Azure ポータルの概要ページに表示されています。 シークレット名は、設定の下でシークレットを選択することにより、Azure ポータルのキー ボールト ページに確認できます。

  7. 保存 を選びます。

Power Automate フローを作成して、環境変数シークレットをテストする

Azure Key Vault から取得したシークレットを使用する方法を示す簡単なシナリオは、シークレットを使用する Power Automate フローを作成して Web サービスに対して認証を行うことです。

ヒント

この例の Web サービス の URL は、機能している Web サービスではありません。

  1. Power Appsにログインし、選択 ソリューション にアクセスして、必要なアンマネージド ソリューションを開きます。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

  2. 新規>オートメーション>クラウド フロー>インスタント を選択します。

  3. フローの名前を入力し、選択 Manuallyトリガーa flow を選択してから、選択 Create を選択します。

  4. 新しいステップを選択し、Microsoft Dataverse コネクタを選択してから、行動タブでバインドされていないアクションを実行するを選択します。

  5. ドロップダウン リストから RetrieveEnvironmentVariableSecretValue という名前の付いたアクションを選択します。

  6. 前のセクションで追加した環境変数の一意の名前 (表示名ではない) を指定します。この例では、new_TestSecret が使用されています。

  7. 選択 ...>名前を変更 して、次のアクションで簡単に参照できるようにアクションの名前を変更します。 このスクリーンショットでは、名前が GetSecret に変更されています。

    環境 変数シークレットをテストするためのインスタントフロー構成

  8. ..。>設定を選択して、GetSecret アクション設定を表示します。

  9. 設定で安全な出力オプションを有効にしてから、完了を選択します。 これは、アクションの出力がフロー実行履歴に公開されるのを防ぐためです。

    アクションのセキュア出力設定を有効にする

  10. 選択 New手順 を検索し、選択 HTTP コネクタを検索します。

  11. 選択 で、 メソッドGET として選択し、Webサービスの URI を入力します。 この例では、架空の Web サービス httpbin.org が使用されています。

  12. 高度なオプションを表示を選択してから、認証基本を選択してから、ユーザー名を入力します。

  13. パスワード フィールドを選択してから、上記のフローステップ名の下の動的コンテンツタブ (この例では GetSecret) で、RetrieveEnvironmentVariableSecretValueResponse EnvironmentVariableSecretValue を選択します。これはよく、outputs('GetSecretTest')?['body/EnvironmentVariableSecretValue'] または body('GetSecretTest')['EnvironmentVariableSecretValue'] 式として追加されます。

    HTTP コネクタを使用して新しいステップを作成する

  14. ..。>設定 を選択して、HTTP アクション設定を表示します。

  15. 設定で セキュア入力 および セキュア出力 オプションを有効にし、選択 完了 を有効にします。 これらのオプションを有効化することで、アクションの出力がフロー実行履歴に公開されるのを防ぎます。

  16. 保存 を選択してフローを作成します。

  17. 主導でフローを実行してそれをテストします。

    フローの実行履歴を使用して、出力を検証できます。

    フロー出力

環境変数シークレットを使用する Microsoft Copilot Studio

環境 変数シークレットは Microsoft Copilot Studio 少し異なる動作をします。 環境 変数を含むシークレットを使用するには、 「Azure Key Vaultを構成する」 および 「Key Vaultシークレットの新しい 環境 変数を作成する」 のセクションの手順を実行する必要があります。

Azure Key Vaultへのアクセス権を付与する Copilot Studio

次のステップを実行します。

  1. 戻る をAzure Key Vaultに追加します。

  2. Copilot Studio キー ボールトにアクセスする必要があります。 シークレットを使用する権限を付与するには、左側のナビゲーションで 選択 Copilot Studio アクセス制御 (IAM) を選択し、選択 追加 を選択して、選択ロールの割り当てを追加 します。

    Azure でのアクセスを表示する

  3. 選択 で Key Vault Secrets User ロールを選択し、選択 次へ を選択します。

  4. 選択 選択 メンバーの場合は、 Power Virtual Agents サービスを検索し、選択 して、 選択 を選択します。

  5. 選択 確認 + 割り当て を画面の下部でクリックします。 情報を確認し、すべてが正しい場合は再度 選択 確認 + 割り当て を実行します。

コパイロット がAzure Key Vaultのシークレットにアクセスできるようにタグを追加します

このセクションの前の手順を完了すると、 Copilot Studio Azure Key Vaultにアクセスできるようになりますが、まだ使用することはできません。 タスク, 追従する を完了するには、次の手順を実行します。

  1. Microsoft Copilot Studio に移動して、環境 変数シークレットに使用する エージェント を開くか、新しいシークレットを作成します。

  2. エージェント トピック を開くか、新しいものを作成してください。

  3. 選択 + アイコンをクリックしてノードを追加し、選択 メッセージを送信します。

  4. 選択 は、 メッセージの送信 {x} ノードの 変数の挿入 オプションを選択します。

  5. 選択 は、 環境 tab. 選択 は、 Key Vaultシークレットの新しい 環境 変数を作成します 手順 で作成した 環境 変数シークレットです。

  6. 保存を選択して、トピックを保存します。

  7. テスト ペインで、トピック の開始フレーズの1つを使用して トピック をテストします。このフレーズでは、環境 変数シークレットを使用して メッセージを送信する ノードを追加しました。 次のようなエラーが発生するはずです。

    エラー メッセージ: ボット は 環境 変数の使用を許可されていません。ボット を許可リストに追加するには、値を持つタグ「AllowedBots」を追加します。

    つまり、戻る からAzure Key Vaultに移動し、シークレットを編集する必要があります。 後でまたここに戻ってくるので、開いたままにしておいてください。 Copilot Studio

  8. Azure Key Vaultに移動します。 左側のナビゲーションで、選択 Secrets下にあります。 選択 で、名前を選択して、 Copilot Studio で公開するシークレットを指定します。

  9. 選択 秘密のバージョン。

  10. 選択 0個のタグ タグの隣タグ名タグ値を追加します。 Copilot Studio のエラー メッセージには、これら2つのプロパティの正確な値が示されるはずです。 タグ名 の下に AllowedBots を追加し、 タグ値 にエラー メッセージに表示された値を追加する必要があります。 この値は {envId}/{schemaName}としてフォーマットされます。 許可する必要がある副操縦士が複数いる場合は、値をコンマで区切ります。 終了したら、OK を選択します。

  11. 選択 適用 をクリックして、シークレットにタグを適用します。

  12. 戻る を Copilot Studioに送信します。 選択 更新 して、 コパイロット をテスト します。

  13. テスト ペインで、トピック の開始フレーズの1つを使用して、トピック を再度テストします。

シークレットの値がテスト パネルに表示されます。

環境 内のすべての副操縦士がAzure Key Vaultのシークレットにアクセスできるようにタグを追加します

あるいは、環境 内のすべての副操縦士に、Azure Key Vault内のシークレットへのアクセスを許可することもできます。 タスク, 追従する を完了するには、次の手順を実行します。

  1. Azure Key Vaultに移動します。 左側のナビゲーションで、選択 Secrets下にあります。 選択 で、名前を選択して、 Copilot Studio で公開するシークレットを指定します。
  2. 選択 秘密のバージョン。
  3. 選択 0個のタグ タグの隣タグ名タグ値を追加します。 「タグ名」 の下に 「AllowedEnvironments」 を追加し、 「タグ値」 に、許可する 環境 の 環境IDを追加します。 完了, 選択 OKの場合
  4. 選択 適用 をクリックして、シークレットにタグを適用します。

制限事項

環境 変数は、Azure Key Vaultシークレットを参照しますが、現在、 Power Automate フロー、 Copilot Studio エージェント、およびカスタム コネクタでの使用に制限されています。

参照

キャンバス アプリでデータ ソース環境変数を使用する
Power Automate ソリューション クラウド フローで環境変数を使用する
環境 変数の概要。