次の方法で共有


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 を構成する

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

重要

  • Azure Key Vault 内のアクセス許可をアサートするために使用されるセキュリティ ロール に最近変更が加えられました。 前の手順には、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. フローの名前を入力して、手動でフローをトリガーしますを選択してから、作成を選択します。

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

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

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

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

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

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

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

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

  10. 新しいステップを選択してから、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 シークレット用の新しい環境変数を作成するのセクションの手順を実行する必要があります。

Copilot Studio に Azure Key Vault へのアクセス権を与えます

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

  1. Azure Key Vault に戻ります。

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

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

  3. Key Vault シークレット ユーザーのロールを選択し、次へを選択します。

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

  5. 画面下部のレビュー+割り当てを選択します。 情報を確認し、すべてが正しければ、もう一度確認 + 割り当てを選択します。

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

このセクションの前の手順を完了することで、Copilot Studio はAzure Key Vaultにアクセスできるようになりますが、まだ使用することはできません。 タスクを完了するには、以下の手順に従ってください:

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

  2. エージェントのトピックを開くか、新規作成します。

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

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

  5. 環境タブを選択します。Key Vault 用の新しい環境変数を作成するのステップで作成した環境変数のシークレットを選択します。

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

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

    エラー メッセージ: ボットは環境変数を使用できません。ボットを許可リストに追加するには、値を含むタグ「AllowedBots」を追加します。

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

  8. Azure Key Vault に移動します。 左側のナビゲーションで、オブジェクト配下のシークレットを選択します。 Copilot Studio で使用可能にするシークレットの名前を選択します。

  9. シークレットのバージョンを選択します。

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

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

  12. Copilot Studio に戻ります。 Copilot のテスト ペインで更新を選択します。

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

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

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

または、環境内のすべてのコパイロットに Azure Key Vault のシークレットへのアクセスを許可することもできます。 タスクを完了するには、以下の手順に従ってください:

  1. Azure Key Vault に移動します。 左側のナビゲーションで、オブジェクト配下のシークレットを選択します。 Copilot Studio で使用可能にするシークレットの名前を選択します。
  2. シークレットのバージョンを選択します。
  3. 0 個のタグの隣にあるタグを選択します。 タグ名タグ値を追加します。 タグ名AllowedEnvironments を追加し、タグの値に許可する環境の環境 ID を追加します。 終了したら、OK を選択します
  4. 適用を選択して、タグをシークレットに適用します。

制限事項

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

Azure Key Vault のシークレットを環境変数で使用するには、Power Platform が参照したい特定のシークレットを読み取れるように Azure Key Vault を構成する必要があります。 この機能により、プライベート リンク経由で接続する Azure Key Vault シークレットを含む環境変数のサポートが可能になり、セキュリティが強化され、より堅牢な統合が提供されます。

  1. 環境変数をパブリック インターネットに公開することなく Azure Key Vault のシークレットと統合するため、Power Platform 用の Azure Virtual Network サポートをセットアップします。 詳細な手順については、仮想ネットワークの設定を参照してください。

  2. クロス テナント統合はサポートされていないため、Key Vault 用 Azure サブスクリプションと Power Platform の仮想ネットワークが同じテナントにあることを確認してください。

  3. 環境変数を作成するユーザーに、Azure Key Vault リソースに対する適切なアクセス許可があることを確認します。 詳細については、Azure Key Vaultを構成するを参照してください

  4. キー コンテナーを作成し、プライベート リンク接続を確立します。 キー コンテナーを作成する手順には、次のアクションを含める必要があります。

    • パブリック アクセスを無効にします。
    • プライベート エンドポイントを作成します。
    • このプライベート エンドポイントを作成する仮想ネットワークとサブネットを選択します。 Power Platform に委任されたバーチャルネットワーク (仮想ネットワーク) を確実に接続してください。
    • プライベート リンクの接続を検証します。

    詳細な手順については、Power Platform の仮想ネットワーク サポートの設定参照してください。

  5. Azure Key Vault にリンクして環境変数のシークレットを作成します。

参照

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