50.6. 例


50.6.1. Hashicorp Vault プロパティー関数の使用

この機能を使用するには、環境変数として Hashicorp vault の認証情報を提供する必要があります。

export $CAMEL_VAULT_HASHICORP_TOKEN=token
export $CAMEL_VAULT_HASHICORP_HOST=host
export $CAMEL_VAULT_HASHICORP_PORT=port
export $CAMEL_VAULT_HASHICORP_SCHEME=http/https

次のように、application.properties ファイルで認証情報を設定することもできます。

camel.vault.hashicorp.token = token
camel.vault.hashicorp.host = host
camel.vault.hashicorp.port = port
camel.vault.hashicorp.scheme = scheme
注記

camel.vault.hashicorp 設定は、Hashicorp Vault プロパティー関数 (例: プロパティーの解決時) にのみ適用されます。operation オプションを使用してシークレットを作成、取得、リスト表示する場合は、hostportscheme (必要に応じて)、token オプションを指定する必要があります。

この時点で、次の方法でプロパティーを参照できるようになります。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{hashicorp:secret:route}}"/>
    </route>
</camelContext>

ここでの route は、Hashicorp Vault インスタンスの 'secret' エンジンに保存されているシークレットの名前になります。

Hashicorp Vault インスタンスにシークレットが存在しない場合は、デフォルト値を指定する必要があります。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{hashicorp:secret:route:default}}"/>
    </route>
</camelContext>

この場合、シークレットが 'secret' エンジンに存在しない場合は、プロパティーの値は "default" に戻ります。

また、たとえば次の形式の database という名前のシークレットがある場合、シークレットの特定のフィールドを取得できます。

{
  "username": "admin",
  "password": "password123",
  "engine": "postgres",
  "host": "127.0.0.1",
  "port": "3128",
  "dbname": "db"
}

ルート内の 'secret' エンジンには、次の例のように 1 つのシークレット値を設定できます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <log message="Username is {{hashicorp:secret:database/username}}"/>
    </route>
</camelContext>

または、エンドポイントの一部としてプロパティーを再利用します。

'secret' エンジンで、Hashicorp Vault インスタンスのシークレットに特定のフィールドが存在が存在しない場合のデフォルト値を指定できます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <log message="Username is {{hashicorp:secret:database/username:admin}}"/>
    </route>
</camelContext>

この場合、シークレットが存在しないか、シークレットが存在する ('secret' エンジン内) がユーザー名フィールドがシークレットの一部ではない場合、プロパティーの値は "admin" にフォールバックされます。

フィールド/デフォルト値を指定して、またはシークレットのみを使用して、両方のアプローチでシークレットの特定のバージョンを取得するための構文もあります。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{hashicorp:secret:route@2}}"/>
    </route>
</camelContext>

このアプローチは、'secret' エンジンでバージョン '2' の RAW ルートシークレットを返します。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{hashicorp:route:default@2}}"/>
    </route>
</camelContext>

このアプローチでは、('secret' エンジン内に) シークレットが存在しない場合、またはバージョンが存在しない場合、バージョン '2' またはデフォルト値のルートシークレット値が返されます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <log message="Username is {{hashicorp:secret:database/username:admin@2}}"/>
    </route>
</camelContext>

このアプローチでは、データベースシークレットのユーザー名フィールドがバージョン '2' で返されます。あるいは、('secret' エンジン内) にシークレットが存在しない場合、またはバージョンが存在しない場合は、admin が返されます。

唯一の要件は、camel-hashicorp-vault jar を Camel アプリケーションに追加することです。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る