Azure Logic Appsコネクター
Azure Functionミドルウェア経由でKeeperシークレットマネージャーをAzure Logic AppsおよびPower Automateに接続
Azure Logic AppsおよびPower AutomateからKeeperボルト内のシークレットを管理できます。実行時に認証情報を取得し、新しいシークレットを作成し、パスワードをローテーションし、ワークフローに機密値をハードコードすることなくボルトを監査できます。
概要
Keeperシークレットマネージャーコネクターは、Azure Logic AppsおよびPower AutomateをKeeperシークレットマネージャーに接続します。Azure Function Appとしてデプロイする軽量なPythonミドルウェアサービスが、Keeperシークレットマネージャー Python SDKを介してKeeperボルトと通信します。
すべてのシークレットはKeeperのゼロ知識アーキテクチャで保護されます。Azure Function App内でローカルに復号され、Keeperのサーバーを経由しません。ミドルウェアの構成は、マネージドID参照を通じてAzure Key Vaultに保存されます。
機能
実行時シークレット取得: フローにシークレットをハードコードせず、必要に応じて認証情報を取得
シークレットの作成と更新: ワークフローから直接認証情報をプロビジョニングおよびローテーション
動的ドロップダウン: Logic Appデザイナー内のシークレットおよびフォルダピッカーに選択肢を自動表示
ゼロ知識暗号化: シークレットはローカルで復号され、Azure環境外へ出ない
ワンクリックデプロイ: ARMテンプレートにより、数分で必要なAzureリソースをすべてプロビジョニング
認定コネクター: Microsoft Power Platformマーケットプレイスで公開
要件
Keeper Securityアカウント
サブスクリプション: シークレットマネージャーが有効なKeeperエンタープライズアカウント
アプリケーション: 少なくとも1つの共有フォルダが設定されたKeeperボルト内のKeeperシークレットマネージャーアプリケーション
デバイス構成: Keeper管理コンソールから生成したBase64エンコードのデバイス構成、またはワンタイムアクセストークン
Azureアカウント
サブスクリプション: リソースグループに対するOwner、またはContributor + User Access Administrator権限を持つAzureサブスクリプション。ARMテンプレートはインフラストラクチャ、ロール割り当て、デプロイスクリプトを作成。手動セットアップの場合のみContributor権限で足りる
セットアップ
手順1: Keeperシークレットマネージャーアプリケーションを作成する
Keeperボルトにサインインします
左メニューから [シークレットマネージャー] を開きます
[アプリケーションの作成] をクリックし、わかりやすい名前を付けます (例: 「Azure Logic Apps Connector」)
1つ以上のボルトフォルダをアプリケーションと共有します。これらのフォルダが、コネクターがアクセスできるシークレットを決定します
[デバイス] タブを開き、[デバイスを追加] をクリックします
[デバイス名] を入力し、[取得方法] で [構成ファイル] を選択し、[構成タイプ] で [Base64] を選択して、[コピー] をクリックします
デバイス構成 (ワンタイムアクセストークン) は1回のみ使用できます。初回接続後、KeeperシークレットマネージャーSDKが永続的な構成を導出して保存します。Base64文字列は安全に保管し、ソース管理にコミットしないでください。
構成ファイルおよびPython SDKについて、詳しくはKSM Developer SDKsのドキュメントをご参照ください。


