Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 7831

メモ:Logic Apps &マネージド ID で Key Vault のシークレットをカンタン操作 - himanago

$
0
0

はじめに

Azure Logic Apps はノーコードでサービス間連携をするのに非常に便利です。

「HTTP」のアクションを使えば外部サービスの APIを叩くことも容易ですが、その際に使用するキー管理も重要になってきます。

そこで使いたいのが Azure Key Vault。今回は Azure Logic Apps で Azure Key Vault の操作についてまとめます。

下準備

リソースの作成

Logic Apps と Key Vault のリソースを作っておきます。

Logic Apps は「消費」で大丈夫ですが、Key Vault 含め仮想ネットワークと統合したい場合は「Standard」にする必要があります。

続いて Key Vault。

アクセス許可モデルは「Azure ロールベースのアクセス制御 (推奨)」にしておきます。

あとは基本デフォルトのまま作成してます。

マネージド ID の設定

Logic Apps から Key Vault に接続するための設定を行っていきます。

システム割り当てマネージド ID を有効化し、Key Vault のロールに割り当てます。

Logic Apps 側

メニューの「設定」>「ID」で設定します。

「システム割り当て済み」のほうで「オン」にして保存します。

Key Vault 側

次に Logic Apps で作ったマネージド ID に対して Key Vault の操作に必要な権限のロールを付与します。

シークレットの参照をしたい場合は「キー コンテナー シークレット ユーザー 」ロールを、
シークレットの保存をしたい場合は「キー コンテナー シークレット責任者」ロールをつけます。

これで、Logic Apps から Key Vault を操作することができるようになりました。

Key Vault に保存したシークレットを参照する場合

では、実際に Logic Apps で Key Vault を操作してみます。

まずは単純に、Key Vault に保存したシークレットを参照する場合です。

これは Key Vault に保存したシークレットを使って外部の Web APIをたたいたりするときに便利です。

あらかじめシークレットを Key Vault に登録しておきます。

Logic Apps(今回トリガーは適当にHTTP 要求の受信時で作っています)で、Azure Key Vaultシークレットの取得アクションを追加します。

「接続の作成」で Managed Identityを選択します。

「Vault Name」には Key Vault のリソース名を入れます。

接続が成功していれば、保存済みのシークレットが選択できるようになっています。

これを選択すれば、後続アクションでシークレットの値を使用できます。

※あくまでサンプルなのでこんなことをしていますが実際はシークレットをそのままレスポンスで返すなんて処理を作るのはやめましょう

Key Vault にシークレットを保存する場合

サービス連携の管理のため、シークレットを Logic Apps から登録したいこともあるのですが、シークレットの保存についてはアクションがないので、REST APIを使っていきます。

learn.microsoft.com

Logic Apps では「HTTP」アクションを使います。

上記 REST APIのドキュメントを参考に内容を設定し、さらに追加のパラメータ―で認証情報を追加します。

Authenticationにチェックを入れ、

以下のように設定します。

  • 認証の種類: マネージド ID
  • マネージド ID: システム割り当てマネージド ID
  • Audience: https://vault.azure.net

これだけでセキュアに叩けるの、すごく便利ですね。

今回も雑に HTTP を叩いたら固定文字列でシークレットが追加されるようにしてみましたが、

実行したら、ちゃんと Key Vault にシークレットが増えています。

この方法は、キー保存をする処理を簡略化するときに重宝しています。

その他:実行履歴でシークレットが見えないようセキュリティで保護

Logic Apps でシークレットを扱う場合、その内容が実行履歴に残らないように設定することができます。

何も気にせず Logic Apps でシークレットを扱ってしまうと、アクションの入力・出力で使用されたときに、このように実行履歴で中身が丸見えです。

これを避けるため、シークレットを入力または出力で登場するアクションについて、設定>セキュリティで入力・出力をセキュリティで保護できます。

この設定をすると実行履歴で内容が見えなくなるので、安心ですね。

まとめ

Logic Apps でシークレットを扱う際、Key Vault との連携が便利です。

ちょっとまどろっこしい設定などはありますが、慣れてしまえばとても便利に使えるので、ぜひ活用してみてください。

APIキーなどを固定でアクションに書いてしまうのではなく、Key Vault を併用してセキュアに管理することでリスクを減らしていきましょう。

Logic Apps のセキュリティで保護する設定も忘れずに。


Viewing all articles
Browse latest Browse all 7831

Trending Articles