5.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 Nameceph-csi-kms-token として入力します。
    • Keytoken として入力します。
    • Value を入力します。これは Vault のトークンです。Browse をクリックしてトークンが含まれるファイルを選択し、アップロードするか、またはテキストボックスにトークンを直接入力します。
    • Create をクリックします。
注記

トークンは、ceph-csi-kms-token を使用するすべての暗号化された PVC が削除された後にのみ削除できます。

手順

  1. StorageStorage Classes に移動します。
  2. Create Storage Class をクリックします。
  3. ストレージクラスの Name および Description を入力します。
  4. Reclaim Policy について Delete (削除) または Retain (保持) のいずれかを選択します。デフォルトで、Delete (削除) が選択されます。
  5. 永続ボリュームをプロビジョニングするために使用されるプラグインである RBD Provisioner openshift-storage.rbd.csi.ceph.com を選択します。
  6. ボリュームデータが保存される Storage Pool をリストから選択するか、新規プールを作成します。
  7. Enable Encryption チェックボックスを選択します。

    1. Key Management Service Provider はデフォルトで Vault に設定されます。
    2. Vault の Service Name、Vault サーバーのホストの Address ('https://<hostname または ip>')、および Port number を入力します。
    3. Advanced Settings を展開して、Vault 設定に基づいて追加の設定および証明書の詳細を入力します。

      1. OpenShift Container Storage 専用かつ特有のキー値のシークレットパスを Backend Path に入力します。
      2. (オプション) TLS Server Name および Vault Enterprise Namespace を入力します。
      3. それぞれの PEM でエンコードされた証明書ファイルをアップロードして、CA CertificateClient Certificate、および Client Private Key を指定します。
      4. Save をクリックします。
    4. Connect をクリックします。
  8. 外部鍵管理サービスの接続の詳細を確認します。情報を変更するには、Change connection details をクリックし、フィールドを編集します。
  9. Create をクリックします。
  10. Hashicorp Vault 設定により、バックエンドパスによって使用される キー/値 (KV) シークレットエンジン API バージョンの自動検出が許可されない場合は、configmap を編集して VAULT_BACKEND パラメーターを追加します。

    注記

    VAULT_BACKEND は、バックエンドパスに関連付けられた KV シークレットエンジン API のバージョンを指定するために configmap に追加されるオプションのパラメーターです。値がバックエンドパスに設定されている KV シークレットエンジン API バージョンと一致していることを確認します。一致しない場合には、永続ボリューム要求 (PVC) の作成時に失敗する可能性があります。

    1. 新規に作成されたストレージクラスによって使用されている encryptionKMSID を特定します。

      1. OpenShift Web コンソールで、Storage Storage → Storage Classes に移動します。
      2. Storage class 名 → YAML タブをクリックします。
      3. ストレージクラスによって使用されている encryptionKMSID を取得します。

        以下に例を示します。

        encryptionKMSID: 1-vault
    2. OpenShift Web コンソールで Workloads → ConfigMaps に移動します。
    3. KMS 接続の詳細を表示するには、csi-kms-connection-details をクリックします。
    4. configmap を編集します。

      1. アクションメニュー (⋮)Edit ConfigMap をクリックします。
      2. 以前に特定した 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"
            }
      3. Save をクリックします。
重要

Red Hat はテクノロジーパートナーと連携して、本書をお客様へのサービスとして提供します。ただし、Red Hat では、Hashicorp 製品のサポートを提供していません。この製品に関するテクニカルサポートについては、Hashicorp にお問い合わせください。

次のステップ