2.2. 永続ボリュームの暗号化のためのストレージクラスの作成
以下の手順を使用して、永続ボリュームの暗号化用に外部の鍵管理システム (KMS) を使用して暗号化対応のストレージクラスを作成します。永続ボリュームの暗号化は RBD PV の場合にのみ利用できます。
前提条件
-
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 をクリックします。
-
OpenShift Container Platform Web コンソールで、Workloads
トークンは、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 を展開して、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。
- 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 コンソールで、Storage Storage
-
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" }
- Save をクリックします。
-
アクションメニュー (⋮)
Red Hat はテクノロジーパートナーと連携して、本書をお客様へのサービスとして提供します。ただし、Red Hat では、Hashicorp 製品のサポートを提供していません。この製品に関するテクニカルサポートについては、Hashicorp にお問い合わせください。
次のステップ
- ストレージクラスを使用して、暗号化された永続ボリュームを作成できます。詳細は、Persistent Volume Claim (永続ボリューム要求、PVC) の管理 を参照してください。