Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Kerberos 전송 중 암호화

Kerberos 전송 중 암호화를 사용하면 관리형 클러스터와 스토리지 백엔드 간의 트래픽에 대한 암호화를 활성화하여 데이터 액세스 보안을 개선할 수 있습니다.

Trident는 스토리지 백엔드로 ONTAP에 대한 Kerberos 암호화를 지원합니다.

  • 온프레미스 ONTAP - Trident는 Red Hat OpenShift 및 업스트림 Kubernetes 클러스터에서 온프레미스 ONTAP 볼륨으로의 NFSv3 및 NFSv4 연결을 통해 Kerberos 암호화를 지원합니다.

NFS 암호화를 사용하는 볼륨을 생성, 삭제, 크기 조정, 스냅샷, 클론 복제, 읽기 전용 클론 복제 및 가져오기를 수행할 수 있습니다.

온프레미스 ONTAP 볼륨을 사용하여 전송 중 Kerberos 암호화 구성

관리형 클러스터와 온프레미스 ONTAP 스토리지 백엔드 간의 스토리지 트래픽에 Kerberos 암호화를 활성화할 수 있습니다.

참고 온프레미스 ONTAP 스토리지 백엔드를 사용하는 NFS 트래픽에 대한 Kerberos 암호화는 ontap-nas 스토리지 드라이버를 통해서만 지원됩니다.
시작하기 전에
  • tridentctl 유틸리티에 액세스할 수 있는지 확인하십시오.

  • ONTAP 스토리지 백엔드에 대한 관리자 액세스 권한이 있는지 확인하십시오.

  • ONTAP 스토리지 백엔드에서 공유할 볼륨의 이름을 알고 있는지 확인하십시오.

  • NFS 볼륨에 대한 Kerberos 암호화를 지원하도록 ONTAP 스토리지 VM을 준비했는지 확인하십시오. 지침은 "dataLIF에서 Kerberos를 활성화합니다"을 참조하십시오.

  • Kerberos 암호화와 함께 사용하는 모든 NFSv4 볼륨이 올바르게 구성되었는지 확인하십시오. "NetApp NFSv4 향상 기능 및 모범 사례 가이드"의 NetApp NFSv4 도메인 구성 섹션(13페이지)을 참조하십시오.

ONTAP 내보내기 정책을 추가 또는 수정합니다

기존 ONTAP 내보내기 정책에 규칙을 추가하거나 ONTAP 스토리지 VM 루트 볼륨과 업스트림 Kubernetes 클러스터와 공유되는 모든 ONTAP 볼륨에 대해 Kerberos 암호화를 지원하는 새 내보내기 정책을 생성해야 합니다. 추가하는 내보내기 정책 규칙 또는 새로 생성하는 내보내기 정책은 다음 액세스 프로토콜 및 액세스 권한을 지원해야 합니다.

액세스 프로토콜

NFS, NFSv3 및 NFSv4 액세스 프로토콜을 사용하여 엑스포트 정책을 구성합니다.

액세스 세부 정보

볼륨에 대한 요구 사항에 따라 세 가지 버전의 Kerberos 암호화 중 하나를 구성할 수 있습니다.

  • Kerberos 5 - (인증 및 암호화)

  • Kerberos 5i - (ID 보호 기능을 갖춘 인증 및 암호화)

  • Kerberos 5p - (신원 및 개인정보 보호를 통한 인증 및 암호화)

적절한 액세스 권한으로 ONTAP 엑스포트 정책 규칙을 구성합니다. 예를 들어, 클러스터가 Kerberos 5i와 Kerberos 5p 암호화를 혼합하여 NFS 볼륨을 마운트하는 경우 다음 액세스 설정을 사용하십시오.

유형 읽기 전용 액세스 읽기/쓰기 액세스 슈퍼유저 액세스

UNIX

활성화됨

활성화됨

활성화됨

Kerberos 5i

활성화됨

활성화됨

활성화됨

Kerberos 5p

활성화됨

활성화됨

활성화됨

ONTAP 내보내기 정책 및 내보내기 정책 규칙을 생성하는 방법은 다음 문서를 참조하십시오.

스토리지 백엔드를 생성합니다

Kerberos 암호화 기능을 포함하는 Trident 스토리지 백엔드 구성을 생성할 수 있습니다.

이 작업 정보

Kerberos 암호화를 구성하는 스토리지 백엔드 구성 파일을 생성할 때 spec.nfsMountOptions 매개변수를 사용하여 세 가지 Kerberos 암호화 버전 중 하나를 지정할 수 있습니다.

  • spec.nfsMountOptions: sec=krb5 (인증 및 암호화)

  • spec.nfsMountOptions: sec=krb5i (ID 보호 기능이 있는 인증 및 암호화)

  • spec.nfsMountOptions: sec=krb5p (ID 및 개인 정보 보호를 통한 인증 및 암호화)

