configmap を Azure KeyVault に変換する方法

configmap を Azure KeyVault に変換する方法

以下のような configmap があります。これをアプリケーション内の config ファイルにリンクします。

apiVersion: v1
kind: ConfigMap
metadata:
  name: database-configmap
data:
  config: |
   dbport=5432
   dcname=
   dbssl=false
   locktime=300
   domainuser=
   dattserverhost=localhost
   conntype=ON-PREM
   dbinstance=
   dattusessl=false
   dbpwd=VrjvBguQ
   iisport=80
   docountupgrade=false
   doreportupgrade=false
   dbname=dattdatabase
   dattuseiis=false
   dbtype=POSTGRESQL
   dbusername=postg
   dbserver=tgres.database.azure.com
   domainpwd=

これを azurekeyvault に保存し、展開中にそこから取得するにはどうすればよいでしょうか? 個々のキー/値のペアは keyvault に保存されます。 しかし、これをどのように実現するのでしょうか?

リンクで提供されているオプションを試しましたが、通常の Kubernetes シークレットとして表示されません。以下の出力を参照してください。

kubectl get azurekeyvaultsecret.spv.no/secret-sync -n akv-test
NAME          VAULT           VAULT OBJECT   SECRET NAME   SYNCHED
secret-sync   testingvaultd   sample1
kubectl get secrets -n akv-test
NAME                  TYPE                                  DATA   AGE
default-token-9bsk8   kubernetes.io/service-account-token   3      5m31s

答え1

私にとって興味深い質問だったので、少し調べてみました。まず、個人的に試したわけではないので(後で少し試してみます)、これは単なるアイデアであることを理解してください。コメントするには情報が多すぎます。

とても興味深いと思いましたakv2k8s プロジェクト(Azure Key Vault から Kubernetes までを調べる) 要件を満たすのに役立つようです...

Azure Key Vault to Kubernetes (akv2k8s) を使用すると、Azure Key Vault のシークレット、証明書、キーを Kubernetes やアプリケーションで利用できるようになります。

  • シンプルで安全な方法で。

概要では configmaps について言及されていますが、図では言及されていません。

Akv2k8s には 2 つの主要コンポーネントが含まれています。

  1. akv2k8s コントローラーは Azure Key Vault オブジェクトをネイティブとして Kubernetes に同期します秘密のまたは構成マップ

  2. akv2k8s インジェクターは、Azure Key Vault オブジェクトを環境変数としてアプリケーションに直接挿入します。

ここに画像の説明を入力してください

コントローラーを使用する場合: Azure Key Vault データを Kubernetes ConfigMap に同期する必要がある場合


インストール: Azure AKS 上の Kubernetes (akv2k8s) に Azure Key Vault をインストールする方法

関連情報