Menu Close
5.2. 永続ボリュームの暗号化のためのストレージクラスの作成
外部鍵管理システム (KMS) を使用したストレージクラスの暗号化によってプロビジョニングされる永続ボリュームの暗号化はテクノロジープレビュー機能です。永続ボリュームの暗号化は RBD PV の場合にのみ利用できます。
ストレージクラスの暗号化は、RBD PV でのみ利用可能なテクノロジープレビュー機能です。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。
前提条件
-
OpenShift Container Storage クラスターが
Ready
状態にある。 外部の鍵管理システム (KMS) で、以下を実行します。
- トークンのあるポリシーが存在し、Vault のキー値のバックエンドパスが有効にされていることを確認します。「Enabling key value and policy in Vault」を参照してください。
- Vault サーバーで署名済みの証明書を使用していることを確認します。
以下のようにテナントの namespace にシークレットを作成します。
- OpenShift Container Platform Web コンソールで、Workloads → Secrets に移動します。
- Create → Key/value secret をクリックします。
-
Secret Name を
ceph-csi-kms-token
として入力します。 -
Key を
token
として入力します。 - Value を入力します。これは Vault のトークンです。Browse をクリックしてトークンが含まれるファイルを選択し、アップロードするか、またはテキストボックスにトークンを直接入力します。
- Create をクリックします。
トークンは、ceph-csi-kms-token
を使用するすべての暗号化された PVC が削除された後にのみ削除できます。
手順
- Storage → Storage Classes に移動します。
- Create Storage Class をクリックします。
- ストレージクラスの Name および Description を入力します。
- Reclaim Policy について Delete (削除) または Retain (保持) のいずれかを選択します。デフォルトで、Delete (削除) が選択されます。
-
永続ボリュームをプロビジョニングするために使用されるプラグインである RBD Provisioner
openshift-storage.rbd.csi.ceph.com
を選択します。 - ボリュームデータが保存される Storage Pool を選択します。
Enable Encryption チェックボックスを選択します。
- Key Management Service Provider はデフォルトで Vault に設定されます。
- Vault の Service Name、Vault サーバーのホストの Address ('https://<hostname または ip>')、および Port number を入力します。
Advanced Settings を拡張して、証明書の詳細を入力します。
- OpenShift Container Storage 専用かつ特有のキー値のシークレットパスを Backend Path に入力します。
- (オプション) TLS Server Name および Vault Enterprise Namespace を入力します。
- それぞれの PEM でエンコードされた証明書ファイルをアップロードして、CA Certificate、Client Certificate、および Client Private Key を指定します。
- Save をクリックします。
- Connect をクリックします。
- 外部鍵管理サービスの接続の詳細を確認します。情報を変更するには、Change connection details をクリックし、フィールドを編集します。
- Create をクリックします。
Hashicorp Vault 設定により、バックエンドパスによって使用される キー/値 (KV) シークレットエンジン API バージョンの自動検出が許可されない場合は、configmap を編集して
VAULT_BACKEND
パラメーターを追加します。注記VAULT_BACKEND
は、バックエンドパスに関連付けられた KV シークレットエンジン API のバージョンを指定するために configmap に追加されるオプションのパラメーターです。値がバックエンドパスに設定されている KV シークレットエンジン API バージョンと一致していることを確認します。一致しない場合には、永続ボリューム要求(PVC)の作成時に失敗する可能性があります。新規に作成されたストレージクラスによって使用されている encryptionKMSID を特定します。
- OpenShift Web コンソールで、Storage Storage → Storage Classes に移動します。
- Storage class 名 → YAML タブをクリックします。
ストレージクラスによって使用されている encryptionKMSID を取得します。
例:
encryptionKMSID: 1-vault
- OpenShift Web コンソールで Workloads → ConfigMaps に移動します。
- KMS 接続の詳細を表示するには、csi-kms-connection-details をクリックします。
configmap を編集します。
- アクションメニュー (⋮) → Edit ConfigMap をクリックします。
以前に特定した encryptionKMSID に設定されるバックエンドに応じて、
VAULT_BACKEND
パラメーターを追加します。VAULT_BACKEND
パラメーターとして、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": "vault", [...] "VAULT_BACKEND": "kv-v2" }
- 保存 をクリックします。
Red Hat はテクノロジーパートナーと連携して、本書をお客様へのサービスとして提供します。ただし、Red Hat では、Hashicorp 製品のサポートを提供していません。この製品に関するテクニカルサポートについては、Hashicorp にお問い合わせください。