6.13.5. カスタムで暗号化された永続ボリュームの作成


PersistentVolumeClaim オブジェクトの作成時に、OpenShift Container Platform は新規永続ボリューム (PV) をプロビジョニングし、PersistentVolume オブジェクトを作成します。新規に作成された PV を暗号化することで、Google Cloud Platform (GCP) にカスタム暗号化キーを追加し、クラスター内の PV を保護することができます。

暗号化の場合、作成した新たに割り当てられる PV は、新規または既存の Google Cloud Key Management Service (KMS) キーを使用してクラスターで顧客管理の暗号鍵 (CMEK) を使用します。

前提条件

  • 実行中の OpenShift Container Platform クラスターにログインしている。
  • Cloud KMS キーリングとキーのバージョンを作成している。

CMEK および Cloud KMS リソースの詳細は、顧客管理の暗号鍵 (CMEK) の使用 を参照してください。

手順

カスタムで暗号化された PV を作成するには、以下の手順を実行します。

  1. Cloud KMS キーを使用してストレージクラスを作成します。以下の例では、暗号化されたボリュームの動的プロビジョニングを有効にします。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: csi-gce-pd-cmek
    provisioner: pd.csi.storage.gke.io
    volumeBindingMode: "WaitForFirstConsumer"
    allowVolumeExpansion: true
    parameters:
      type: pd-standard
      disk-encryption-kms-key: projects/<key-project-id>/locations/<location>/keyRings/<key-ring>/cryptoKeys/<key> 
    1
    1
    このフィールドは、新規ディスクの暗号化に使用されるキーのリソース識別子である必要があります。値では、大文字と小文字が区別されます。キー ID の値を指定する方法は、Retrieving a resource’s ID および Getting a Cloud KMS resource ID を参照してください。
    注記

    disk-encryption-kms-key パラメーターは既存のストレージクラスに追加することはできません。ただし、ストレージクラスを削除し、同じ名前および異なるパラメーターセットでこれを再作成できます。これを実行する場合、既存クラスのプロビジョナーは pd.csi.storage.gke.io である必要があります。

  2. oc コマンドを使用して、ストレージクラスを OpenShift Container Platform クラスターにデプロイします。

    $ oc describe storageclass csi-gce-pd-cmek

    出力例

    Name:                  csi-gce-pd-cmek
    IsDefaultClass:        No
    Annotations:           None
    Provisioner:           pd.csi.storage.gke.io
    Parameters:            disk-encryption-kms-key=projects/key-project-id/locations/location/keyRings/ring-name/cryptoKeys/key-name,type=pd-standard
    AllowVolumeExpansion:  true
    MountOptions:          none
    ReclaimPolicy:         Delete
    VolumeBindingMode:     WaitForFirstConsumer
    Events:                none

  3. 直前の手順で作成したストレージクラスオブジェクトの名前に一致する pvc.yaml という名前のファイルを作成します。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: podpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: csi-gce-pd-cmek
      resources:
        requests:
          storage: 6Gi
    注記

    新規ストレージクラスをデフォルトとしてマークした場合は、storageClassName フィールドを省略できます。

  4. PVC をクラスターに適用します。

    $ oc apply -f pvc.yaml
  5. PVC のステータスを取得し、これが作成され、新規にプロビジョニングされた PV にバインドされていることを確認します。

    $ oc get pvc

    出力例

    NAME      STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
    podpvc    Bound     pvc-e36abf50-84f3-11e8-8538-42010a800002   10Gi       RWO            csi-gce-pd-cmek  9s

    注記

    ストレージクラスで volumeBindingMode フィールドが WaitForFirstConsumer に設定されている場合、これを検証する前に PVC を使用するために Pod を作成する必要があります。

CMEK で保護される PV が OpenShift Container Platform クラスターで使用できるようになります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る