ディスク暗号化機能を有効にすると、ディスクに送信されるデータは自動的に暗号化され、読み取られるときに復号されます。ディスク暗号化は、高いセキュリティが必要なシナリオやコンプライアンス要件があるシナリオに適しています。キー管理インフラストラクチャを作成および維持する必要なく、データのプライバシーと自律性を保護できます。このトピックでは、Key Management Service (KMS) でホストされているキーを使用して、ディスクボリュームに格納されているデータを暗号化する方法について説明します。
機能の説明
ディスクボリューム暗号化の仕組み
暗号化できるデータ型
前提条件
Container Storage Interface (CSI) プラグインがクラスターにインストールされていること。
説明クラスター管理ページの左側のナビゲーションウィンドウで、csi-plugin と csi-provisioner の更新」をご参照ください。
を選択します。[ストレージ] タブで、csi-plugin と csi-provisioner がインストールされているかどうかを確認できます。特定の機能を使用するために CSI プラグインを更新する方法の詳細については、「クラスターで FlexVolume を使用している場合は、FlexVolume は使用できなくなったため、クラスターを CSI プラグインに移行する必要があります。詳細については、「FlexVolume から CSI へのアップグレード」をご参照ください。
使用上の注意
Enterprise SSD (ESSD)、ESSD AutoPL ディスク、ESSD Entry ディスク、標準 SSD、Ultra ディスク、および基本ディスクを暗号化できます。
ローカルディスクは暗号化できません。
暗号化されていないディスクを暗号化されたディスクに直接変換したり、暗号化されたディスクを暗号化されていないディスクに直接変換したりすることはできません。
ECS に KMS へのアクセスを承認する
KMS を使用してディスクを暗号化する場合は、最初に ECS に KMS へのアクセスを承認する必要があります。
KMS にアクセスするために使用する Resource Access Management (RAM) ユーザーを作成します。詳細については、「信頼できる Alibaba Cloud サービスの RAM ロールの作成」をご参照ください。
説明AliyunECSDiskEncryptDefaultRole ロールが既に存在する場合は、この手順をスキップできます。
次のパラメーターをメモしておきます。
[プリンシパルタイプ] を [クラウドサービス] に設定します。
[プリンシパル名] を [elastic Compute Service] に設定します。
[ロール名] を AliyunECSDiskEncryptDefaultRole に設定します。
AliyunECSDiskEncryptDefaultRole ロールに権限を付与します。詳細については、「RAM ロールへの権限の付与」をご参照ください。
次のパラメーターをメモしておきます。
[リソーススコープ] を [アカウント] に設定します。
[ポリシー] セクションで、AliyunKMSFullAccess システムポリシーまたは AliyunECSDiskEncryptCustomizedPolicy カスタムポリシーを選択します。
重要AliyunKMSFullAccess システムポリシーは、フルパーミッションを提供します。よりきめ細かいアクセス制御が必要な場合は、「カスタムポリシーの作成」をご参照ください。
ディスクボリュームの暗号化
ディスク暗号化は、ディスクの作成時にのみ有効にできます。ディスクのマウントまたはマウント解除時には、暗号化関連の操作は含まれません。
ディスク暗号化を有効にする StorageClass を作成します。
ビジネス要件に基づいて次の YAML テンプレートを変更し、変更したテンプレートを sc-kms.yaml という名前のファイルにコピーします。
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 # KMSキーID reclaimPolicy: Delete # 削除ポリシー
parameters
セクションの次のパラメーターに注意してください。encrypted
: StorageClass を使用して作成されたディスクのディスク暗号化を有効にするかどうかを指定します。StorageClass を使用して暗号化されたディスクを作成する場合は、値をtrue
に設定します。kmsKeyId
: StorageClass を使用して作成されたディスクの暗号化に使用する KMS キーを指定します。このパラメーターを設定しない場合は、デフォルトの CMK が使用されます。encrypted
をfalse
に設定した場合、このパラメーターは有効になりません。
StorageClass を作成します。
kubectl create -f sc-kms.yaml
永続ボリューム要求 (PVC) を作成します。
sc-pvc.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: disk-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: csi-disk-encrypted
PVC を作成します。
kubectl create -f sc-pvc.yaml
PVC を確認します。
kubectl get pvc
次の出力は、PVC が作成され、システムによって自動的に作成された永続ボリューム (PV) にバインドされていることを示しています。
VOLUME
列にディスク ID が表示されます。NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-2ze0nmbv2var0d9h**** 20Gi RWO csi-disk-encrypted <unset> 6m20s
ディスクが暗号化されているかどうかを確認します。
ECS コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
[クラウドディスク] タブで、作成されたディスクを見つけ、その ID をクリックします。
ディスク詳細ページの [基本情報] タブで、[暗号化/非暗号化] フィールドに [暗号化] と表示されているかどうかを確認します。
関連情報
ディスク暗号化の詳細については、「クラウドディスクの暗号化」をご参照ください。