Konfiguration der Storage-Back-End-Verschlüsselung
Mit Astra Control Provisioner können Sie die Datensicherheit verbessern, indem Sie die Verschlüsselung für den Datenverkehr zwischen dem gemanagten Cluster und dem Storage-Back-End aktivieren.
Astra Control Provisioner unterstützt Kerberos-Verschlüsselung für zwei Arten von Storage-Back-Ends:
-
On-Premises-ONTAP – Astra Control Provisioner unterstützt Kerberos-Verschlüsselung über NFSv3- und NFSv4-Verbindungen von Red hat OpenShift und Upstream-Kubernetes-Clustern zu lokalen ONTAP-Volumes.
-
Azure NetApp Files – Astra Control Provisioner unterstützt Kerberos-Verschlüsselung über NFSv4.1-Verbindungen von Upstream-Kubernetes-Clustern zu Azure NetApp Files Volumes.
Sie können Snapshots, Klone, schreibgeschütztes Klonen und Importieren von Volumes mit NFS-Verschlüsselung.
Konfiguration der in-Flight-Kerberos-Verschlüsselung mit lokalen ONTAP-Volumes
Sie können die Kerberos-Verschlüsselung auf dem Storage-Datenverkehr zwischen dem verwalteten Cluster und einem lokalen ONTAP-Storage-Back-End aktivieren.
Kerberos-Verschlüsselung für NFS-Datenverkehr mit lokalen ONTAP-Storage-Back-Ends wird nur mithilfe des unterstützt ontap-nas Storage-Treiber:
|
-
Stellen Sie sicher, dass Sie die Astra Control-Bereitstellung im verwalteten Cluster aktiviert haben. Siehe "Astra Control Provisioner Aktivieren" Weitere Anweisungen.
-
Stellen Sie sicher, dass Sie Zugriff auf haben
tridentctl
Utility: -
Stellen Sie sicher, dass Sie Administratorzugriff auf das ONTAP Storage Back-End haben.
-
Stellen Sie sicher, dass Sie den Namen des Volumes oder der Volumes kennen, die Sie über das ONTAP-Speicher-Back-End freigeben werden.
-
Stellen Sie sicher, dass Sie die ONTAP-Storage-VM auf die Unterstützung der Kerberos-Verschlüsselung für NFS-Volumes vorbereitet haben. Siehe "Aktivieren Sie Kerberos auf einer Daten-LIF" Weitere Anweisungen.
-
Stellen Sie sicher, dass alle NFSv4-Volumes, die Sie mit Kerberos-Verschlüsselung verwenden, korrekt konfiguriert sind. Weitere Informationen finden Sie im Abschnitt NetApp NFSv4-Domänenkonfiguration (Seite 13) des "NetApp Leitfaden zu NFSv4-Verbesserungen und Best Practices".
ONTAP-Exportrichtlinien hinzufügen oder ändern
Sie müssen bestehenden ONTAP-Exportrichtlinien Regeln hinzufügen oder neue Exportrichtlinien erstellen, die Kerberos-Verschlüsselung für das ONTAP Storage-VM-Root-Volume sowie alle mit dem Upstream-Kubernetes-Cluster gemeinsam genutzten ONTAP-Volumes unterstützen. Die von Ihnen hinzugefügten Regeln für die Exportrichtlinie oder neu erstellte Richtlinien für den Export müssen die folgenden Zugriffsprotokolle und Zugriffsberechtigungen unterstützen:
Konfigurieren Sie die Exportrichtlinie mit NFS-, NFSv3- und NFSv4-Zugriffsprotokollen.
Sie können eine von drei verschiedenen Versionen der Kerberos-Verschlüsselung konfigurieren, je nach Ihren Anforderungen für das Volume:
-
Kerberos 5 - (Authentifizierung und Verschlüsselung)
-
Kerberos 5i - (Authentifizierung und Verschlüsselung mit Identitätsschutz)
-
Kerberos 5p - (Authentifizierung und Verschlüsselung mit Identitäts- und Datenschutz)
Konfigurieren Sie die ONTAP-Exportrichtlinie mit den entsprechenden Zugriffsberechtigungen. Wenn beispielsweise Cluster die NFS-Volumes mit einer Mischung aus Kerberos 5i- und Kerberos 5p-Verschlüsselung mounten, verwenden Sie die folgenden Zugriffseinstellungen:
Typ | Schreibgeschützter Zugriff | Lese-/Schreibzugriff | Superuser-Zugriff |
---|---|---|---|
UNIX |
Aktiviert |
Aktiviert |
Aktiviert |
Kerberos 5i |
Aktiviert |
Aktiviert |
Aktiviert |
Kerberos 5p |
Aktiviert |
Aktiviert |
Aktiviert |
Informationen zum Erstellen von ONTAP Exportrichtlinien und Exportrichtlinienregeln finden Sie in der folgenden Dokumentation:
Erstellen eines Storage-Backends
Sie können eine Astra Control Provisioner-Storage-Back-End-Konfiguration erstellen, die Kerberos Verschlüsselungsfunktionen umfasst.
Wenn Sie eine Speicher-Back-End-Konfigurationsdatei erstellen, die die Kerberos-Verschlüsselung konfiguriert, können Sie eine von drei verschiedenen Versionen der Kerberos-Verschlüsselung mithilfe des angeben spec.nfsMountOptions
Parameter:
-
spec.nfsMountOptions: sec=krb5
(Authentifizierung und Verschlüsselung) -
spec.nfsMountOptions: sec=krb5i
(Authentifizierung und Verschlüsselung mit Identitätsschutz) -
spec.nfsMountOptions: sec=krb5p
(Authentifizierung und Verschlüsselung mit Identitäts- und Datenschutz)
Geben Sie nur eine Kerberos-Ebene an. Wenn Sie in der Parameterliste mehr als eine Kerberos-Verschlüsselungsebene angeben, wird nur die erste Option verwendet.
-
Erstellen Sie auf dem verwalteten Cluster mithilfe des folgenden Beispiels eine Speicher-Back-End-Konfigurationsdatei. Ersetzen Sie Werte in Klammern <> durch Informationen aus Ihrer Umgebung:
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
-
Verwenden Sie die Konfigurationsdatei, die Sie im vorherigen Schritt erstellt haben, um das Backend zu erstellen:
tridentctl create backend -f <backend-configuration-file>
Wenn die Backend-Erstellung fehlschlägt, ist mit der Back-End-Konfiguration ein Fehler aufgetreten. Sie können die Protokolle zur Bestimmung der Ursache anzeigen, indem Sie den folgenden Befehl ausführen:
tridentctl logs
Nachdem Sie das Problem mit der Konfigurationsdatei identifiziert und korrigiert haben, können Sie den Befehl „Erstellen“ erneut ausführen.
Erstellen Sie eine Speicherklasse
Sie können eine Storage-Klasse für die Bereitstellung von Volumes mit Kerberos-Verschlüsselung erstellen.
Wenn Sie ein Storage-Klasse-Objekt erstellen, können Sie eine von drei verschiedenen Versionen der Kerberos-Verschlüsselung mithilfe des angeben mountOptions
Parameter:
-
mountOptions: sec=krb5
(Authentifizierung und Verschlüsselung) -
mountOptions: sec=krb5i
(Authentifizierung und Verschlüsselung mit Identitätsschutz) -
mountOptions: sec=krb5p
(Authentifizierung und Verschlüsselung mit Identitäts- und Datenschutz)
Geben Sie nur eine Kerberos-Ebene an. Wenn Sie in der Parameterliste mehr als eine Kerberos-Verschlüsselungsebene angeben, wird nur die erste Option verwendet. Wenn die in der Storage-Backend-Konfiguration angegebene Verschlüsselungsebene von der Ebene abweicht, die Sie im Storage-Klasse-Objekt angeben, hat das Storage-Klasse-Objekt Vorrang.
-
Erstellen Sie mithilfe des folgenden Beispiels ein StorageClass-Kubernetes-Objekt:
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
-
Speicherklasse erstellen:
kubectl create -f sample-input/storage-class-ontap-nas-sc.yaml
-
Stellen Sie sicher, dass die Storage-Klasse erstellt wurde:
kubectl get sc ontap-nas-sc
Sie sollten eine Ausgabe wie die folgende sehen:
NAME PROVISIONER AGE ontap-nas-sc csi.trident.netapp.io 15h
Bereitstellen von Volumes
Nachdem Sie ein Storage-Back-End und eine Storage-Klasse erstellt haben, können Sie nun ein Volume bereitstellen. Anweisungen finden Sie unter "Bereitstellen eines Volumes".
Konfiguration der Verschlüsselung von Kerberos während der Übertragung mit Azure NetApp Files Volumes
Sie können die Kerberos-Verschlüsselung für den Storage-Datenverkehr zwischen dem gemanagten Cluster und einem einzelnen Azure NetApp Files Storage-Back-End oder einem virtuellen Pool von Azure NetApp Files Storage-Back-Ends aktivieren.
-
Stellen Sie sicher, dass Sie Astra Control Provisioner auf dem verwalteten Red hat OpenShift-Cluster aktiviert haben. Siehe "Astra Control Provisioner Aktivieren" Weitere Anweisungen.
-
Stellen Sie sicher, dass Sie Zugriff auf haben
tridentctl
Utility: -
Stellen Sie sicher, dass Sie das Azure NetApp Files-Speicher-Back-End für die Kerberos-Verschlüsselung vorbereitet haben, indem Sie die Anforderungen beachten und die Anweisungen in befolgen "Azure NetApp Files-Dokumentation".
-
Stellen Sie sicher, dass alle NFSv4-Volumes, die Sie mit Kerberos-Verschlüsselung verwenden, korrekt konfiguriert sind. Weitere Informationen finden Sie im Abschnitt NetApp NFSv4-Domänenkonfiguration (Seite 13) des "NetApp Leitfaden zu NFSv4-Verbesserungen und Best Practices".
Erstellen eines Storage-Backends
Sie können eine Azure NetApp Files-Storage-Back-End-Konfiguration mit Kerberos Verschlüsselungsfunktionen erstellen.
Wenn Sie eine Speicher-Backend-Konfigurationsdatei erstellen, die die Kerberos-Verschlüsselung konfiguriert, können Sie sie so definieren, dass sie auf einer der zwei möglichen Ebenen angewendet werden sollte:
-
Die Speicher-Backend-Ebene unter Verwendung der
spec.kerberos
Feld -
Die virtuelle Pool-Ebene mit dem
spec.storage.kerberos
Feld
Wenn Sie die Konfiguration auf der Ebene des virtuellen Pools definieren, wird der Pool mithilfe der Beschriftung in der Speicherklasse ausgewählt.
Auf beiden Ebenen können Sie eine von drei verschiedenen Versionen der Kerberos-Verschlüsselung angeben:
-
kerberos: sec=krb5
(Authentifizierung und Verschlüsselung) -
kerberos: sec=krb5i
(Authentifizierung und Verschlüsselung mit Identitätsschutz) -
kerberos: sec=krb5p
(Authentifizierung und Verschlüsselung mit Identitäts- und Datenschutz)
-
Erstellen Sie auf dem verwalteten Cluster eine Speicher-Backend-Konfigurationsdatei mit einem der folgenden Beispiele, je nachdem, wo Sie das Speicher-Back-End definieren müssen (Speicher-Back-End-Ebene oder virtuelle Pool-Ebene). Ersetzen Sie Werte in Klammern <> durch Informationen aus Ihrer Umgebung:
Beispiel auf Storage-Back-End-EbeneapiVersion: v1 kind: Secret metadata: name: backend-tbc-anf-secret type: Opaque stringData: clientID: <CLIENT_ID> clientSecret: <CLIENT_SECRET> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-anf 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-anf-secret
Beispiel auf Ebene des virtuellen PoolsapiVersion: v1 kind: Secret metadata: name: backend-tbc-anf-secret type: Opaque stringData: clientID: <CLIENT_ID> clientSecret: <CLIENT_SECRET> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-anf 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-anf-secret
-
Verwenden Sie die Konfigurationsdatei, die Sie im vorherigen Schritt erstellt haben, um das Backend zu erstellen:
tridentctl create backend -f <backend-configuration-file>
Wenn die Backend-Erstellung fehlschlägt, ist mit der Back-End-Konfiguration ein Fehler aufgetreten. Sie können die Protokolle zur Bestimmung der Ursache anzeigen, indem Sie den folgenden Befehl ausführen:
tridentctl logs
Nachdem Sie das Problem mit der Konfigurationsdatei identifiziert und korrigiert haben, können Sie den Befehl „Erstellen“ erneut ausführen.
Erstellen Sie eine Speicherklasse
Sie können eine Storage-Klasse für die Bereitstellung von Volumes mit Kerberos-Verschlüsselung erstellen.
-
Erstellen Sie mithilfe des folgenden Beispiels ein StorageClass-Kubernetes-Objekt:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: anf-sc-nfs provisioner: csi.trident.netapp.io parameters: backendType: "azure-netapp-files" trident.netapp.io/nasType: "nfs" selector: "type=encryption"
-
Speicherklasse erstellen:
kubectl create -f sample-input/storage-class-anf-sc-nfs.yaml
-
Stellen Sie sicher, dass die Storage-Klasse erstellt wurde:
kubectl get sc anf-sc-nfs
Sie sollten eine Ausgabe wie die folgende sehen:
NAME PROVISIONER AGE anf-sc-nfs csi.trident.netapp.io 15h
Bereitstellen von Volumes
Nachdem Sie ein Storage-Back-End und eine Storage-Klasse erstellt haben, können Sie nun ein Volume bereitstellen. Anweisungen finden Sie unter "Bereitstellen eines Volumes".