Criptografia Kerberos em voo
Ao usar a criptografia Kerberos em trânsito, você pode melhorar a segurança do acesso aos dados, habilitando a criptografia para o tráfego entre seu cluster gerenciado e o backend de armazenamento.
O Trident oferece suporte à criptografia Kerberos para ONTAP como backend de armazenamento:
-
* ONTAP local* - O 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.
Configure a criptografia Kerberos em trânsito com volumes ONTAP locais.
Você pode habilitar a criptografia Kerberos no tráfego de armazenamento entre seu cluster gerenciado e um backend de armazenamento ONTAP local.
|
|
A criptografia Kerberos para tráfego NFS com backends de armazenamento ONTAP locais só é compatível com o uso do ontap-nas driver de armazenamento.
|
-
Certifique-se de ter acesso ao
tridentctlutilidade. -
Certifique-se de ter acesso de administrador ao backend de armazenamento do ONTAP .
-
Certifique-se de saber o nome do(s) volume(s) que você compartilhará do backend de armazenamento ONTAP .
-
Certifique-se de ter preparado a máquina virtual de armazenamento ONTAP para suportar a criptografia Kerberos para volumes NFS. Consulte "Habilitar 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 manual. "Guia de Aprimoramentos e Melhores Práticas do NetApp NFSv4" .
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 suportem criptografia Kerberos para o volume raiz da VM de armazenamento 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 ser compatíveis com os seguintes protocolos de acesso e permissões de acesso:
Configure a política de exportação com os protocolos de acesso NFS, NFSv3 e NFSv4.
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 obter informações sobre como criar políticas de exportação e regras de política de exportação do ONTAP :
Crie um backend de armazenamento
Você pode criar uma configuração de backend de armazenamento Trident que inclua a capacidade de criptografia Kerberos.
Ao criar um arquivo de configuração de backend de armazenamento 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 Kerberos. Se você especificar mais de um nível de criptografia Kerberos na lista de parâmetros, somente a primeira opção será utilizada.
-
No cluster gerenciado, crie um arquivo de configuração de backend de armazenamento usando o seguinte exemplo. Substitua os valores entre colchetes <> por 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 -
Utilize 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 registros para determinar a causa executando o seguinte comando:
tridentctl logsApós identificar e corrigir o problema com o arquivo de configuração, você poderá executar o comando de criação novamente.
Criar uma classe de armazenamento
Você pode criar uma classe de armazenamento para provisionar volumes com criptografia Kerberos.
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á utilizada. Se o nível de criptografia especificado na configuração do backend de armazenamento for diferente do nível especificado no objeto da classe de armazenamento, o objeto da classe de armazenamento terá precedência.
-
Crie um objeto Kubernetes do tipo StorageClass, utilizando 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 -
Crie a classe de armazenamento:
kubectl create -f sample-input/storage-class-ontap-nas-sc.yaml -
Certifique-se de que a classe de armazenamento foi criada:
kubectl get sc ontap-nas-scVocê deverá ver uma saída semelhante à seguinte:
NAME PROVISIONER AGE ontap-nas-sc csi.trident.netapp.io 15h
volumes de provisão
Após criar um backend de armazenamento e uma classe de armazenamento, você poderá provisionar um volume. Para obter instruções, consulte "Forneça um volume" .
Configure a 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 backend de armazenamento do Azure NetApp Files ou um pool virtual de backends de armazenamento do Azure NetApp Files .
-
Certifique-se de ter habilitado o Trident no cluster Red Hat OpenShift gerenciado.
-
Certifique-se de ter acesso ao
tridentctlutilidade. -
Certifique-se de ter preparado o backend de armazenamento do 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 manual. "Guia de Aprimoramentos e Melhores Práticas do NetApp NFSv4" .
Crie um backend de armazenamento
Você pode criar uma configuração de back-end de armazenamento do Azure NetApp Files que inclua a capacidade de criptografia Kerberos.
Ao criar um arquivo de configuração de backend de armazenamento que configura a criptografia Kerberos, você pode defini-lo para ser aplicado em um dos dois níveis possíveis:
-
O nível de backend de armazenamento usando o
spec.kerberoscampo -
O nível da piscina virtual usando o
spec.storage.kerberoscampo
Ao definir a configuração no nível do pool virtual, o pool é selecionado usando o rótulo na classe de armazenamento.
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)
-
No cluster gerenciado, crie um arquivo de configuração de backend de armazenamento usando um dos exemplos a seguir, dependendo de onde você precisa definir o backend de armazenamento (nível de backend de armazenamento ou nível de pool virtual). Substitua os valores entre colchetes <> por informações do seu ambiente:
Exemplo de nível de backend de armazenamentoapiVersion: 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-secretExemplo de nível de piscina 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 -
Utilize 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 registros para determinar a causa executando o seguinte comando:
tridentctl logsApós identificar e corrigir o problema com o arquivo de configuração, você poderá executar o comando de criação novamente.
Criar uma classe de armazenamento
Você pode criar uma classe de armazenamento para provisionar volumes com criptografia Kerberos.
-
Crie um objeto Kubernetes do tipo StorageClass, utilizando 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 -
Crie a classe de armazenamento:
kubectl create -f sample-input/storage-class-sc-nfs.yaml -
Certifique-se de que a classe de armazenamento foi criada:
kubectl get sc -sc-nfsVocê deverá ver uma saída semelhante à seguinte:
NAME PROVISIONER AGE sc-nfs csi.trident.netapp.io 15h
volumes de provisão
Após criar um backend de armazenamento e uma classe de armazenamento, você poderá provisionar um volume. Para obter instruções, consulte "Forneça um volume" .