Kerberos 수준을 하나만 지정하십시오. 매개 변수 목록에 두 개 이상의 Kerberos 암호화 수준을 지정하면 첫 번째 옵션만 사용됩니다.

단계
  1. 관리형 클러스터에서 다음 예제를 사용하여 스토리지 백엔드 구성 파일을 생성합니다. 괄호 <> 안의 값을 사용자 환경의 정보로 바꾸십시오.

    apiVersion: v1
    kind: Secret
    metadata:
      name: backend-ontap-nas-secret
    type: Opaque
    stringData:
      clientID: <CLIENT_ID>
      clientSecret: <CLIENT_SECRET>
    ---
    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: backend-ontap-nas
    spec:
      version: 1
      storageDriverName: "ontap-nas"
      managementLIF: <STORAGE_VM_MGMT_LIF_IP_ADDRESS>
      dataLIF: <PROTOCOL_LIF_FQDN_OR_IP_ADDRESS>
      svm: <STORAGE_VM_NAME>
      username: <STORAGE_VM_USERNAME_CREDENTIAL>
      password: <STORAGE_VM_PASSWORD_CREDENTIAL>
      nasType: nfs
      nfsMountOptions: ["sec=krb5i"] #can be krb5, krb5i, or krb5p
      qtreesPerFlexvol:
      credentials:
        name: backend-ontap-nas-secret
  2. 이전 단계에서 생성한 구성 파일을 사용하여 백엔드를 생성하십시오.

    tridentctl create backend -f <backend-configuration-file>

    백엔드 생성에 실패하면 백엔드 구성에 문제가 있는 것입니다. 다음 명령을 실행하여 로그를 확인하고 원인을 파악할 수 있습니다.

    tridentctl logs

    구성 파일의 문제를 식별하고 수정한 후 create 명령을 다시 실행할 수 있습니다.

스토리지 클래스를 생성합니다

Kerberos 암호화를 사용하여 볼륨을 프로비저닝하는 스토리지 클래스를 생성할 수 있습니다.

이 작업 정보

스토리지 클래스 객체를 생성할 때 mountOptions 매개변수를 사용하여 세 가지 Kerberos 암호화 버전 중 하나를 지정할 수 있습니다.

  • mountOptions: sec=krb5 (인증 및 암호화)

  • mountOptions: sec=krb5i (ID 보호를 통한 인증 및 암호화)

  • mountOptions: sec=krb5p (ID 및 개인 정보 보호를 통한 인증 및 암호화)

Kerberos 수준을 하나만 지정하십시오. 매개변수 목록에 두 개 이상의 Kerberos 암호화 수준을 지정하면 첫 번째 옵션만 사용됩니다. 스토리지 백엔드 구성에서 지정한 암호화 수준이 스토리지 클래스 객체에서 지정한 수준과 다른 경우 스토리지 클래스 객체가 우선합니다.

단계
  1. 다음 예제를 사용하여 StorageClass Kubernetes 객체를 생성합니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ontap-nas-sc
    provisioner: csi.trident.netapp.io
    mountOptions:
      - sec=krb5i #can be krb5, krb5i, or krb5p
    parameters:
      backendType: ontap-nas
      storagePools: ontapnas_pool
      trident.netapp.io/nasType: nfs
    allowVolumeExpansion: true
  2. 스토리지 클래스를 생성합니다.

    kubectl create -f sample-input/storage-class-ontap-nas-sc.yaml
  3. 스토리지 클래스가 생성되었는지 확인하십시오.

    kubectl get sc ontap-nas-sc

    다음과 유사한 출력이 표시됩니다.

    NAME         PROVISIONER             AGE
    ontap-nas-sc    csi.trident.netapp.io   15h

볼륨 프로비저닝

스토리지 백엔드와 스토리지 클래스를 생성한 후에는 볼륨을 프로비저닝할 수 있습니다. 자세한 내용은 "볼륨 프로비저닝"를 참조하십시오.

Azure NetApp Files 볼륨에서 전송 중 Kerberos 암호화 구성

관리형 클러스터와 단일 Azure NetApp Files 스토리지 백엔드 또는 Azure NetApp Files 스토리지 백엔드의 가상 풀 간의 스토리지 트래픽에 대해 Kerberos 암호화를 활성화할 수 있습니다.

시작하기 전에
  • 관리형 Red Hat OpenShift 클러스터에서 Trident가 활성화되어 있는지 확인하십시오.

  • tridentctl 유틸리티에 액세스할 수 있는지 확인하십시오.

  • 요구 사항을 확인하고 "Azure NetApp Files 설명서"의 지침에 따라 Kerberos 암호화를 위한 Azure NetApp Files 스토리지 백엔드를 준비했는지 확인하십시오.

  • Kerberos 암호화와 함께 사용하는 모든 NFSv4 볼륨이 올바르게 구성되었는지 확인하십시오. "NetApp NFSv4 향상 기능 및 모범 사례 가이드"의 NetApp NFSv4 도메인 구성 섹션(13페이지)을 참조하십시오.

