2.2.3. PV 암호화용 스토리지 클래스 생성 절차

vaulttokens 또는 vaulttenantsa 에 필요한 사전 요구 사항을 수행한 후 아래 단계를 수행하여 암호화가 활성화된 스토리지 클래스를 생성합니다.

  1. 스토리지StorageClasses 로 이동합니다.
  2. Create Storage Class 를 클릭합니다.
  3. 스토리지 클래스 이름설명을 입력합니다.
  4. Reclaim Policy (폐기 정책)에 대해 Delete 또는 Retain 을 선택합니다. 기본적으로 삭제 가 선택됩니다.
  5. 볼륨 바인딩 모드Immediate 또는 WaitForFirstConsumer 를 선택합니다. WaitForConsumer 가 기본 옵션으로 설정됩니다.
  6. 영구 볼륨을 프로비저닝하는 데 사용되는 플러그인인 RBD Provisioner openshift-storage.rbd.csi.ceph.com 을 선택합니다.
  7. 목록에서 볼륨 데이터가 저장된 스토리지 풀을 선택하거나 새 풀을 생성합니다.
  8. 암호화 활성화 확인란을 선택합니다. KMS 연결 세부 정보를 설정하는 데 사용할 수 있는 두 가지 옵션이 있습니다.

    • 기존 KMS 연결을 선택합니다. 드롭다운 목록에서 기존 KMS 연결을 선택합니다. 목록은 csi-kms-connection-details ConfigMap에서 사용 가능한 연결 세부 정보에서 채워집니다.
    • 새 KMS 연결 생성: vaulttoken에만 적용됩니다.

      1. Key Management Service Provider 는 기본적으로 Vault로 설정됩니다.
      2. 고유한 Vault 서비스 이름, Vault 서버의 호스트 주소 (https://<hostname 또는 ip>) 및 포트 번호를 입력합니다.
      3. 고급 설정을 확장하여 Vault 구성에 따라 추가 설정 및 인증서 세부 정보를 입력합니다.

        1. OpenShift Data Foundation 전용 및 고유한 백엔드 경로에 키 값 시크릿 경로를 입력합니다.
        2. 선택 사항TLS 서버 이름 및 Vault 엔터프라이즈 네임스페이스를 입력합니다.
        3. 각 PEM 인코딩 인증서 파일을 업로드하여 CA 인증서클라이언트 인증서 및 클라이언트 개인 키를 제공합니다.
        4. 저장을 클릭합니다.
      4. 저장을 클릭합니다.
  9. 생성을 클릭합니다.
  10. HashiCorp Vault 설정에서 백엔드 경로에서 사용하는 KV(Key/Value) 보안 엔진 API 버전의 자동 탐지를 허용하지 않는 경우 ConfigMap을 편집하여 VAULT_BACKEND 또는 vaultBackend 매개변수를 추가합니다.

    참고

    VAULT_BACKEND 또는 vaultBackend 는 백엔드 경로와 연결된 KV 시크릿 엔진 API 버전을 지정하기 위해 configmap에 추가된 선택적 매개변수입니다. 값이 백엔드 경로에 설정된 KV 시크릿 엔진 API 버전과 일치하는지 확인합니다. 그러지 않으면 PVC(영구 볼륨 클레임) 생성 중에 실패할 수 있습니다.

    1. 새로 생성된 스토리지 클래스에서 사용하는 암호화KMSID를 식별합니다.

      1. OpenShift 웹 콘솔에서 스토리지 → 스토리지 클래스로 이동합니다.
      2. 스토리지 클래스 이름 → YAML 탭을 클릭합니다.
      3. 스토리지 클래스에서 사용하는 encryptionKMSID 를 캡처합니다.

        예제:

        encryptionKMSID: 1-vault
    2. OpenShift 웹 콘솔에서 워크로드ConfigMaps 로 이동합니다.
    3. KMS 연결 세부 정보를 보려면 csi-kms-connection-details 를 클릭합니다.
    4. ConfigMap을 편집합니다.

      1. Action 메뉴 (journal) → Edit ConfigMap 을 클릭합니다.
      2. 이전에 식별된 암호화KMSID에 대해 구성된 백엔드에 따라 VAULT_BACKEND 또는 vaultBackend 매개변수를 추가합니다.

        KV 시크릿 엔진 API에 kv, 버전 1 및 kv-v2 를 KV 시크릿 엔진 API 버전 2에 할당할 수 있습니다.

        예제:

         kind: ConfigMap
         apiVersion: v1
         metadata:
           name: csi-kms-connection-details
         [...]
         data:
           1-vault: |-
             {
               "KMS_PROVIDER": "vaulttokens",
               "KMS_SERVICE_NAME": "1-vault",
               [...]
               "VAULT_BACKEND": "kv-v2"
             }
           2-vault: |-
             {
               "encryptionKMSType": "vaulttenantsa",
               [...]
               "vaultBackend": "kv-v2"
             }
      3. 저장을 클릭합니다.

다음 단계

  • 스토리지 클래스는 암호화된 영구 볼륨을 생성하는 데 사용할 수 있습니다. 자세한 내용은 영구 볼륨 클레임 관리를 참조하십시오.

    중요

    Red Hat은 기술 파트너와 협력하여 이 문서를 고객에게 서비스로 제공합니다. 그러나 Red Hat은 HashiCorp 제품을 지원하지 않습니다. 이 제품에 대한 기술 지원의 경우 HashiCorp 에 문의하십시오.

2.2.3.1. 테넌트 ConfigMap을 사용하여 Vault 연결 세부 정보 덮어쓰기

openshift-storage 네임스페이스의 csi-kms-connection-details ConfigMap에 설정된 값과 다른 구성 옵션을 사용하여 Openshift 네임스페이스에 ConfigMap을 생성하여 Vault 연결 세부 정보를 재구성할 수 있습니다. ConfigMap은 테넌트 네임스페이스에 있어야 합니다. 테넌트 네임스페이스의 ConfigMap 값은 해당 네임스페이스에서 생성된 암호화된 영구 볼륨에 대한 csi-kms-connection-details ConfigMap에 설정된 값을 재정의합니다.

절차

  1. 테넌트 네임스페이스에 있는지 확인합니다.
  2. 워크로드 → ConfigMap을 클릭합니다.
  3. Create ConfigMap 을 클릭합니다.
  4. 다음은 샘플 yaml입니다. 지정된 테넌트 네임스페이스에 대한 초과된 값은 다음과 같이 data 섹션에서 지정할 수 있습니다.

    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ceph-csi-kms-config
    data:
      vaultAddress: "<vault_address:port>"
      vaultBackendPath: "<backend_path>"
      vaultTLSServerName: "<vault_tls_server_name>"
      vaultNamespace: "<vault_namespace>"
  5. yaml을 편집한 후 Create 를 클릭합니다.