2.8. 外部シークレットストアを使用した機密データの Pod への提供
アプリケーションによっては、パスワードやユーザー名など開発者に使用させない秘密情報が必要になります。
Kubernetes Secret オブジェクトを使用して機密情報を提供する代わりに、外部シークレットストアを使用して機密情報を保存できます。Secrets Store CSI Driver Operator を使用して、外部シークレットストアと統合し、シークレットコンテンツを Pod ボリュームとしてマウントできます。
2.8.1. Secrets Store CSI Driver Operator について リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes シークレットは Base64 エンコーディングで保存されます。etcd は、これらのシークレットの保存時に暗号化しますが、シークレットの取得時に、シークレットが復号化されてユーザーに表示されます。クラスターでロールベースのアクセス制御が適切に設定されていない場合、API または etcd へのアクセス権を持つユーザーは誰でもシークレットを取得または変更できます。さらに、namespace で Pod を作成する権限を持つ人は誰でも、そのアクセス権を使用して、その namespace 内の任意のシークレットを読み取ることができます。
シークレットをセキュアに保存および管理するには、プロバイダープラグインを使用して、Azure Key Vault などの外部シークレット管理システムからシークレットをマウントするように OpenShift Container Platform Secrets Store Container Storage Interface (CSI) Driver Operator を設定できます。アプリケーションはシークレットを使用できますが、アプリケーション Pod が破棄されるとシークレットはシステム上に保持されません。
Secrets Store CSI Driver Operator (secrets-store.csi.k8s.io) を使用すると、OpenShift Container Platform で、エンタープライズグレードの外部シークレットストアに保存されている複数のシークレット、キー、証明書をボリュームとして Pod にマウントできます。Secrets Store CSI Driver Operator は、gRPC を使用してプロバイダーと通信し、指定された外部シークレットストアからマウントコンテンツを取得します。ボリュームがアタッチされると、その中のデータがコンテナーのファイルシステムにマウントされます。シークレットストアボリュームはインラインでマウントされます。
2.8.1.1. シークレットストアプロバイダー リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI Driver Operator は、次のシークレットストアプロバイダーでテストされています。
- AWS Secrets Manager
- AWS Systems Manager Parameter Store
- Azure Key Vault
- Google Secret Manager
- HashiCorp Vault
Red Hat は、サードパーティーのシークレットストアプロバイダーの機能に関連するすべての要素をテストしているわけではありません。サードパーティーのサポートの詳細は、Red Hat サードパーティーサポートポリシー を参照してください。
2.8.1.2. 自動ローテーション リンクのコピーリンクがクリップボードにコピーされました!
Secrets Store CSI ドライバーは、外部シークレットストアのコンテンツを使用して、マウントされたボリューム内のコンテンツを定期的にローテーションします。外部シークレットストアでシークレットが更新されると、マウントされたボリュームでもシークレットが更新されます。Secrets Store CSI Driver Operator は、2 分ごとに更新をポーリングします。
Kubernetes シークレットとしてマウントされたコンテンツの同期を有効にした場合は、Kubernetes シークレットもローテーションされます。
シークレットデータを使用するアプリケーションは、シークレットの更新を監視する必要があります。