5.2.3. PV 暗号化のストレージクラスを作成する手順
vaulttokens
または vaulttenantsa
のいずれかに必要な前提条件を実行した後に、以下の手順を実行し、暗号化を有効にして storageclass を作成します。
-
Storage
StorageClasses に移動します。 - Create Storage Class をクリックします。
- ストレージクラスの Name および Description を入力します。
- Reclaim Policy について Delete または Retain のいずれかを選択します。デフォルトでは、Delete が選択されます。
- Immediate または WaitForFirstConsumer を Volume binding モード として選択します。WaitForConsumer はデフォルトオプションとして設定されます。
-
永続ボリュームをプロビジョニングするために使用されるプラグインである RBD Provisioner
openshift-storage.rbd.csi.ceph.com
を選択します。 - ボリュームデータが保存される Storage Pool をリストから選択するか、新規プールを作成します。
Enable encryption チェックボックスを選択します。KMS 接続の詳細を設定するオプションは 2 つあります。
-
既存の KMS 接続の選択: ドロップダウンリストから既存の KMS 接続を選択します。この一覧は、
csi-kms-connection-details
ConfigMap で利用可能な接続の詳細から設定されます。 新しい KMS 接続の作成: これは、
vaulttokens
にのみ適用されます。- Key Management Service Provider はデフォルトで Vault に設定されます。
-
Vault サーバーの一意の Vault Service Name、ホスト Address (
https://<hostname or ip>
)、および Port 番号を入力します。 Advanced Settings を展開して、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。
- OpenShift Data Foundation 専用で固有のキーバリューシークレットパスを Backend Path に入力します。
- オプション: TLS Server Name および Vault Enterprise Namespace を入力します。
- それぞれの PEM でエンコードされた証明書ファイルをアップロードして、CA Certificate、Client Certificate、および Client Private Key を指定します。
- 保存 をクリックします。
- Save をクリックします。
-
既存の KMS 接続の選択: ドロップダウンリストから既存の KMS 接続を選択します。この一覧は、
- Create をクリックします。
HashiCorp Vault 設定により、バックエンドパスによって使用されるキー/値 (KV) シークレットエンジン API バージョンの自動検出が許可されない場合は、ConfigMap を編集して
VAULT_BACKEND
パラメーターまたはvaultBackend
パラメーターを追加します。注記VAULT_BACKEND
またはvaultBackend
は、バックエンドパスに関連付けられた KV シークレットエンジン API のバージョンを指定するために configmap に追加されるオプションのパラメーターです。値がバックエンドパスに設定されている KV シークレットエンジン API バージョンと一致していることを確認します。一致しない場合には、永続ボリューム要求 (PVC) の作成時に失敗する可能性があります。新規に作成されたストレージクラスによって使用されている encryptionKMSID を特定します。
-
OpenShift Web コンソールで、Storage
Storage Classes に移動します。 -
Storage class 名
YAML タブをクリックします。 ストレージクラスによって使用されている encryptionKMSID を取得します。
以下に例を示します。
encryptionKMSID: 1-vault
-
OpenShift Web コンソールで、Storage
-
OpenShift Web コンソールで Workloads
ConfigMaps に移動します。 - KMS 接続の詳細を表示するには、csi-kms-connection-details をクリックします。
ConfigMap を編集します。
-
アクションメニュー (⋮)
Edit ConfigMap をクリックします。 以前に特定した encryptionKMSID に設定されるバックエンドに応じて、
VAULT_BACKEND
パラメーターまたはvaultBackend
パラメーターを追加します。KV シークレットエンジン API バージョン 1 の場合は kv を、KV シークレットエンジン API バージョン 2 の場合は
kv-v2
を、それぞれ割り当てることができます。以下に例を示します。
kind: ConfigMap apiVersion: v1 metadata: name: csi-kms-connection-details [...] data: 1-vault: |- { "KMS_PROVIDER": "vaulttokens", "KMS_SERVICE_NAME": "1-vault", [...] "VAULT_BACKEND": "kv-v2" } 2-vault: |- { "encryptionKMSType": "vaulttenantsa", [...] "vaultBackend": "kv-v2" }
- 保存をクリックします。
-
アクションメニュー (⋮)
次のステップ
ストレージクラスを使用して、暗号化された永続ボリュームを作成できます。詳細は、managing persistent volume claims を参照してください。
重要Red Hat はテクノロジーパートナーと連携して、本書をお客様へのサービスとして提供します。ただし、Red Hat では、HashiCorp 製品のサポートを提供していません。この製品に関するテクニカルサポートについては、HashiCorp にお問い合わせください。
5.2.3.1. テナント ConfigMap を使用した Vault 接続の詳細の上書き
Vault 接続の詳細は、openshift-storage
namespace の csi-kms-connection-details
ConfigMap で設定された値とは異なる設定オプションを使用して、OpenShift namespace に ConfigMap を作成することにより、テナントごとに再設定できます。ConfigMap はテナント namespace に配置する必要があります。テナント namespace の ConfigMap の値は、その namespace で作成される暗号化された永続ボリュームの csi-kms-connection-details
ConfigMap に設定された値を上書きします。
手順
- テナント namespace にあることを確認します。
-
Workloads
ConfigMaps をクリックします。 - Create ConfigMap をクリックします。
yaml ファイルの例を以下に示します。指定のテナント namespace について過剰に使用される値は、以下に示すように
data
セクションで指定できます。--- apiVersion: v1 kind: ConfigMap metadata: name: ceph-csi-kms-config data: vaultAddress: "<vault_address:port>" vaultBackendPath: "<backend_path>" vaultTLSServerName: "<vault_tls_server_name>" vaultNamespace: "<vault_namespace>"
- yaml を編集したら、Create をクリックします。