オンプレミスエージェント向けMicrosoft Azure Key Vaultの設定
Microsoft Azure Key Vaultは、クラウドでシークレットを安全に保存してアクセスできるサービスです。 Workatoは、オンプレミスシステムのシークレット管理にAzure Key Vaultをサポートしています。
OPAコネクションタイプに対するAzure Key Vaultのサポート
Azure Key Vaultはクラウドプロファイルとコネクションプロファイルの両方をサポートしていますが、Azure Key Vaultへの接続および使用のプロセスはそれぞれ異なります。概要を次の表に示します:
| オンプレミスシステムのコネクションタイプ | Azure Key Vaultの設定 | Azure Key Vaultのシークレット構文 |
|---|---|---|
| クラウドプロファイル(推奨) | WorkatoのAzure Key Vaultコネクター | {{workato:sm:<secret_name>}} |
| コネクションプロファイル | config.ymlのsecretsセクション | { secret: '<secret_name>' } |
シークレットがKey Vaultに保存されているオンプレミスシステムのコネクションタイプに応じて、Azure Key Vaultを設定して使用します:
- クラウドプロファイルとして設定されたオンプレミスシステムでAzure Key Vaultを使用する
- コネクションプロファイルとして設定されたオンプレミスシステムでAzure Key Vaultを使用する
コネクションタイプ
- クラウドプロファイルはWorkatoで直接セットアップされるため、オンプレミスエージェントがインストールされているマシンにアクセスする必要はありません。
- コネクションプロファイルは、オンプレミスエージェントがインストールされているマシン上の
config.ymlファイルで手動でセットアップします。
クラウドプロファイルでAzure Key Vaultを使用する
クラウドプロファイルとして設定されたオンプレミスシステムの認証情報を保存するためにAzure Key Vaultを設定して使用するには、次の手順を完了します:
- Microsoft Entra IDにアプリケーションを登録する。 これにより、WorkatoはKey Vaultからシークレットを取得できます。
- ワークスペースレベルのSecrets managementまたはプロジェクト固有のSecrets management向けにAzure Key Vaultを設定します。
- コネクションでAzure Key Vaultシークレットを使用する。 コネクション設定のコネクションタイプフィールドで、クラウドプロファイル(Workatoで直接設定することを意味します)として設定したオンプレミスグループの名前を選択します。
コネクションプロファイルでAzure Key Vaultを使用する
レガシーコネクション構成
config.ymlファイルを使用したAzure Key Vaultの設定は、最終的に非推奨になるレガシーのコネクション設定です。 コネクションプロファイルをクラウドプロファイルに移行することをお勧めします。これにより、Workatoでコネクターを直接使用してAzure Key Vaultを設定できます。
このガイドでは、Workatoのオンプレミスエージェント(OPA)でMicrosoft Azure Key Vaultを使用して、コネクションプロファイルとして設定されたデータベースの認証情報を保存する方法を説明します。
注: このチュートリアルでは、シークレットを使用してパスワードを暗号化する方法に焦点を当てますが、シークレットは任意のコネクション値の暗号化に使用できます。 これにはユーザー名、データベース名などが含まれます。
前提条件
Azure Key VaultをOPAで使用するように構成するには、以下が必要です:
- Workatoのオンプレミスグループ権限。
- Azureでの以下の権限:
- 以下を実行できる権限:
- シークレットの作成
- アプリケーションへのロールの登録と割り当て
- 既存のキーコンテナー。 キーコンテナーの作成はこのチュートリアルの範囲外ですが、こちらのAzureガイドを使用して作成できます。
- リソースへの読み取りアクセス権を持つ既存のサービスプリンシパル。 Workato OPAは、Azureへのリクエストで認証情報を提供するためにEnvironment変数を使用します。 キーコンテナーへの読み取りアクセス権を持つサービスプリンシパルを作成するには、こちらのAzureガイドを使用します。
- 以下を実行できる権限:
Azure認証情報の暗号化
オンプレミスエージェントバージョン2.14.0以降では、Environment変数として設定する代わりに、AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRETをconfig.ymlファイルで直接設定できます。 さらに、これらの値は組み込みの暗号化ツールを使用して保護できます。
以下の例では、AZURE_CLIENT_SECRETのみが暗号化されています:
secrets:
provider: azure
vault: WorkatoSDKeyVault
tenant: <tenant-id>
clientId: <client-id>
clientSecret: {encrypted: 'RCVtuGPjJWNqwkFQvhT...'}ステップ1: Azureでシークレットを作成する
Azure portalにサインインします。
Azure Key Vaultに移動します。
シークレットを作成するキーコンテナーを開きます。 この例では、コンテナーはWorkatoSDKeyVaultです。
左側のナビゲーションペインで、設定>シークレットをクリックします。
シークレットページで、+ 生成/インポートをクリックします:

表示されたシークレットの作成ウィンドウで、以下を入力します:
アップロードオプション:
Manualを選択します名前: シークレットの名前を入力します。 例:
sales-db-passwordこの名前は、シークレットとその
valueを取得するために、OPA設定ファイルでpasswordとして使用されます。値: シークレットの値を入力します。 実際のパスワードを指定してください。
有効: まだ設定されていない場合は、このフィールドを
Yesに設定します
ウィンドウは次のようになります:

完了したら、作成をクリックします。
ステップ2: OPA設定ファイルを設定する
このステップでは、作成したキーコンテナーに関する情報をOPA設定ファイルに追加します。
OPA設定ファイルに、providerキーとvaultキーを含むsecretsセクションを追加します:
secrets:
provider: azure
vault: <VAULT_NAME>providerには、azureを入力します。
次に、vaultを定義します。 Workatoでは、OPA設定ファイルで複数のコンテナーを指定できます:
デフォルトのコンテナーを定義するには、
vaultにコンテナーの名前を入力します。 指定した場合、そのコンテナーは設定ファイルで定義されたすべてのシークレットに使用されます。次の例では、ステップ1のコンテナー名を入力しています。 この場合は
WorkatoSDKeyVaultです:yamlsecrets: provider: azure vault: WorkatoSDKeyVaultデフォルトをオーバーライドするか、シークレットレベルでコンテナーを定義するには、データベースのコネクションプロファイルで
{ secret: '<SECRET_NAME>', vault: '<VAULT>'}を使用します。 次のセクションの例を参照してください。
ファイルを保存します。
ステップ3: データベースプロファイルを設定する
最後に、データベースのプロファイルで使用するシークレットを指定します。
configファイルで、データベースのプロファイルに移動します。
デフォルトのコンテナーを使用するには、シークレットを指定するためにpasswordキーで{ secret: '<SECRET_NAME>' }を使用します。 <SECRET_NAME>はステップ1で作成したシークレットの名前と一致する必要があります:
database:
sales_database:
adapter: sqlserver
host: localhost
port: 1433
database: test
username: sales_user
password: { secret: 'sales-db-password-password' }デフォルト以外のコンテナーを使用する場合、オーバーライドを指定するためにpasswordキーで{ secret: '<SECRET_NAME>', vault: '<VAULT>' }を使用します:
database:
sales_database:
adapter: sqlserver
host: localhost
port: 1433
database: test
username: sales_user
password: { secret: 'sales-db-password-password', vault: 'other-vault' }ファイルを保存します。
Last updated: