7.4. シークレットの使用によるデータソースの認証情報の保存
シークレットオブジェクトを作成してデプロイし、環境変数の値を保存します。
シークレットは主に、プロパティーの値を隠すことで機密データを保護するため存在しますが、それらを使用して任意のプロパティーの値を保存できます。
前提条件
- データソースにアクセスするために必要なログイン認証情報およびその他の情報がある。
手順
データソースの認証情報を含めるためにシークレットファイルを作成し、これを YAML ファイルとしてローカルに保存します。以下に例を示します。
secrets.yml ファイルのサンプル
apiVersion: v1 kind: Secret metadata: name: postgresql type: Opaque stringData: database-user: bob database-name: sampledb database-password: bob_password
OpenShift にシークレットオブジェクトをデプロイします。
OpenShift にログインし、仮想データベースに使用するプロジェクトを開きます。以下に例を示します。
oc login --token=<token> --server=https://<server>
oc project <projectName>
以下のコマンドを実行してシークレットファイルをデプロイします。
oc create -f ./secret.yaml
シークレットから値を取得するには、環境変数を設定します。
環境変数で
valueFrom:/secretKeyRef
形式を使用して、手順 1 で作成したシークレットのキーから変数がこの値を取得するように指定します。たとえば、以下の抜粋では
SPRING_DATASOURCE_SAMPLEDB_PASSWORD
はpostgresql
シークレットのdatabase-password
キーへの参照から値を取得します。
- name: SPRING_DATASOURCE_SAMPLEDB_PASSWORD valueFrom: secretKeyRef: name: postgresql key: database-password
関連情報
- OpenShift でシークレットを使用する方法の詳細は、OpenShift ドキュメント の「機密データの Pod の提供」を 参照してください。