BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース HashiCorp、Vault Secrets Operator for Kubernetesを一般提供開始

HashiCorp、Vault Secrets Operator for Kubernetesを一般提供開始

原文リンク(2023-09-19)

HashiCorpは、HashiCorp Vault Secrets Operator for Kubernetes一般提供を開始した。このKubernetes Operatorは、Vaultのシークレット管理ツールとKubernetes Secretsキャッシュを組み合わせたものだ。このオペレーターはシークレットのローテーションも処理し、様々なシークレット固有のカスタムリソース用のコントローラーを備えている。

Vault Secrets Operatorsは、そのカスタムリソース定義(CRDs)のセットへの変更を監視する。各CRDによって、オペレータはVault SecretをKubernetes Secretに同期できる。このオペレータは、ソースであるVaultシークレットをKubernetesシークレットに直接書き込む。これにより、ソースに加えられたすべての変更が適切にレプリケーションされることが保証される。Kubernetesカスタムリソースを使用して、サービスによって使用されるシークレットを管理する。アプリケーションは、Kubernetesネイティブな方法でシークレットを消費できる。

オペレータは、VaultConnectionVaultAuthVaultDynamicSecretVaultPKISecretなど、サポートされているすべてのシークレット・カスタマ・リソース(CRs)をサポートする。この例では、VaultConnectionCR を活用している。

apiVersion: secrets.hashicorp.com/v1beta1kind: VaultConnectionmetadata:  namespace: vso-example  name: examplespec:  # address to the Vault server.  address: http://vault.vault.svc.cluster.local:8200

この例では、VaultDynamicSecretCR をデータベース秘密エンジンと共に使用する。以下の例では、新しいクレデンシャルを作成するために、http://127.0.0.1:8200/v1/db/creds/my-postgresql-role への要求を作成する。

---apiVersion: secrets.hashicorp.com/v1beta1kind: VaultDynamicSecretmetadata:  namespace: vso-example  name: examplespec:  vaultAuthRef: example  mount: db  path: creds/my-postgresql-role  destination:    create: true    name: dynamic1

GAリリースには、新しい認証方法の追加を含む多くの新機能が含まれている。これまでは、Kubernetesの認証方式のみが利用可能だった。GAリリースでは、認証方式としてJSON Web Token(JWT)AppRoleAWSがサポートされた。

GAリリースには、AKS、GKE、EKS、OpenShiftといった一般的なKubernetesクラウド・サービスの検証も含まれている。もう1つの新しい機能強化は、Vault Secrets Operatorが、デプロイが削除されたときにキャッシュされたVaultクライアントトークンの取り消しを試みるようになったことだ。

VaultとのTLS/mTLS通信と同様に、すべてのVaultシークレットエンジンがサポートされている。シークレットローテーションは、DeploymentReplicaSet、およびStatefulSetKubernetesリソースタイプでサポートされている。静的シークレットのローテーションは、以下を使用して実行できる。

vault kv put kvv2/webapp/config username="static-user2" password="static-password2" 

オペレータのデプロイは、Helmチャート Kustomizeを通してサポートされている。一旦デプロイされると、オペレーターは多くのパーミッションを必要とする。これらには、SecretServiceAccount、およびDeploymentオブジェクトに対するパーミッションが含まれる。指定されたネームスペース内のオブジェクトに対しては、必要に応じてアクセスを制限できる。

Kubernetes にSecrets API を使って直接保存されたシークレットは、API サーバーの基礎となるデータストアに暗号化されずに保存される。Kubernetesのドキュメントでは、静止時の暗号化の設定、RBACルールの有効化、必要なコンテナのみにシークレットへのアクセスを制限すること、または外部のシークレットストア・プロバイダーを使用することを推奨している。Secrets Store CSI Driverは、Vaultのサポートに加えて、AWSAzureGCPプロバイダーもサポートしている。

ベータ・リリースはHashiCorp Vault 1.13リリースで初めて導入され、GAリリースはVault 1.14リリースに合わせられた。リリースの詳細は、HashiCorpブログまたはGitHubリポジトリで確認できる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT