12.5. エンドポイントオプション


AWS Secrets Manager エンドポイントは、URI 構文を使用して設定されます。

aws-secrets-manager:label
Copy to Clipboard Toggle word wrap

path パラメーターおよび query パラメーターを使用します。

12.5.1. パスパラメーター(1 パラメーター)

Expand
名前説明デフォルトタイプ

label (producer)

必須 論理名

 

String

12.5.2. クエリーパラメーター (19 パラメーター)

Expand
名前説明デフォルト

binaryPayload (producer)

シークレットがバイナリーかどうかを設定します。

false

boolean

operation (producer)

必須 実行する操作。

列挙値:

  • listSecrets
  • createSecret
  • getSecret
  • describeSecret
  • deleteSecret
  • rotateSecret
  • updateSecret
  • restoreSecret
  • replicateSecretToRegions
 

SecretsManagerOperations

overrideEndpoint (producer)

エンドポイントをオーバーライドする必要があるかどうかを設定します。このオプションは、uriEndpointOverride オプションと併用する必要があります。

false

boolean

pojoRequest (producer)

POJO リクエストをボディーとして使用するかどうか。

false

boolean

profileCredentialsName (producer)

プロファイル認証情報プロバイダーを使用する場合、このパラメーターによりプロファイル名が設定されます。

 

String

region (producer)

Secrets Manager クライアントが動作する必要があるリージョン。このパラメーターを使用する場合、設定には小文字のリージョン名を指定します (例 ap-east-1)。名前 Region.EU_WEST_1.id() を使用する必要があります。

列挙値:

  • ap-south-2
  • ap-south-1
  • eu-south-1
  • eu-south-2
  • us-gov-east-1
  • me-central-1
  • il-central-1
  • ca-central-1
  • eu-central-1
  • us-iso-west-1
  • eu-central-2
  • eu-isoe-west-1
  • us-west-1
  • us-west-2
  • af-south-1
  • eu-north-1
  • eu-west-3
  • eu-west-2
  • eu-west-1
  • ap-northeast-3
  • ap-northeast-2
  • ap-northeast-1
  • me-south-1
  • sa-east-1
  • ap-east-1
  • cn-north-1
  • ca-west-1
  • us-gov-west-1
  • ap-southeast-1
  • ap-southeast-2
  • us-iso-east-1
  • ap-southeast-3
  • ap-southeast-4
  • us-east-1
  • us-east-2
  • cn-northwest-1
  • us-isob-east-1
  • aws-global
  • aws-cn-global
  • aws-us-gov-global
  • aws-iso-global
  • aws-iso-b-global
 

String

uriEndpointOverride (producer)

オーバーライドする URI エンドポイントを設定します。このオプションは overrideEndpoint オプションと組み合わせて使用する必要があります。

 

String

useProfileCredentialsProvider (producer)

Secrets Manager クライアントがプロファイル認証情報プロバイダーを通じて認証情報をロードするかどうかを設定します。

false

boolean

lazyStartProducer (producer (advanced))

最初のメッセージでプロデューサーをレイジーに起動すべきかどうか。レイジーに起動することで、起動時に producer が失敗し、それによりルートが失敗する可能性がある状況で、CamelContext およびルートの起動を許可します。レイジーな起動を延期すると、Camel のルーティングエラーハンドラー経由でメッセージのルーティング中に起動の失敗を処理できます。最初のメッセージが処理されるときに、producer の作成および起動に若干時間がかかり、合計処理時間が長くなる可能性があることに注意してください。

false

boolean

secretsManagerClient (advanced)

Autowired 既存の設定済み AWS Secrets Manager クライアントを使用します。

 

SecretsManagerClient

proxyHost (proxy)

Secrets Manager クライアントをインスタンス化するときにプロキシーホストを定義します。

 

String

proxyPort (proxy)

Secrets Manager クライアントをインスタンス化するときにプロキシーポートを定義します。

 

Integer

proxyProtocol (proxy)

Secrets Manager クライアントをインスタンス化するときにプロキシープロトコルを定義します。

列挙値:

  • HTTP
  • HTTPS

HTTPS

Protocol

accessKey (security)

Amazon AWS Access Key。

 

String

secretKey (security)

Amazon AWS Secret Key。

 

String

sessionToken (security)

ユーザーが IAM ロールを引き受ける必要がある場合に使用される Amazon AWS セッショントークン。

 

String

trustAllCertificates (security)

エンドポイントをオーバーライドするときにすべての証明書を信頼する場合。

false

boolean

useDefaultCredentialsProvider (security)