手順2: Azure Functionミドルウェアをデプロイする
ミドルウェアリポジトリのDeploy to Azureボタンをクリックします。Azure portalでResource Groupを選択または作成し、以下を入力します。
Function App Name
グローバルに一意な名前、3〜60文字 (例: keeper-middleware-acme)
Keeper Config
手順1で取得したBase64エンコードのデバイス構成
Location
Azureリージョン (デフォルトはリソースグループのロケーション)
Review + createをクリックし、デプロイが完了するまで待ちます。通常5〜7分かかります。ARMテンプレートですべてのリソースがプロビジョニングされ、ミドルウェアコードも自動デプロイされます。 func publish を実行する必要はありません。
ARMデプロイには、リソースグループに対するOwner、またはContributor + User Access Administratorが必要です。
プロビジョニングされるリソース
テンプレートにより、以下のリソースがプロビジョニングされます。
Azure Function App
Python 3.11、Linux Consumptionプラン、システムマネージドID
App Service Plan
Linux Consumption (Dynamic Y1) ホスティングプラン
Azure Key Vault
KSM構成をシークレット (KSM-CONFIG) として保存
Key Vault Access Policy
Function AppにKey Vaultシークレットへの GET 権限を付与
Storage Account
Azure Functionsランタイムで必要
User-Assigned Managed Identity
デプロイスクリプトがFunction Appへミドルウェアコードをデプロイする際に使用
Contributor Role Assignment
プロビジョニング中にUAMIがFunction Appへデプロイする権限を付与
Deployment Script
ミドルウェアコードをFunction Appにダウンロードしてデプロイ。成功時に自動クリーンアップ
すべてのリソースでHTTPSのみおよび**TLS 1.2+**が強制されます。Deployment Scriptリソースはプロビジョニング成功後に自動削除されます。User-Assigned Managed IdentityとそのContributorロール割り当てはデプロイ後も残ります。プロビジョニング完了後に手動で削除できます。
ARMテンプレートを使わず、Azure portalで必要なリソースを作成することもできます。 手順の詳細は、リポジトリのManual Setupをご参照ください。
手動セットアップの場合: Resource Group、Key Vault、Storage Account、Function Appを作成した後、Azure Functions Core Toolsでミドルウェアコードをデプロイします。
<FUNCTION_APP_NAME> をFunction App名に置き換えます。「Remote build succeeded!」が表示されるまで待ちます (2〜5分)。
手順3: Function Host Keyをコピーする
Azure portalで、デプロイ済みのFunction Appを開きます
左メニューでApp keys (Functionsセクション内) を選択します
defaultホストキーをコピーします
手順4: コネクターを追加する
Logic App DesignerでAdd an actionをクリックし、Keeper Secrets Managerを検索して、コネクター一覧から選択します。認定コネクターは最初から利用できます。インポートは不要です。
開発環境またはセルフホストでデプロイする場合は、Azure portalまたはPower AutomateのCustom connectorsから apiDefinition.swagger.json をアップロードして、コネクターを手動インポートできます。

手順5: 接続を作成する
プロンプトが表示されたら、以下を入力します。
Function App URL: Azure Function Appのホスト名 (例:
yourapp.azurewebsites.net)API Key: 手順3のホストキー。すべてのリクエストで
x-functions-keyヘッダーとして送信されます
以降のフローはこの接続を再利用します。


クイックスタート
接続後、Logic AppフローにKeeperシークレットマネージャーのアクションを追加できます。利用できる操作は5つです。
List Secrets
GET /secrets
アクセス可能なすべてのシークレット (UID、タイトル、タイプ、フォルダ) を返却
Get Secret
GET /secrets/{uid}
ログイン、パスワード、URL、メモ、TOTPコード、パスキー、ファイル参照、カスタムフィールド、編集可否を含むシークレットの詳細を返却
Create Secret
POST /secrets
共有フォルダに新しい login レコードタイプのシークレットを作成 (folder_uid と title が必要)
Update Secret
PUT /secrets/{uid}
title、login、password、url、notes の任意の組み合わせを更新
List Folders
GET /folders
アクセス可能なすべてのフォルダ (UID、名前、親、レコード数) を返却
Get SecretおよびUpdate Secretには、List Secretsで入力される動的ドロップダウンがあります。Create Secretには、List Foldersで入力される対象フォルダ選択用の動的ドロップダウンがあります。

自動化フロー
他のAzure Logic Appsコネクターと組み合わせる際の一般的なパターンです。
自動パスワードローテーション
スケジュールに従って認証情報をローテーションし、チームに通知します。

使用: Keeper Secrets Manager + Compose + Office 365 Outlook
API呼び出しへの認証情報注入
フロー内に保存せず、実行時にボルトからAPIキーを取得します。

使用: Keeper Secrets Manager + HTTP + SharePoint
従業員向け認証情報プロビジョニング
新入社員が入社した際に、ボルトの認証情報を自動作成します。

