5.21. Secrets Store CSI ドライバー
5.21.1. 概要
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 を使用してプロバイダーと通信し、指定された外部シークレットストアからマウントコンテンツを取得します。ボリュームがアタッチされると、その中のデータがコンテナーのファイルシステムにマウントされます。シークレットストアボリュームはインラインでマウントされます。
CSI インラインボリュームの詳細は、CSI インライン一時ボリューム を参照してください。
GCP Filestore CSI Driver Operator は、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
CSI ドライバーを使用する場合、永続ストレージ および CSI ボリュームの設定 を理解しておくことが推奨されます。
5.21.1.1. シークレットストアプロバイダー
次のシークレットストアプロバイダーは、Secrets Store CSI Driver Operator で使用できます。
- AWS Secrets Manager
- AWS Systems Manager Parameter Store
- Azure Key Vault
5.21.2. CSI について
ストレージベンダーはこれまで Kubernetes の一部としてストレージドライバーを提供してきました。Container Storage Interface (CSI) の実装では、サードパーティーのプロバイダーは、コア Kubernetes コードを変更せずに標準のインターフェイスを使用してストレージプラグインを提供できます。
CSI Operator は、インツリーボリュームプラグインでは不可能なボリュームスナップショットなどのストレージオプションを OpenShift Container Platform ユーザーに付与します。
5.21.3. Secrets Store CSI ドライバーのインストール
前提条件
- OpenShift Container Platform Web コンソールにアクセスできる。
- 管理者としてクラスターにアクセスできる。
手順
Secrets Store CSI ドライバーをインストールするには、以下を実行します。
Secrets Store CSI Driver Operator をインストールします。
- Web コンソールにログインします。
-
Operators
OperatorHub をクリックします。 - フィルターボックスに "Secrets Store CSI" と入力し、Secrets Store CSI Driver Operator を見つけます。
- Secrets Store CSI Driver Operator ボタンをクリックします。
- Secrets Store CSI Driver Operator ページで、Install をクリックします。
Install Operator のページで、以下のことを確認してください。
- All namespaces on the cluster (default) が選択されている。
- Installed Namespace が openshift-cluster-csi-drivers に設定されている。
Install をクリックします。
インストールが終了すると、Web コンソールの Installed Operators セクションに GCP Filestore CSI Driver Operator がリストされます。
ドライバーの
ClusterCSIDriver
インスタンス (secrets-store.csi.k8s.io
) を作成します。-
Administration
CustomResourceDefinitions ClusterCSIDriver をクリックします。 Instances タブで Create ClusterCSIDriver をクリックします。
以下の YAML ファイルを使用します。
apiVersion: operator.openshift.io/v1 kind: ClusterCSIDriver metadata: name: secrets-store.csi.k8s.io spec: managementState: Managed
- Create をクリックします。
-
Administration
5.21.4. Secrets Store CSI Driver Operator のアンインストール
前提条件
- OpenShift Container Platform Web コンソールにアクセスできる。
- 管理者としてクラスターにアクセスできる。
手順
Secrets Store CSI Driver Operator をアンインストールするには、以下を実行します。
-
Secrets-store.csi.k8s.io
プロバイダーを使用するすべてのアプリケーション Pod を停止します。 - 選択したシークレットストアのサードパーティープロバイダープラグインをすべて削除します。
Container Storage Interface (CSI) ドライバーと関連するマニフェストを削除します。
-
Administration
CustomResourceDefinitions ClusterCSIDriver をクリックします。 - Instances タブの左端にある secrets-store.csi.k8s.io でドロップダウンメニューをクリックし、Delete ClusterCSIDriver をクリックします。
- プロンプトが表示されたら、Delete をクリックします。
-
Administration
- CSI ドライバー Pod が稼働していないことを確認します。
Secrets Store CSI Driver Operator をアンインストールします。
注記Operator をアンインストールする前に、まず CSI ドライバーを削除する必要があります。
-
Operators
Installed Operators をクリックします。 - Installed Operators ページで、スクロールするか、Search by name ボックスに "Secrets Store CSI" と入力して Operator を見つけ、クリックします。
-
Installed Operators > Operator details ページの右上に表示される Actions
Uninstall Operator をクリックします。 Uninstall Operator ウィンドウでプロンプトが表示されたら、Uninstall ボタンをクリックして namespace から Operator を削除します。Operator によってクラスターにデプロイされたアプリケーションは手動でクリーンアップする必要があります。
アンインストールすると、Secrets Store CSI Driver Operator は Web コンソールの Installed Operators セクションにリストされなくなります。
-
Operators