# オンプレミスエージェントに向けて Microsoft Azure Key Vault を設定する

このガイドでは、Microsoft Azure Key Vault (opens new window)Workato のオンプレミスエージェント (OPA) を併せて使用して、データベースの認証情報を保存する方法を解説します。

: このチュートリアルではシークレットを使って パスワード を暗号化することに焦点を置いていますが、シークレットはあらゆるコネクション値を暗号化するために利用できます。そのような値の例には、ユーザー名やデータベース名などがあります。


# 前提条件

Azure Key Vault を OPA と連動するように設定するには、以下が必要となります。

Azure 資格情報の暗号化

バージョン 2.14.0 以降のオンプレミスエージェントを使用している場合は、AZURE_CLIENT_IDAZURE_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 内でシークレットを作成する

1

Azure portal (opens new window) にサインインします。

2
3

シークレットの作成場所にしたいキーコンテナーを開きます。この例では、キーコンテナーは WorkatoSDKeyVault となっています。

4

左側のナビゲーションペインで [Settings] > [Secrets] をクリックします。

5

以下の図のように、 Secrets ページで [+ Generate/Import] をクリックします。

Azure portal 内の [+ Generate/Import] オプション

6

表示される [Create a secret] ウィンドウ で、以下を入力します。

  • Upload options : Manual を選択します。

  • Name : シークレットに名前を付けます。例 : sales-db-password

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

  • Value : シークレットの値を入力します。これは実際のパスワードにする必要があります。

  • Enabled : このフィールドは Yes に設定します。

ウィンドウは以下のような状態になっているはずです。

設定が完了した Azure portal の [Create a secret] ウィンドウ

7

完了したら、 [Create] をクリックします。


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

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

1

OPA 設定ファイル内で、secrets セクションと provider キーおよび vault キーを追加します。

secrets:
  provider: azure
  vault: <VAULT_NAME>
2

provider としては、azure を入力します。

3

次は、vault を定義します。Workato は、OPA 設定ファイル内で複数のキーコンテナーを指定する機能をサポートしています。

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

    以下の例では、ステップ1で使用したキーコンテナーの名前を入力しています。今回のケースで使用しているのは、WorkatoSDKeyVault でした。

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

4

ファイルを保存します。


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

仕上げとして、どのシークレットを使用するかをデータベースのプロファイル内で指定します。

1

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

2

デフォルトのキーコンテナーを使用するには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' }
3

ファイルを保存します。


Last updated: 2023/8/31 1:07:14