GCP のSecret Manager に秘密情報を登録した uga-box.hatenablog.com
これをSpring Bootアプリケーションから利用したい
ドキュメントは下だと思っていたが、バージョンが1.2.2.RELEASE
で、使っているバージョン1.2.3.RELEASE
と異なっていた
https://cloud.spring.io/spring-cloud-static/spring-cloud-gcp/1.2.2.RELEASE/reference/html/#secret-manager
パッチバージョンの違いなので問題ないと思っていたが、かなり大きな変更があって実装も変更する必要があった
もったいないので両方備忘録として記載する
1.2.2.RELEASEの場合
Dependencyの設定
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-gcp-starter-secretmanager</artifactId> </dependency>
bootstrap.ymlの用意
spring: cloud: gcp: secretmanager: bootstrap: enabled: true secret-name-prefix: secrets.
spring.cloud.gcp.secretmanager.bootstrap.enabled
: Secret ManagerからシークレットをロードしてConfigurationPropertiesにバインドできるようにする
spring.cloud.gcp.secretmanager.secret-name-prefix
: アプリケーションから secret.<secret-id>
というキーで秘密情報を参照できるようにする
あとは、Spring Bootの話なのだが以下のように実装してみた
ConfigurationPropertiesクラスの用意
secret-idをsecret_valueで登録した場合、secretValueというプロパティ名にする
@ConfigurationProperties("secrets") class SecretBindingConfigurationProperties { String secretValue; @ConstructorBinding SecretBindingConfigurationProperties(String secretValue) { this.secretValue = secretValue; }
利用する
利用する時は@EnableConfigurationProperties(SecretBindingConfigurationProperties.class)
をつける
1.2.3.RELEASEの場合
1.2.3.RELEASEの場合は次のブログに記載する