設定儲存後端加密
使用 Astra Control Provisioner 、您可以為託管叢集與儲存後端之間的流量啟用加密、藉此改善資料存取安全性。
Astra Control Provisioner 支援兩種儲存後端的 Kerberos 加密:
-
* 內部部署 ONTAP * : Astra 控制備置程式支援透過 NFSv3 和 NFSv4 連線進行 Kerberos 加密、從 Red Hat OpenShift 和上游 Kubernetes 叢集到內部部署 ONTAP 磁碟區。
-
* Azure NetApp Files * - Astra 控制備置程式支援透過 NFSv4.1 連線進行 Kerberos 加密、從上游 Kubernetes 叢集到 Azure NetApp Files Volume 。
您可以建立、刪除、調整大小、快照、複製、 唯讀複製及匯入使用 NFS 加密的磁碟區。
使用內部部署的 ONTAP 磁碟區來設定在線上 Kerberos 加密
您可以在託管叢集與內部部署 ONTAP 儲存後端之間的儲存流量上啟用 Kerberos 加密。
內部部署 ONTAP 儲存後端的 NFS 流量 Kerberos 加密僅支援使用 ontap-nas 儲存驅動程式:
|
-
確保您擁有 "已啟用 Astra Control Provisioner" 在託管叢集上。
-
請確定您可以存取
tridentctl
公用程式: -
確保您具有 ONTAP 儲存後端的管理員存取權。
-
確保您知道將從 ONTAP 儲存後端共用的磁碟區名稱。
-
請確定您已準備好 ONTAP 儲存 VM 、以支援 NFS 磁碟區的 Kerberos 加密。請參閱 "在資料LIF上啟用Kerberos" 以取得相關指示。
-
請確定您使用 Kerberos 加密的任何 NFSv4 磁碟區都已正確設定。請參閱的「 NetApp NFSv4 網域組態」一節(第 13 頁) "NetApp NFSv4 增強與最佳實務指南"。
新增或修改 ONTAP 匯出原則
您需要將規則新增至現有的 ONTAP 匯出原則、或建立新的匯出原則、以支援 ONTAP 儲存 VM 根磁碟區的 Kerberos 加密、以及與上游 Kubernetes 叢集共用的任何 ONTAP 磁碟區。您新增的匯出原則規則或您建立的新匯出原則需要支援下列存取通訊協定和存取權限:
使用 NFS 、 NFSv3 和 NFSv4 存取通訊協定來設定匯出原則。
您可以根據對磁碟區的需求、設定 Kerberos 加密的三個不同版本之一:
-
* Kerberos 5* - (驗證與加密)
-
* Kerberos 5i* - (身分識別保護的驗證與加密)
-
* Kerberos 5p* - (身分識別與隱私保護的驗證與加密)
使用適當的存取權限來設定 ONTAP 匯出原則規則。例如、如果叢集將使用 Kerberos 5i 和 Kerberos 5p 加密混合安裝 NFS 磁碟區、請使用下列存取設定:
類型 | 唯讀存取 | 讀取 / 寫入存取權 | 超級使用者存取權 |
---|---|---|---|
UNIX |
已啟用 |
已啟用 |
已啟用 |
Kerberos 5i |
已啟用 |
已啟用 |
已啟用 |
Kerberos 5p |
已啟用 |
已啟用 |
已啟用 |
請參閱下列文件、瞭解如何建立 ONTAP 匯出原則和匯出原則規則:
建立儲存後端
您可以建立內含 Kerberos 加密功能的 Astra Control Provisioner 儲存後端組態。
當您建立設定 Kerberos 加密的儲存後端組態檔案時、可以使用指定三個不同版本的 Kerberos 加密之一 spec.nfsMountOptions
參數:
-
spec.nfsMountOptions: sec=krb5
(驗證與加密) -
spec.nfsMountOptions: sec=krb5i
(身分識別保護的驗證與加密) -
spec.nfsMountOptions: sec=krb5p
(身分識別與隱私保護的驗證與加密)
只指定一個 Kerberos 層級。如果您在參數清單中指定多個 Kerberos 加密層級、則只會使用第一個選項。
-
在託管叢集上、使用下列範例建立儲存後端組態檔案。以您環境的資訊取代括弧 <> 中的值:
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
-
使用您在上一個步驟中建立的組態檔來建立後端:
tridentctl create backend -f <backend-configuration-file>
如果後端建立失敗、表示後端組態有問題。您可以執行下列命令來檢視記錄、以判斷原因:
tridentctl logs
識別並修正組態檔的問題之後、您可以再次執行create命令。
建立儲存類別
您可以建立儲存類別、以使用 Kerberos 加密來配置磁碟區。
當您建立儲存類別物件時、可以使用指定三個不同版本的 Kerberos 加密之一 mountOptions
參數:
-
mountOptions: sec=krb5
(驗證與加密) -
mountOptions: sec=krb5i
(身分識別保護的驗證與加密) -
mountOptions: sec=krb5p
(身分識別與隱私保護的驗證與加密)
只指定一個 Kerberos 層級。如果您在參數清單中指定多個 Kerberos 加密層級、則只會使用第一個選項。如果您在儲存後端組態中指定的加密層級與您在儲存類別物件中指定的層級不同、則儲存類別物件會優先。
-
使用以下範例建立 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
-
建立儲存類別:
kubectl create -f sample-input/storage-class-ontap-nas-sc.yaml
-
確定已建立儲存類別:
kubectl get sc ontap-nas-sc
您應該會看到類似下列的輸出:
NAME PROVISIONER AGE ontap-nas-sc csi.trident.netapp.io 15h
配置 Volume
建立儲存後端和儲存類別之後、您現在可以配置 Volume 。請參閱以下說明 "資源配置"。
使用 Azure NetApp Files 磁碟區設定在線上 Kerberos 加密
您可以在託管叢集與單一 Azure NetApp Files 儲存後端或 Azure NetApp Files 儲存後端的虛擬集區之間的儲存流量上啟用 Kerberos 加密。
-
確保您已在託管的 Red Hat OpenShift 叢集上啟用 Astra Control Provisioner 。請參閱 "啟用 Astra Control Provisioner" 以取得相關指示。
-
請確定您可以存取
tridentctl
公用程式: -
請注意中的要求並遵循中的指示、以確保您已準備好 Azure NetApp Files 儲存後端進行 Kerberos 加密 "本文檔 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
(身分識別與隱私保護的驗證與加密)
-
在託管叢集上、根據您需要定義儲存後端(儲存後端層級或虛擬集區層級)的位置、使用下列其中一個範例建立儲存後端組態檔案。以您環境的資訊取代括弧 <> 中的值:
儲存後端層級範例apiVersion: 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
虛擬集區層級範例apiVersion: 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
-
使用您在上一個步驟中建立的組態檔來建立後端:
tridentctl create backend -f <backend-configuration-file>
如果後端建立失敗、表示後端組態有問題。您可以執行下列命令來檢視記錄、以判斷原因:
tridentctl logs
識別並修正組態檔的問題之後、您可以再次執行create命令。
建立儲存類別
您可以建立儲存類別、以使用 Kerberos 加密來配置磁碟區。
-
使用以下範例建立 StorageClass Kubernetes 物件:
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"
-
建立儲存類別:
kubectl create -f sample-input/storage-class-anf-sc-nfs.yaml
-
確定已建立儲存類別:
kubectl get sc anf-sc-nfs
您應該會看到類似下列的輸出:
NAME PROVISIONER AGE anf-sc-nfs csi.trident.netapp.io 15h
配置 Volume
建立儲存後端和儲存類別之後、您現在可以配置 Volume 。請參閱以下說明 "資源配置"。