web-dev-qa-db-ja.com

AWS Secret ManagerをSpring Bootアプリケーションと統合する方法

AWS Secret Managerから認証情報を取得する必要があり、次のスターターのGradle依存関係を追加する必要があることがわかりました

spring-cloud-starter-aws-secrets-manager-config

また、Bootstrap.ymlに次の設定を追加する必要があることがわかりました

プロパティ構成

Spring Boot Applicationで誰かが非常に高く評価された場合、どのようにして秘密鍵にアクセスできるかは不明です。

5
pubudut

スプリングブートアプリケーションの構成でawsシークレットマネージャーを有効にするためには必要ありません以下の依存関係を追加する必要があるだけです

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws-secrets-manager-config</artifactId>
<!--<version> As per your spring-cloud-dependencies And starter parent version 
</version>-->
</dependency>

Spring-cloud-context依存関係がない場合は、同様にpomに追加します。

これにより、Springアプリがクラウドに接続できるようになり、その後、プロパティファイルからシークレットを読み取るのと同じ方法でシークレットを読み取ることができます。必要に応じてプロパティ構成をカスタマイズできます。Springのドキュメントをお読みください。 https://cloud.spring.io/spring-cloud-aws/2.1.x/multi/multi__cloud_environment.html

上記の変更をコードに追加したら、awsコンソールに移動してシークレットマネージャーを開き、アプリケーションに新しいシークレットを追加して、以下の手順に従います。spring.application.name= secretmanagerbootとパラメーター名が "com.secretmanagerboot.secret"であると仮定します。 .param1とその値は「secretvalue」です

  1. 新しい秘密のストアをクリック
  2. 他の種類の秘密を選択する
  3. パラメータ名を「com.secretmanagerboot.secret.param1」、パラメータ値を「secretvalue」として追加します
  4. 次へをクリック
  5. シークレット名をsecretmanagerboot <_PROFILE>として追加します。必要に応じて説明を追加できます。
  6. [次へ]をクリックして、ローテーションポリシーを選択します

アプリケーションのパラメーターには@Value( "$ {com.secretmanagerboot.secret.param1}")としてアクセスできます

2
Pankaj Yadav

上記の答えはおそらく間違っています。シークレットマネージャーの構成ストアは次のようになります:key: /secret/application value: {"username":"test"}

0
chuang chen