オンプレミスエージェント向け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.ymlsecretsセクション{ secret: '<secret_name>' }

シークレットがKey Vaultに保存されているオンプレミスシステムのコネクションタイプに応じて、Azure Key Vaultを設定して使用します:

コネクションタイプ

  • クラウドプロファイルはWorkatoで直接セットアップされるため、オンプレミスエージェントがインストールされているマシンにアクセスする必要はありません。
  • コネクションプロファイルは、オンプレミスエージェントがインストールされているマシン上のconfig.ymlファイルで手動でセットアップします。

クラウドプロファイルでAzure Key Vaultを使用する

クラウドプロファイルとして設定されたオンプレミスシステムの認証情報を保存するためにAzure Key Vaultを設定して使用するには、次の手順を完了します:

  1. Microsoft Entra IDにアプリケーションを登録する。 これにより、WorkatoはKey Vaultからシークレットを取得できます。
  2. ワークスペースレベルのSecrets managementまたはプロジェクト固有のSecrets management向けにAzure Key Vaultを設定します。
  3. コネクションで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_IDAZURE_TENANT_IDAZURE_CLIENT_SECRETをconfig.ymlファイルで直接設定できます。 さらに、これらの値は組み込みの暗号化ツールを使用して保護できます。

以下の例では、AZURE_CLIENT_SECRETのみが暗号化されています:

yaml
secrets:
  provider: azure
  vault: WorkatoSDKeyVault
  tenant: <tenant-id>
  clientId: <client-id>
  clientSecret: {encrypted: 'RCVtuGPjJWNqwkFQvhT...'}

ステップ1: Azureでシークレットを作成する

1

Azure portalにサインインします。

2

Azure Key Vaultに移動します。

3

シークレットを作成するキーコンテナーを開きます。 この例では、コンテナーはWorkatoSDKeyVaultです。

4

左側のナビゲーションペインで、設定>シークレットをクリックします。

5

シークレットページで、+ 生成/インポートをクリックします:

Azure portalの+ 生成/インポートオプション

6

表示されたシークレットの作成ウィンドウで、以下を入力します:

  • アップロードオプション: Manualを選択します

  • 名前: シークレットの名前を入力します。 例: sales-db-password

    この名前は、シークレットとそのvalueを取得するために、OPA設定ファイルでpasswordとして使用されます。

  • : シークレットの値を入力します。 実際のパスワードを指定してください。

  • 有効: まだ設定されていない場合は、このフィールドをYesに設定します

ウィンドウは次のようになります:

Azure portalの完全に設定されたシークレットの作成ウィンドウ

7

完了したら、作成をクリックします。


ステップ2: OPA設定ファイルを設定する

このステップでは、作成したキーコンテナーに関する情報をOPA設定ファイルに追加します。

1

OPA設定ファイルに、providerキーとvaultキーを含むsecretsセクションを追加します:

yaml
secrets:
  provider: azure
  vault: <VAULT_NAME>
2

providerには、azureを入力します。

3

次に、vaultを定義します。 Workatoでは、OPA設定ファイルで複数のコンテナーを指定できます:

  • デフォルトのコンテナーを定義するにはvaultにコンテナーの名前を入力します。 指定した場合、そのコンテナーは設定ファイルで定義されたすべてのシークレットに使用されます。

    次の例では、ステップ1のコンテナー名を入力しています。 この場合はWorkatoSDKeyVaultです:

    yaml
    secrets:
      provider: azure
      vault: WorkatoSDKeyVault
  • デフォルトをオーバーライドするか、シークレットレベルでコンテナーを定義するには、データベースのコネクションプロファイルで{ secret: '<SECRET_NAME>', vault: '<VAULT>'}を使用します。 次のセクションの例を参照してください。

4

ファイルを保存します。


ステップ3: データベースプロファイルを設定する

最後に、データベースのプロファイルで使用するシークレットを指定します。

1

configファイルで、データベースのプロファイルに移動します。

2

デフォルトのコンテナーを使用するには、シークレットを指定するためにpasswordキーで{ secret: '<SECRET_NAME>' }を使用します。 <SECRET_NAME>ステップ1で作成したシークレットの名前と一致する必要があります:

yaml
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>' }を使用します:

yaml
database:
  sales_database:
    adapter: sqlserver
    host: localhost
    port: 1433
    database: test
    username: sales_user
    password: { secret: 'sales-db-password-password', vault: 'other-vault' }
3

ファイルを保存します。

Last updated: