Skip to main content
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Criptografia em trânsito Kerberos

Usando criptografia em trânsito Kerberos, você pode melhorar a segurança do acesso aos dados habilitando a criptografia para o tráfego entre seu cluster gerenciado e o storage backend.

Trident oferece suporte à criptografia Kerberos para ONTAP como backend de storage:

  • On-premise ONTAP - Trident oferece suporte à criptografia Kerberos em conexões NFSv3 e NFSv4 de clusters Red Hat OpenShift e Kubernetes upstream para volumes ONTAP locais.

Você pode criar, excluir, redimensionar, criar snapshots, clonar, clonar em modo somente leitura e importar volumes que utilizam criptografia NFS.

Configurar criptografia Kerberos em trânsito com volumes ONTAP locais

Você pode habilitar a criptografia Kerberos no tráfego de storage entre seu cluster gerenciado e um backend de storage ONTAP local.

Observação A criptografia Kerberos para o tráfego NFS com backends de storage ONTAP locais só é compatível usando o driver de storage ontap-nas.
Antes de começar
  • Certifique-se de ter acesso ao utilitário tridentctl.

  • Certifique-se de ter acesso de administrador ao backend de storage ONTAP.

  • Certifique-se de saber o nome do(s) volume(s) que você compartilhará do backend de storage ONTAP.

  • Certifique-se de ter preparado a máquina virtual de storage ONTAP para suportar a criptografia Kerberos para volumes NFS. Consulte "Habilite o Kerberos em um dataLIF" para obter instruções.

  • Certifique-se de que todos os volumes NFSv4 que você usa com criptografia Kerberos estejam configurados corretamente. Consulte a seção Configuração de Domínio NFSv4 da NetApp (página 13) do "NetApp NFSv4 Melhorias e Guia de Práticas Recomendadas".

Adicionar ou modificar políticas de exportação do ONTAP

Você precisa adicionar regras às políticas de exportação ONTAP existentes ou criar novas políticas de exportação que ofereçam suporte à criptografia Kerberos para o volume raiz da máquina virtual de storage ONTAP, bem como para quaisquer volumes ONTAP compartilhados com o cluster Kubernetes upstream. As regras de política de exportação que você adicionar, ou as novas políticas de exportação que você criar, precisam oferecer suporte aos seguintes protocolos de acesso e permissões de acesso:

Protocolos de acesso

Configure a política de exportação com os protocolos de acesso NFS, NFSv3 e NFSv4.

Detalhes de acesso

Você pode configurar uma das três versões diferentes de criptografia Kerberos, dependendo das suas necessidades para o volume:

  • Kerberos 5 - (autenticação e criptografia)

  • Kerberos 5i - (autenticação e criptografia com proteção de identidade)

  • Kerberos 5p - (autenticação e criptografia com proteção de identidade e privacidade)

Configure a regra de política de exportação do ONTAP com as permissões de acesso apropriadas. Por exemplo, se os clusters forem montar os volumes NFS com uma combinação de criptografia Kerberos 5i e Kerberos 5p, use as seguintes configurações de acesso:

Tipo Acesso somente leitura Acesso de leitura/gravação Acesso de superusuário

UNIX

Habilitado

Habilitado

Habilitado

Kerberos 5i

Habilitado

Habilitado

Habilitado

Kerberos 5p

Habilitado

Habilitado

Habilitado

Consulte a seguinte documentação para saber como criar políticas de exportação do ONTAP e regras de políticas de exportação:

Crie um backend de storage

Você pode criar uma configuração de backend de storage Trident que inclua a capacidade de criptografia Kerberos.

Sobre esta tarefa

Ao criar um arquivo de configuração de storage backend que configura a criptografia Kerberos, você pode especificar uma das três versões diferentes de criptografia Kerberos usando o spec.nfsMountOptions parâmetro:

  • spec.nfsMountOptions: sec=krb5 (autenticação e criptografia)

  • spec.nfsMountOptions: sec=krb5i (autenticação e criptografia com proteção de identidade)

  • spec.nfsMountOptions: sec=krb5p (autenticação e criptografia com proteção de identidade e privacidade)

Especifique apenas um nível de Kerberos. Se você especificar mais de um nível de criptografia Kerberos na lista de parâmetros, somente a primeira opção será usada.

Passos
  1. No cluster gerenciado, crie um arquivo de configuração de backend de storage usando o exemplo a seguir. Substitua os valores entre colchetes <> com informações do seu ambiente:

    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. Use o arquivo de configuração que você criou na etapa anterior para criar o backend:

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

    Se a criação do backend falhar, há algo errado com a configuração do backend. Você pode visualizar os logs para determinar a causa executando o seguinte comando:

    tridentctl logs

    Após identificar e corrigir o problema com o arquivo de configuração, você pode executar o comando create novamente.

Crie uma storage class

Você pode criar uma classe de armazenamento para provisionar volumes com criptografia Kerberos.

Sobre esta tarefa

Ao criar um objeto de classe de armazenamento, você pode especificar uma das três versões diferentes de criptografia Kerberos usando o `mountOptions`parâmetro:

  • mountOptions: sec=krb5 (autenticação e criptografia)

  • mountOptions: sec=krb5i (autenticação e criptografia com proteção de identidade)

  • mountOptions: sec=krb5p (autenticação e criptografia com proteção de identidade e privacidade)

Especifique apenas um nível Kerberos. Se você especificar mais de um nível de criptografia Kerberos na lista de parâmetros, somente a primeira opção será usada. Se o nível de criptografia que você especificou na configuração do backend de storage for diferente do nível que você especificar no objeto da classe de storage, o objeto da classe de storage terá precedência.

Passos
  1. Crie um objeto Kubernetes StorageClass, usando o seguinte exemplo:

    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. Crie a classe de armazenamento:

    kubectl create -f sample-input/storage-class-ontap-nas-sc.yaml
  3. Certifique-se de que a classe de armazenamento foi criada:

    kubectl get sc ontap-nas-sc

    Você deverá ver uma saída semelhante à seguinte:

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

Provisionar volumes

Após criar um backend de armazenamento e uma classe de armazenamento, você pode provisionar um volume. Para obter instruções, consulte "Provisionar um volume".

Configurar criptografia Kerberos em trânsito com volumes do Azure NetApp Files

Você pode habilitar a criptografia Kerberos no tráfego de armazenamento entre seu cluster gerenciado e um único back-end de armazenamento Azure NetApp Files ou um pool virtual de back-ends de armazenamento Azure NetApp Files.

Antes de começar
  • Certifique-se de ter habilitado Trident no cluster Red Hat OpenShift gerenciado.

  • Certifique-se de ter acesso ao utilitário tridentctl.

  • Certifique-se de ter preparado o backend de armazenamento Azure NetApp Files para criptografia Kerberos, observando os requisitos e seguindo as instruções em "Documentação do Azure NetApp Files".

  • Certifique-se de que todos os volumes NFSv4 que você usa com criptografia Kerberos estejam configurados corretamente. Consulte a seção Configuração de Domínio NFSv4 da NetApp (página 13) do "NetApp NFSv4 Melhorias e Guia de Práticas Recomendadas".

Crie um backend de storage

Você pode criar uma configuração de back-end de armazenamento do Azure NetApp Files que inclua a capacidade de criptografia Kerberos.

Sobre esta tarefa

Ao criar um arquivo de configuração de backend de storage que configura a criptografia Kerberos, você pode defini-lo para que seja aplicado em um dos dois níveis possíveis:

  • O nível de backend de armazenamento usando o spec.kerberos campo

  • O nível do pool virtual usando o spec.storage.kerberos campo

Ao definir a configuração no nível do pool virtual, o pool é selecionado usando o rótulo na storage class.

Em qualquer um dos níveis, você pode especificar uma das três versões diferentes de criptografia Kerberos:

  • kerberos: sec=krb5 (autenticação e criptografia)

  • kerberos: sec=krb5i (autenticação e criptografia com proteção de identidade)

  • kerberos: sec=krb5p (autenticação e criptografia com proteção de identidade e privacidade)

Passos
  1. No cluster gerenciado, crie um arquivo de configuração de backend de storage usando um dos exemplos a seguir, dependendo de onde você precisa definir o backend de storage (nível do backend de storage ou nível do pool virtual). Substitua os valores entre colchetes <> com as informações do seu ambiente:

    Exemplo de nível de storage backend
    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
    Exemplo de nível de pool virtual
    ---
    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. Use o arquivo de configuração que você criou na etapa anterior para criar o backend:

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

    Se a criação do backend falhar, há algo errado com a configuração do backend. Você pode visualizar os logs para determinar a causa executando o seguinte comando:

    tridentctl logs

    Após identificar e corrigir o problema com o arquivo de configuração, você pode executar o comando create novamente.

Crie uma storage class

Você pode criar uma classe de armazenamento para provisionar volumes com criptografia Kerberos.

Passos
  1. Crie um objeto Kubernetes StorageClass, usando o seguinte exemplo:

    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. Crie a classe de armazenamento:

    kubectl create -f sample-input/storage-class-sc-nfs.yaml
  3. Certifique-se de que a classe de armazenamento foi criada:

    kubectl get sc -sc-nfs

    Você deverá ver uma saída semelhante à seguinte:

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

Provisionar volumes

Após criar um backend de armazenamento e uma classe de armazenamento, você pode provisionar um volume. Para obter instruções, consulte "Provisionar um volume".