# オンプレミスエージェントに向けて Microsoft Azure Key Vault を設定する
このガイドでは、Microsoft Azure Key Vault (opens new window) と Workato のオンプレミスエージェント (OPA) を併せて使用して、データベースの認証情報を保存する方法を解説します。
注 : このチュートリアルではシークレットを使って パスワード を暗号化することに焦点を置いていますが、シークレットはあらゆるコネクション値を暗号化するために利用できます。そのような値の例には、ユーザー名やデータベース名などがあります。
# 前提条件
Azure Key Vault を OPA と連動するように設定するには、以下が必要となります。
- Workato でのオンプレミスグループ権限
- Azure での以下の事項:
- 次のことを実行できる権限:
- 既存のキーコンテナー。 キーコンテナーの作成はこのチュートリアルの範囲外ですが、作成のためにはこの Azure ガイド (opens new window)を利用できます。
- リソースへの読み取りアクセス権を持つ既存のサービスプリンシパル。 Workato の OPA は Azure へのリクエストにおいて資格情報を提供するために、環境変数 (opens new window) を使用します。ご使用のキーコンテナーへのアクセス権を持つサービスプリンシパルを作成するには、この Azure ガイド (opens new window)を利用してください。
Azure 資格情報の暗号化
バージョン 2.14.0 以降のオンプレミスエージェントを使用している場合は、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 (opens new window) にサインインします。
シークレットの作成場所にしたいキーコンテナーを開きます。この例では、キーコンテナーは WorkatoSDKeyVault
となっています。
左側のナビゲーションペインで [Settings] > [Secrets] をクリックします。
以下の図のように、 Secrets ページで [+ Generate/Import] をクリックします。
表示される [Create a secret] ウィンドウ で、以下を入力します。
Upload options :
Manual
を選択します。Name : シークレットに名前を付けます。例 :
sales-db-password
この名前は、シークレットとその
value
(値) を取得するために、OPA 設定ファイル内でpassword
として使用されることになります。Value : シークレットの値を入力します。これは実際のパスワードにする必要があります。
Enabled : このフィールドは
Yes
に設定します。
ウィンドウは以下のような状態になっているはずです。
完了したら、 [Create] をクリックします。
# ステップ2: OPA 設定ファイルを設定する
このステップでは、作成したキーコンテナーに関する情報を OPA 設定ファイルに追加します。
OPA 設定ファイル内で、secrets
セクションと provider
キーおよび vault
キーを追加します。
secrets:
provider: azure
vault: <VAULT_NAME>
provider
としては、azure
を入力します。
次は、vault
を定義します。Workato は、OPA 設定ファイル内で複数のキーコンテナーを指定する機能をサポートしています。
デフォルトのキーコンテナーを定義するには 、キーコンテナーの名前を
vault
として入力してください。これが入力されている場合、そのキーコンテナーは設定ファイル内で定義されたシークレットすべてに対して使用されます。以下の例では、ステップ1で使用したキーコンテナーの名前を入力しています。今回のケースで使用しているのは、
WorkatoSDKeyVault
でした。secrets: provider: azure vault: WorkatoSDKeyVault
デフォルトのキーコンテナーを上書きしたり、シークレットレベルでキーコンテナーを定義したりするには、データベースのコネクションプロファイル内で
{ secret: '<SECRET_NAME>', vault: '<VAULT>'}
を使用します。例については、次のセクションを参照してください。
ファイルを保存します。
# ステップ3: データベースのプロファイルを設定する
仕上げとして、どのシークレットを使用するかをデータベースのプロファイル内で指定します。
設定ファイル内で、データベースのプロファイルに移動します。
デフォルトのキーコンテナーを使用するには 、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: 2023/8/31 1:07:14