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

イメージセキュリティ

SUSE Virtualizationを使用すると、仮想マシン画像を暗号化および復号化できます。暗号化メカニズムは、Linuxカーネルモジュールdm_cryptとコマンドラインユーティリティcryptsetupを利用します。

この機能は、Longhorn V1 Data Engineのみをサポートしています。他のストレージソリューションに保存されている画像を暗号化および復号化することはできません。

前提条件

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

  • サポートされている方法のいずれかを使用して、ソース仮想マシンimage: You can イメージをアップロードまたは作成します。

    暗号化されたイメージをアップロードしないでください。

  • 部外者秘: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モードの暗号化オプションを使用することもできます。これはcryptsetupの動作モードです。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とSUSE Virtualization UIを使用してシステムネームスペースにシークレットを作成できます(*Edit as YAML*機能)。システムネームスペースのリソースは、*Secrets*画面に表示されません。

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

    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

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

仮想マシン画像を暗号化する

  1. SUSE Virtualization UIで、*Images*に移動します。

  2. 作成]をクリックします。

  3. ネームスペースと名前を指定します。

  4. *Basics*タブで、*Encrypt*を選択し、ソース画像を選択します。

    create encrypted image
  5. *Storage*タブで、暗号化関連のフィールドを含むストレージクラスを選択します。

    SUSE Virtualizationは、必要なフィールドをLonghornに渡します。

    select encryption storage class
  6. 作成]をクリックします。

仮想マシン画像を復号化する

  1. SUSE Virtualization UIで、*Images*に移動します。

  2. 作成]をクリックします。

  3. ネームスペースと名前を指定します。

  4. *Basics*タブで、*Decrypt*を選択し、ソース画像を選択します。

    create decrypted image
  5. *Storage*タブで、*harvester-longhorn (Default)*または他の一般的に使用されるストレージクラスを選択します。

    SUSE Virtualizationは、復号化したいソース画像のストレージクラスを使用します。

    select normal storage class
  6. 作成]をクリックします。

暗号化されたボリュームを持つ画像を使用する

仮想マシンを作成する際に使用したい画像を選択する必要があります。

create

*仮想マシン*画面は、仮想マシンによって使用されるボリュームが暗号化されている場合に、次のアイコンとメッセージを表示します。

case1
case2

どのボリュームが暗号化されているかを確認するには、*ボリューム*タブを*仮想マシン*の詳細画面で確認してください。

volume detail

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

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

制限

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

  • 暗号化された画像から新しい画像をエクスポートする

  • 暗号化された画像をダウンロードする

  • 暗号化された画像をアップロードする