使用: Keeper Secrets Manager + Azure AD + Office 365 Outlook
ボルトコンプライアンス監査
すべてのシークレットとフォルダの週次インベントリレポートを生成します。

使用: Keeper Secrets Manager + Data Operations + SharePoint + Office 365 Outlook
GitHubシークレット同期
GitHubリポジトリのシークレットをKeeperボルトと同期します。

使用: Keeper Secrets Manager + HTTP
データベース接続文字列の取得
ボルトに保存した認証情報から、必要に応じて接続文字列を組み立てます。

使用: Keeper Secrets Manager + Compose + Request/Response
セキュリティ
ゼロ知識
Keeperシークレットマネージャー SDKを介してAzure Function内でローカルに復号。平文シークレットはKeeperサーバーを経由しない
Key Vaultストレージ
デバイス構成はマネージドID参照を通じてAzure Key Vaultに保存。平文では保存しない
HTTPS + TLS 1.2+
Azure App Serviceレベルで強制
Functionレベル認証
すべてのリクエストに x-functions-key ヘッダーが必要
レート制限
ワーカーごとのベストエフォート制限 (60秒間に60リクエスト) により、意図しない過負荷を防止。超過時は 429 Too Many Requests と Retry-After ヘッダーを返却
入力検証
Content-Type、フィールド長、必須パラメータを検証
安全なエラーメッセージ
APIエラーレスポンスに機密データを含めない
既知の制限
ログインレコードタイプのみ: Create Secretは
loginレコードタイプのみ。SSHキーやデータベース認証情報など、他のKeeperレコードタイプは作成不可フォルダ作成不可: フォルダはKeeperボルトまたはKeeper管理コンソールで作成。コネクターからは作成できない
ファイル添付: ファイル添付付きシークレットは一覧表示されるが、添付ファイルのバイナリ内容は返却されない
コールドスタート遅延: Azure Consumptionプランでは2〜5秒を想定。レイテンシに敏感なワークロードにはApp Serviceプランを使用
トラブルシューティング
問題: KSM_CONFIG 環境変数が設定されていない
原因: Function App設定のKey Vault参照が欠落している、または無効
解決方法:
Azure portalで、Function App > Configuration > Application settingsを開きます
KSM_CONFIGが存在し、有効なKey Vault参照 (例:@Microsoft.KeyVault(SecretUri=...)) が含まれていることを確認します
問題: 401 Unauthorized
原因: ホストキーが無効、または一致しない
解決方法:
コネクター接続のホストキーが、Function App > App keysのキーと一致していることを確認します
x-functions-keyヘッダーが送信されていることを確認します
問題: 404 Not Found
原因: シークレットが無効、または削除済み
解決方法:
シークレットUIDが無効、またはボルトから削除されています
UIDがKeeperボルトに存在することを確認してください
問題: 400 Bad Request
原因: 必須パラメータが不足
解決方法:
シークレット作成時に
folder_uidが指定されていることを確認してくださいフォルダがアプリケーションからアクセス可能であることを確認してください
問題: 429 Too Many Requests
原因: レート制限超過
解決方法:
Retry-Afterレスポンスヘッダーで指定された時間待機してくださいリクエスト頻度を下げるか、時間を分散してください
問題: 初回リクエストが遅い
原因: Consumptionプランでのコールドスタート
解決方法:
Azure Consumptionプランでは正常な動作です
レイテンシを下げるには、App Serviceプランへアップグレードするか、Always Onを有効にしてください
GET /api/health でFunction Appが稼働中で到達可能か確認できます。ミドルウェアが正常な場合、 {"status": "ok"} を返します。
次のステップ
完全なAPIリファレンス: リクエスト/レスポンススキーマ、エラーコード、高度な使い方については、コネクターの詳細ドキュメントをご参照ください
ミドルウェアリポジトリ: ローカル開発セットアップ、CLIデプロイ、テスト手順については、Azure Function Middlewareリポジトリをご参照ください
Keeperシークレットマネージャー SDK: Logic Apps以外の直接SDK連携については、KSM Developer SDKsをご参照ください
リソース
機能リクエストは pam@keepersecurity.com までメールでお送りください。
最終更新

