この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

ボリュームセキュリティ

Harvesterは、仮想マシンイメージを暗号化および復号化することを可能にします。暗号化メカニズムは、Linuxカーネルモジュールdm_cryptとコマンドラインユーティリティcryptsetupを利用します。

前提条件

次のリソースを準備してください:

  • 部外者秘:Kubernetesのシークレットは、dm_cryptのパスフレーズとして使用されます。`CRYPTO_KEY_VALUE`フィールドの値を指定する必要があります。その他のフィールドは固定されています。

    create encryption used secret

    シークレットの例:

    apiVersion: v1
    kind: Secret
    metadata:
      name: encryption
      namespace: default
    data:
      CRYPTO_KEY_CIPHER: aes-xts-plain64
      CRYPTO_KEY_HASH: sha256
      CRYPTO_KEY_PROVIDER: secret
      CRYPTO_KEY_SIZE: 256
      CRYPTO_KEY_VALUE: "Your encryption passphrase"
      CRYPTO_PBKDF: argon2i

    この例には、KubernetesシークレットのデフォルトYAMLコードが含まれています。これに加えて、 暗号化オプション(LUKSモード用)を使用することができます。Harvester v1.4.1以降のバージョンはこれらのオプションをサポートしていますが、各ノードがそれらをサポートしていることを確認する必要があります。

    オプション 有効値

    CRYPTO_KEY_CIPHER

    aes-xts-plain、aes-xts-plain64、aes-cbc-plain、aes-cbc-plain64、aes-cbc-essiv:sha256

    CRYPTO_KEY_HASH

    sha256、sha384、sha512

    CRYPTO_KEY_SIZE

    256、384、512

    CRYPTO_PBKDF

    argon2i、argon2id、pbkdf2

    kubectlまたはHarvester UI(*Edit as YAML*機能)を使用して、システムネームスペースにシークレットを作成できます。システムネームスペースのリソースは、Harvester UIの*Secrets*画面に表示されません。

  • ストレージクラス:イメージはLonghornを使用して暗号化されるため、必要なフィールドはLonghorn CSIドライバーに渡す必要があります。ストレージクラスを作成する際に暗号化シークレットを指定できます。詳細については、イメージストレージクラスを参照してください。

    create storage class

    ストレージクラスの例:

    allowVolumeExpansion: true
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: encryption
    parameters:
      csi.storage.k8s.io/node-publish-secret-name: encryption
      csi.storage.k8s.io/node-publish-secret-namespace: default
      csi.storage.k8s.io/node-stage-secret-name: encryption
      csi.storage.k8s.io/node-stage-secret-namespace: default
      csi.storage.k8s.io/provisioner-secret-name: encryption
      csi.storage.k8s.io/provisioner-secret-namespace: default
      encrypted: "true"
      migratable: "true"
      numberOfReplicas: "3"
      staleReplicaTimeout: "2880"
    provisioner: driver.longhorn.io
    reclaimPolicy: Delete
    volumeBindingMode: Immediate

    Harvester UIの*Edit as YAML*機能とkubectlを使用して、システムネームスペースにシークレットを作成できます。システムネームスペースのリソースは、Harvester UIの*Secrets*画面に表示されません。

暗号化されたボリューム

以下のUIの場所で暗号化されたストレージクラスを使用して暗号化ボリュームを作成できます:

  • *ボリューム:作成*画面

    create-empty-volume
  • *ボリューム*タブの*仮想マシン:作成*画面

    create-empty-volume-in-vm

Rancher統合を使用した高度な使用法

シークレットは暗号化されていないBase64エンコードされた文字列です。シークレットを安全に保つために、プロジェクトとネームスペースを使用して権限を分離できます。詳細については、マルチテナンシーを参照してください。

制限

次のアクションを実行することはできません:

  • 暗号化されたボリュームから新しいボリュームをエクスポートする

  • 暗号化されたボリュームを暗号化されていないボリュームに復元する

  • 暗号化されていないボリュームを暗号化されたボリュームに復元する