すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ディスクボリュームの暗号化

最終更新日:Sep 16, 2026

ディスク暗号化は、ディスクに書き込まれるデータを自動的に暗号化し、読み取り時に復号します。KMS で管理されるキーを使用すると、独自の鍵管理インフラストラクチャを構築せずに、クラスターのディスクボリュームを暗号化できます。このトピックでは、KMS を使用して StorageClass を構成し、保管中のディスクボリュームを暗号化する方法について説明します。

このトピックでは、StorageClass を介したワークロードデータボリュームの暗号化について説明します。ノードのルートボリュームの暗号化は対象外です。

暗号化の仕組み

Alibaba Cloud のディスクは、KMS によって管理される AES-256 暗号化を使用します。KMS は、エンベロープ暗ho号化を使用して、カスタマーマスターキー (CMK) とデータキー (DK) からなる 2 階層のキー階層を実装します。

  1. データキーの暗号化:KMS は CMK を使用して DK を暗号化します。暗号化された DK は暗号化されたデータとともに保存され、CMK なしでは復号できません。

  2. 暗号化データの保存と読み取り:暗号化されたデータを読み取る際、KMS はリクエストを検証した後に DK を復号します。プレーンテキストの DK はディスク I/O の間だけメモリ上に存在し、ストレージに書き込まれることはありません。

プレーンテキストの CMK が KMS によって管理されるハードウェアセキュリティモジュールから外部に出ることはありません。プレーンテキストの DK はハイパーバイザーのメモリ上にのみ存在し、ディスクに保存されることはありません。

詳細については、「暗号化プロセス」をご参照ください。

暗号化できるデータの種類

暗号化ディスクを作成して Elastic Compute Service (ECS) インスタンスにアタッチすると、次のデータは暗号化され、読み取り時に復号されます。

  • 暗号化ディスクに保存される保管中のデータ。

  • ディスクと ECS インスタンス間の転送中のデータ (インスタンスのオペレーティングシステム内のデータを除く)。

  • ECS インスタンスからバックエンドストレージへの転送中のデータ。

  • 暗号化ディスクから作成されるすべてのスナップショット (同一の暗号化キーを使用)。

  • 暗号化スナップショットから作成されるすべてのディスク。

サポートされているディスクタイプ

次のディスクタイプは暗号化をサポートしています。

ディスクタイプ 暗号化のサポート
Enterprise SSDs (ESSDs) はい
ESSD AutoPL disks はい
ESSD Entry disks はい
Standard SSDs はい
Ultra disks はい
Basic disks はい
Local disks いいえ

制限事項

  • 暗号化はディスク作成時にのみ設定でき、作成後に変更することはできません。マウントおよびアンマウントは暗号化に影響しません。

  • 暗号化されていないディスクを暗号化すること、または暗号化ディスクを非暗号化することはサポートされていません。

ECS から KMS へのアクセス許可

AliyunECSDiskEncryptDefaultRole RAM ロールを設定して、Elastic Compute Service (ECS) に KMS へのアクセスを許可します。

  1. 次の値で RAM ロールを作成します (詳細については、「信頼できる Alibaba Cloud サービス用の RAM ロールを作成」をご参照ください)。

    AliyunECSDiskEncryptDefaultRole ロールがすでに存在する場合は、この手順をスキップします。
    フィールド 値
    [Principal Type] Cloud Service
    [Principal Name] Elastic Compute Service
    [Role Name] AliyunECSDiskEncryptDefaultRole
  2. 次の値で AliyunECSDiskEncryptDefaultRole ロールに権限を付与します (詳細については、「RAM ロールに権限を付与」をご参照ください)。

    重要

    AliyunKMSFullAccess は KMS のフル権限を付与します。最小権限でアクセスする場合は、次の権限を持つカスタムポリシーを使用してください。

    フィールド 値
    [Resource Scope] Account
    [Policy] AliyunKMSFullAccess (KMS のフルアクセス) または AliyunECSDiskEncryptCustomizedPolicy (必要最小限の権限)
    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kms:DescribeKey",
                    "kms:GenerateDataKey",
                    "kms:Decrypt",
                    "kms:TagResource"
                ],
                "Resource": "*"
            }
        ]
    }
  3. [Grant permissions] をクリックします。

操作手順

暗号化は StorageClass レベルで構成します。暗号化が有効な StorageClass を使用する PersistentVolumeClaim (PVC) は、暗号化されたディスクによって提供されます。

前提条件

以下を確認してください。

手順 1:暗号化 StorageClass の作成

  1. 必要に応じてパラメーターを調整し、次の内容で sc-kms.yaml という名前のファイルを作成します。

    パラメーター 説明
    encrypted この StorageClass によって作成されるディスクを暗号化するには、"true" に設定します。
    kmsKeyId ディスク暗号化に使用する KMS キーです。未設定の場合、デフォルトの CMK が適用されます。encrypted が "false" の場合は無視されます。
    type ディスクタイプです。
    fsType ファイルシステムタイプです。
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: csi-disk-encrypted
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
        fsType: ext4
        type: cloud_essd
        encrypted: "true"
        kmsKeyId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    reclaimPolicy: Delete

    上の表は、parameters セクションにある暗号化関連パラメーターを説明しています。

  2. StorageClass を作成します。

    kubectl create -f sc-kms.yaml

手順 2:PVC の作成

  1. 次の内容で sc-pvc.yaml という名前のファイルを作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
      storageClassName: csi-disk-encrypted
  2. PVC を作成します。

    kubectl create -f sc-pvc.yaml
  3. PVC がバインドされていることを確認します。

    kubectl get pvc

    PVC のステータスは Bound である必要があります。VOLUME 列には、プロビジョニングされたディスク ID が表示されます。

    NAME       STATUS    VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS         VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound     d-2ze0nmbv2var0d9h****   20Gi       RWO            csi-disk-encrypted   <unset>                 6m20s

手順 3:ディスク暗号化の確認

  1. ECS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[Storage & Snapshots] > [Block Storage] を選択します。

  3. ECS コンソールにログインします。

  4. [クラウドディスク] タブで、ディスクを見つけ、その ID をクリックします。

  5. [基本情報] タブで、[暗号化/非暗号化] フィールドに [暗号化済み] と表示されていることを確認します。

次のステップ

詳細については、「クラウドディスクの暗号化」をご参照ください。