스토리지 백엔드를 생성합니다

Kerberos 암호화 기능을 포함하는 Azure NetApp Files 스토리지 백엔드 구성을 만들 수 있습니다.

이 작업 정보

Kerberos 암호화를 구성하는 스토리지 백엔드 구성 파일을 생성할 때 다음 두 가지 수준 중 하나에 적용되도록 정의할 수 있습니다.

  • spec.kerberos 필드를 사용하는 스토리지 백엔드 레벨

  • spec.storage.kerberos 필드를 사용한 가상 풀 레벨

가상 풀 수준에서 구성을 정의할 때 스토리지 클래스의 레이블을 사용하여 풀이 선택됩니다.

어느 수준에서든 세 가지 버전의 Kerberos 암호화 중 하나를 지정할 수 있습니다.

  • kerberos: sec=krb5 (인증 및 암호화)

  • kerberos: sec=krb5i (ID 보호를 통한 인증 및 암호화)

  • kerberos: sec=krb5p (ID 및 개인 정보 보호를 통한 인증 및 암호화)

단계
  1. 관리형 클러스터에서 스토리지 백엔드를 정의해야 하는 위치(스토리지 백엔드 수준 또는 가상 풀 수준)에 따라 다음 예제 중 하나를 사용하여 스토리지 백엔드 구성 파일을 생성합니다. 괄호 <> 안의 값은 사용자 환경에 맞는 정보로 바꾸십시오.

    스토리지 백엔드 수준 예
    apiVersion: v1
    kind: Secret
    metadata:
      name: backend-tbc-secret
    type: Opaque
    stringData:
      clientID: <CLIENT_ID>
      clientSecret: <CLIENT_SECRET>
    
    ---
    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: backend-tbc
    spec:
      version: 1
      storageDriverName: azure-netapp-files
      subscriptionID: <SUBSCRIPTION_ID>
      tenantID: <TENANT_ID>
      location: <AZURE_REGION_LOCATION>
      serviceLevel: Standard
      networkFeatures: Standard
      capacityPools: <CAPACITY_POOL>
      resourceGroups: <RESOURCE_GROUP>
      netappAccounts: <NETAPP_ACCOUNT>
      virtualNetwork: <VIRTUAL_NETWORK>
      subnet: <SUBNET>
      nasType: nfs
      kerberos: sec=krb5i #can be krb5, krb5i, or krb5p
      credentials:
        name: backend-tbc-secret
    가상 풀 수준 예
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: backend-tbc-secret
    type: Opaque
    stringData:
      clientID: <CLIENT_ID>
      clientSecret: <CLIENT_SECRET>
    
    ---
    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: backend-tbc
    spec:
      version: 1
      storageDriverName: azure-netapp-files
      subscriptionID: <SUBSCRIPTION_ID>
      tenantID: <TENANT_ID>
      location: <AZURE_REGION_LOCATION>
      serviceLevel: Standard
      networkFeatures: Standard
      capacityPools: <CAPACITY_POOL>
      resourceGroups: <RESOURCE_GROUP>
      netappAccounts: <NETAPP_ACCOUNT>
      virtualNetwork: <VIRTUAL_NETWORK>
      subnet: <SUBNET>
      nasType: nfs
      storage:
        - labels:
            type: encryption
          kerberos: sec=krb5i #can be krb5, krb5i, or krb5p
      credentials:
        name: backend-tbc-secret
  2. 이전 단계에서 생성한 구성 파일을 사용하여 백엔드를 생성하십시오.

    tridentctl create backend -f <backend-configuration-file>

    백엔드 생성에 실패하면 백엔드 구성에 문제가 있는 것입니다. 다음 명령을 실행하여 로그를 확인하고 원인을 파악할 수 있습니다.

    tridentctl logs

    구성 파일의 문제를 식별하고 수정한 후 create 명령을 다시 실행할 수 있습니다.

스토리지 클래스를 생성합니다

Kerberos 암호화를 사용하여 볼륨을 프로비저닝하는 스토리지 클래스를 생성할 수 있습니다.

단계
  1. 다음 예제를 사용하여 StorageClass Kubernetes 객체를 생성합니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: sc-nfs
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: azure-netapp-files
      trident.netapp.io/nasType: nfs
      selector: type=encryption
  2. 스토리지 클래스를 생성합니다.

    kubectl create -f sample-input/storage-class-sc-nfs.yaml
  3. 스토리지 클래스가 생성되었는지 확인하십시오.

    kubectl get sc -sc-nfs

    다음과 유사한 출력이 표시됩니다.

    NAME         PROVISIONER             AGE
    sc-nfs       csi.trident.netapp.io   15h

볼륨 프로비저닝

스토리지 백엔드와 스토리지 클래스를 생성한 후에는 볼륨을 프로비저닝할 수 있습니다. 자세한 내용은 "볼륨 프로비저닝"를 참조하십시오.