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

Kerberos 비행 중 암호화

기여자 netapp-aruldeepa

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 도메인 구성 섹션(13페이지)을 참조하세요. "NetApp NFSv4 개선 사항 및 모범 사례 가이드" .

ONTAP 내보내기 정책 추가 또는 수정

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

접근 프로토콜

NFS, NFSv3, NFSv4 액세스 프로토콜을 사용하여 내보내기 정책을 구성합니다.

접근 세부 정보

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

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

  • Kerberos 5i - (신원 보호 기능이 있는 인증 및 암호화)

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

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

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

유닉스

활성화됨

활성화됨

활성화됨

케르베로스 5i

활성화됨

활성화됨

활성화됨

케르베로스 5p

활성화됨

활성화됨

활성화됨

ONTAP 내보내기 정책과 내보내기 정책 규칙을 만드는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

스토리지 백엔드 생성

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

이 작업에 관하여

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

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

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

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

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 암호화를 사용하여 볼륨을 프로비저닝하기 위해 스토리지 클래스를 생성할 수 있습니다.

이 작업에 관하여

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

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

  • mountOptions: sec=krb5i(신원 보호 기능이 있는 인증 및 암호화)

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

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 공익사업.

  • 요구 사항을 확인하고 다음 지침을 따르면 Kerberos 암호화를 위한 Azure NetApp Files 저장소 백엔드가 준비되었는지 확인할 수 있습니다. "Azure NetApp Files 설명서" .

  • Kerberos 암호화와 함께 사용하는 모든 NFSv4 볼륨이 올바르게 구성되었는지 확인하세요. NetApp NFSv4 도메인 구성 섹션(13페이지)을 참조하세요. "NetApp NFSv4 개선 사항 및 모범 사례 가이드" .

스토리지 백엔드 생성

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

이 작업에 관하여

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

  • *저장소 백엔드 수준*을 사용합니다. spec.kerberos 필드

  • *가상 풀 레벨*을 사용하여 spec.storage.kerberos 필드

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

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

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

  • kerberos: sec=krb5i(신원 보호 기능이 있는 인증 및 암호화)

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

단계
  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

공급량

스토리지 백엔드와 스토리지 클래스를 만든 후 이제 볼륨을 프로비저닝할 수 있습니다. 지침은 다음을 참조하세요. "볼륨 제공" .