Menu Close

11.4. Secrets PropertySource の使用

Kubernetes には、パスワードや OAuth トークンなどの機密データを格納するための Secret という概念があります。Spring Cloud Kubernetes プラグインは Secrets とのインテグレーションを提供し、Spring Boot が Secret へアクセスできるようにします。

有効になっている Secrets プロパティーソースは、以下のソースから Kubernetes の Secrets を検索します。Secret が見つかった場合、アプリケーションはそのデータを利用できます。

  1. Secret マウントからの再帰的な読み取り
  2. アプリケーションにちなんだ名前の付与 (spring.application.name を参照)
  3. 一部のラベルとの一致

デフォルトでは、API 経由の Secret の消費 (上記の 2 および 3) は 有効になっていない ことに注意してください。

11.4.1. Secret の設定例

プロパティーを使用して ActiveMQ および PostreSQL 設定を読み取る demo という名前の Spring Boot アプリケーションがあるとします。

amq.username
amq.password
pg.username
pg.password

これらの Secret は YAML 形式で Secrets に対して外部化できます。

ActiveMQ の Secret
apiVersion: v1
kind: Secret
metadata:
  name: activemq-secrets
  labels:
    broker: activemq
type: Opaque
data:
  amq.username: bXl1c2VyCg==
  amq.password: MWYyZDFlMmU2N2Rm
PostreSQL の Secret
apiVersion: v1
kind: Secret
metadata:
  name: postgres-secrets
  labels:
    db: postgres
type: Opaque
data:
  pg.username: dXNlcgo=
  pg.password: cGdhZG1pbgo=