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 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 を拡張して、証明書の詳細を入力します。

      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. 保存 をクリックします。
重要

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