Translate クライアントがデフォルトの認証情報プロバイダーを通じて認証情報をロードするか、または Translate クライアントに静的な認証情報が渡されるかを設定します。

false

boolean

useSessionCredentials (security)

Secrets Manager クライアントがセッション認証情報を使用するか設定します。これは、ユーザーが Secrets Manager で操作を実行するために IAM ロールを引き受ける必要がある場合に便利です。

false

boolean

useDefaultCredentialsProvider オプションを指定し、それを true に設定することで、明示的な静的認証情報の使用を回避できます。

デフォルト認証情報プロバイダーの評価順序は次のとおりです。

  • Java system properties - aws.accessKeyId and aws.secretKey
  • 環境変数: AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY
  • AWS STS の Web ID トークン。
  • 共有認証情報および設定ファイル。
  • Amazon ECS コンテナー認証情報 - 環境変数 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI が設定されている場合は、Amazon ECS からロードされます。
  • Amazon EC2 インスタンスプロファイルの認証情報。

useProfileCredentialsProvider オプションを true に指定し、profileCredentialsName をプロファイル名に指定することで、プロファイル認証情報プロバイダーを使用できます。

同時に使用できるのは、静的、デフォルト、およびプロファイルの認証情報のうち 1 つだけです。詳細は、AWS credentials のドキュメント を参照してください。

12.5.4. AWS Secrets Manager プロパティー関数の使用

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

export CAMEL_VAULT_AWS_ACCESS_KEY=accessKey
export CAMEL_VAULT_AWS_SECRET_KEY=secretKey
export CAMEL_VAULT_AWS_REGION=region
Copy to Clipboard Toggle word wrap

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

camel.vault.aws.accessKey = accessKey
camel.vault.aws.secretKey = secretKey
camel.vault.aws.region = region
Copy to Clipboard Toggle word wrap

代わりに AWS のデフォルト認証情報プロバイダー を使用する場合は、次の環境変数を指定する必要があります。

export CAMEL_VAULT_AWS_USE_DEFAULT_CREDENTIALS_PROVIDER=true
export CAMEL_VAULT_AWS_REGION=region
Copy to Clipboard Toggle word wrap

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

camel.vault.aws.defaultCredentialsProvider = true
camel.vault.aws.region = region
Copy to Clipboard Toggle word wrap

次のように、AWS Secrets Manager にアクセスするための特定のプロファイル名を指定することもできます。

export CAMEL_VAULT_AWS_USE_PROFILE_CREDENTIALS_PROVIDER=true
export CAMEL_VAULT_AWS_PROFILE_NAME=test-account
export CAMEL_VAULT_AWS_REGION=region
Copy to Clipboard Toggle word wrap

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

camel.vault.aws.profileCredentialsProvider = true
camel.vault.aws.profileName = test-account
camel.vault.aws.region = region
Copy to Clipboard Toggle word wrap
注記

camel.vault.aws 設定は、AWS Secrets Manager プロパティー関数 (たとえば、プロパティーを解決する場合) にのみ適用されます。シークレットの作成、取得、リスト表示などの operation オプションを使用する場合は、AWS サービスに接続するための通常のオプションを指定します。

この時点で、次の方法でプロパティーを参照できます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{aws:route}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

この場合の route は、AWS Secrets Manager Service に保存されているシークレットの名前になります。

AWS Secret Manager にシークレットが存在しない場合は、デフォルト値を指定できます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{aws:route:default}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

この場合、シークレットが存在しなければプロパティーの値は "default" にフォールバックします。

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

{
  "username": "admin",
  "password": "password123",
  "engine": "postgres",
  "host": "127.0.0.1",
  "port": "3128",
  "dbname": "db"
}
Copy to Clipboard Toggle word wrap

次のように、ルート内で 1 つのシークレット値を取得できます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <log message="Username is {{aws:database/username}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

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

AWS Secret Manager に特定のシークレットフィールドが存在しない場合は、デフォルト値を指定できます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <log message="Username is {{aws:database/username:admin}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

この場合、シークレットが存在しないか、シークレットは存在するが username フィールドがシークレットの一部ではない場合、プロパティーは値として "admin" にフォールバックします。

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

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{aws:route@bf9b4f4b-8e63-43fd-a73c-3e2d3748b451}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

このアプローチでは、バージョン 'bf9b4f4b-8e63-43fd-a73c-3e2d3748b451' の RAW ルートシークレットが返されます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <to uri="{{aws:route:default@bf9b4f4b-8e63-43fd-a73c-3e2d3748b451}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

このアプローチでは、バージョン 'bf9b4f4b-8e63-43fd-a73c-3e2d3748b451' のルートシークレット値が返されます。シークレットが存在しない場合、またはバージョンが存在しない場合は、デフォルト値が返されます。

