次の方法で共有


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

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

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

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

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 Secrets ユーザー ロールを追加して、ユーザーと 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 名前を選択して詳細を表示します。 アプリケーション ID00000007-0000-0000-c000-000000000000 でない場合は、ID を選択し、削除を選択してリストから削除します。

  6. Azure Key Vault ファイアウォールを有効にしている場合は、Power Platform IP アドレスによる Key Vault へのアクセスを許可する必要があります。 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. PowerApps にサインインして、ソリューションを選択し、必要なアンマネージド ソリューションを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

  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. 主導でフローを実行してそれをテストします。

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

    フロー出力

制限

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

参照

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

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。