HashiCorp Vault

Virtual DataPort では HashiCorp Vault から資格情報を取得する手段として、次の認証方法をサポートします。

  • Agent: シンクファイルを使用して、資格情報保管方法に接続します。

  • App Role: ロールとシークレット ID を使用して、資格情報保管方法に接続します。

  • LDAP: LDAP ユーザーを使用して、資格情報保管方法に接続します。

  • TLS Certificate: TLS クライアント証明書を使用して、資格情報保管方法に接続します。

  • Token: トークンを使用して、資格情報保管方法に接続します。

  • User/password: ユーザー名とパスワードを使用して、資格情報保管方法に接続します。

Agent

このモードでは、資格情報保管方法との接続に用いる資格情報をシンクファイルから読み込みます。

Enabling HashiCorp Agent

以下のデータを指定する必要があります。

  • URL: HashiCorp Vault の URL です。例: https://hashicorp-host:8200

  • Certificate of Certification Authority (CA): HashiCorp Vault のレスポンスの検証に使用する証明書を含むファイルです。X509 証明書を指定する必要があります (オプション)。

  • Sink file: HashiCorp Agent がこのファイルに資格情報を生成します (オプション)。

[Ok] をクリックして変更を保存します。

シンクファイルに関する注意点

  • Virtual DataPort では、[Sink file] からラップされたトークンとアンラップされたトークンを読み込むことができます。

  • [Sink file] が指定されていない場合、Virtual DataPort では資格情報保管方法に対して認証済みリクエストを使用しません。この場合、[URL] フィールドに HashiCorp エージェントの URL を指定した上で、そのエージェントで [Auto-Auth Token] を有効化する必要があります。

注釈

この認証方法を使用する場合、資格情報は要求されません。

App Role

このモードでは、資格情報保管方法への接続にロールとシークレット ID が必要となります。

Enabling HashiCorp App Role

以下のデータを指定する必要があります。

  • URL: HashiCorp Vault の URL です。例: https://hashicorp-host:8200

  • Certificate of Certification Authority (CA): HashiCorp Vault のレスポンスの検証に使用する証明書を含むファイルです。X509 証明書を指定する必要があります (オプション)。

  • Role Id: 既存の App Role のロール ID です。

  • Secret Id: 既存の App Role にアタッチされたシークレット ID です。

[Ok] をクリックして変更を保存します。

LDAP

このモードでは、資格情報保管方法への接続に LDAP ユーザーから取得したユーザー名とパスワードが必要となります。

Enabling HashiCorp LDAP

以下のデータを指定する必要があります。

  • URL: HashiCorp Vault の URL です。例: https://hashicorp-host:8200

  • Certificate of Certification Authority (CA): HashiCorp Vault のレスポンスの検証に使用する証明書を含むファイルです。X509 証明書を指定する必要があります (オプション)。

  • User: LDAP ユーザーのユーザー名です。

  • Password: 指定したユーザーのパスワードです。

注釈

LDAP アクセスは HashiCorp Vault が行います。

[Ok] をクリックして変更を保存します。

TLS Certificate

資格情報保管方法への接続にクライアント証明書を要求するモードです。サポートする形式は PEM と PFX/PKCS#12 です。

Enabling HashiCorp PEM

以下のデータを指定する必要があります。

  • URL: HashiCorp Vault の URL です。例: https://hashicorp-host:8200

  • Certificate of Certification Authority (CA): HashiCorp Vault のレスポンスの検証に使用する証明書を含むファイルです。X509 証明書を指定する必要があります (オプション)。

  • Certificate name: この証明書に関連付けられたロール名です (オプション)。

  • Certificate format: 証明書のフォーマットです。

PFX/PKCS#12

  • Client certificate (private key): 資格情報保管方法による認証に使用する秘密キーを含むファイルを指定します。

    • Password: クライアント証明書 を含むファイルのパスワードです。

PEM

  • Client certificate (private key): 資格情報保管方法による認証に使用する秘密キーを含むファイルを指定します。このファイルにはパスワードを含めないでください。

  • PEM certificate: 資格情報保管方法による認証に使用する証明書を含むファイルを指定します。

  • Intermediate PEM certificate: 資格情報保管方法による認証に使用する中間証明書を含むファイルを指定します (オプション)。

[Ok] をクリックして変更を保存します。

Token

このモードでは、資格情報保管方法との接続にトークンが必要です。このトークンは直接指定することも、環境変数から取得することも可能です。

Enabling HashiCorp Token

以下のデータを指定する必要があります。

  • URL: HashiCorp Vault の URL です。例: https://hashicorp-host:8200

  • Certificate of Certification Authority (CA): HashiCorp Vault のレスポンスの検証に使用する証明書を含むファイルです。X509 証明書を指定する必要があります (オプション)。

  • Token: 資格情報保管方法へのアクセスに使用するトークンです。

  • Token environment variable: 資格情報保管方法に対する認証に使用するトークンを取得するために、Virtual DataPort が読み込む環境変数の名前です。

[Ok] をクリックして変更を保存します。

トークンに関する注意事項

  • Virtual DataPort では、ラップされたトークンとアンラップされたトークンを読み込むことが可能です。

注釈

この認証方法と [Token environment variable] の構成を使用する場合、資格情報は要求されません。

User/Password

このモードでは、資格情報保管方法への接続にユーザー名とパスワードが必要となります。

Enabling HashiCorp User/password

以下のデータを指定する必要があります。

  • URL: HashiCorp Vault の URL です。例: https://hashicorp-host:8200

  • Certificate of Certification Authority (CA): HashiCorp Vault のレスポンスの検証に使用する証明書を含むファイルです。X509 証明書を指定する必要があります (オプション)。

  • User: ユーザー名です。

  • Password: 指定したユーザーのパスワードです。

[Ok] をクリックして変更を保存します。

HashiCorp Vault のシークレットの命名規則

シークレット

HashiCorp Vault では、シークレット情報の保存に用いるフィールド名を指定する、複数の種類のシークレットを作成できます。Virtual DataPort は、この種類のシークレットが次の命名規則に従うものと見なします。

  • ユーザー名: username という名称のフィールドで指定されていると見なします。

  • パスワード: password という名称のフィールドで指定されていると見なします。

  • AWS アクセスキー: access_key という名称のフィールドで指定されていると見なします。

  • AWS シークレットキー: secret_key という名称のフィールドで指定されていると見なします。

ユーザー/パスワード資格情報を含むシークレットの例

{
  "username": "my-user",
  "password": "my-password"
}

AWS 資格情報を含むシークレットの例

{
  "access_key": "my-access-key",
  "secret_key": "my-secret-key"
}

名前空間

HashiCorp Vault では、シークレットをエレメントの種類に応じて異なるパスに保存します。Virtual DataPort がシークレットの値を取得するには、このパスが必要です。

例:

  • acmeuser と命名された KV シークレットのパスは secret/data/acmeuser です。

  • dbuser と命名された Database シークレットのパスは database/creds/dbuser です。

Virtual DataPort でシークレットを構成する際には、これらのパスを指定する必要があります。

Enabling HashiCorp JDBC secret

HashiCorp Vault の 名前空間 に置かれたシークレットには、先頭に名前空間の名称を付加する必要があります。たとえば、上記の例のシークレットを myns 名前空間に置いた場合、 myns/secret/data/acmeuser および myns/database/creds/dbuser として参照しなければなりません。