<camelContext>
    <route>
        <from uri="direct:start"/>
        <log message="Username is {{aws:database/username:admin@bf9b4f4b-8e63-43fd-a73c-3e2d3748b451}}"/>
    </route>
</camelContext>
Copy to Clipboard Toggle word wrap

この方法では、バージョン 'bf9b4f4b-8e63-43fd-a73c-3e2d3748b451' のデータベースシークレットの username フィールドが返されます。シークレットが存在しない場合、またはバージョンが存在しない場合は、admin が返されます。

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

12.5.5. Secret Refresh での Camel コンテキストの自動リロード

シークレットの更新時に Camel コンテキストをリロードできるようにするには、通常の認証情報 (AWS Secret Manager Property 関数で使用されるものと同じ) を指定します。

環境変数を使用する場合:

export CAMEL_VAULT_AWS_USE_DEFAULT_CREDENTIALS_PROVIDER=accessKey
export CAMEL_VAULT_AWS_REGION=region
Copy to Clipboard Toggle word wrap

または単純な Camel のメインプロパティーとしての場合:

camel.vault.aws.useDefaultCredentialProvider = true
camel.vault.aws.region = region
Copy to Clipboard Toggle word wrap

または、デフォルトの認証情報プロバイダーチェーンを使用する代わりに、accessKey/SecretKey とリージョンを指定します。

自動更新を有効にするには、追加のプロパティーを次のように設定します。

camel.vault.aws.refreshEnabled=true
camel.vault.aws.refreshPeriod=60000
camel.vault.aws.secrets=Secret
camel.main.context-reload-enabled = true
Copy to Clipboard Toggle word wrap

ここで、camel.vault.aws.refreshEnabled は、自動コンテキストリロードを有効にし、camel.vault.aws.refreshPeriod は更新イベントの 2 つの異なるチェック間の時間間隔であり、camel.vault.aws.secrets は更新を追跡するシークレットを表す正規表現です。

camel.vault.aws.secrets は必須ではないことに注意してください。指定されていない場合は、更新イベントのチェックを担当するタスクが、指定されていないこと、または aws: 接頭辞を持つプロパティーを考慮します。

もう 1 つのオプションは、AWS EventBridge を AWS SQS サービスと組み合わせて使用することです。

AWS 側では、次のリソースを作成する必要があります。

  • AWS Couldtrail トレイル
  • AWS SQS キュー
  • 次のような Eventbridge ルール
{
  "source": ["aws.secretsmanager"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["secretsmanager.amazonaws.com"]
  }
}
Copy to Clipboard Toggle word wrap

このルールにより、AWS Secrets Manager に関連するイベントがフィルタリングされます

  • Eventbridge ルールの AWS SQS キューにルールターゲットを設定する必要があります。
  • 上記の SQS キューに書き込むには、Eventbrige ルールに権限を与える必要があります。これを行うには、次のような json ファイルを定義する必要があります。
{
    "Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"<queue_arn>/SQSDefaultPolicy\",\"Statement\":[{\"Sid\": \"EventsToMyQueue\", \"Effect\": \"Allow\", \"Principal\": {\"Service\": \"events.amazonaws.com\"}, \"Action\": \"sqs:SendMessage\", \"Resource\": \"<queue_arn>\", \"Condition\": {\"ArnEquals\": {\"aws:SourceArn\": \"<eventbridge_rule_arn>\"}}}]}"
}
Copy to Clipboard Toggle word wrap

queue_arneventbridge_rule_arn の値を変更し、policy.json という名前でファイルを保存し、AWS CLI で次のコマンドを実行します。

aws sqs set-queue-attributes --queue-url <queue_url> --attributes file://policy.json
Copy to Clipboard Toggle word wrap

この場合の queue_url は、先ほど作成されたキューの AWS SQS キュー URL です。

これで、Camel 側で設定をセットアップできるはずです。SQS 通知を有効にするには、次のプロパティーを追加します。

camel.vault.aws.refreshEnabled=true
camel.vault.aws.refreshPeriod=60000
camel.vault.aws.secrets=Secret
camel.main.context-reload-enabled = true
camel.vault.aws.useSqsNotification=true
camel.vault.aws.sqsQueueUrl=<queue_url>
Copy to Clipboard Toggle word wrap

この場合の queue_url は、先ほど作成されたキューの AWS SQS キュー URL です。

Secret という名前のシークレットの PutSecretValue イベントが発生するたびに、メッセージが AWS SQS キューにエンキューされ、Camel 側で消費され、コンテキストのリロードがトリガーされます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る