Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

配置存储后端加密

贡献者

通过使用Astra Control配置程序、您可以对受管集群和存储后端之间的流量启用加密、从而提高数据访问安全性。

Astra Control配置程序支持对两种类型的存储后端进行Kerberos加密:

  • 内部部署Kubernet—Astra配置程序支持通过从ONTAP OpenShift和上游Kubernetes集群到内部部署ONTAP卷的NFS3和NFSv4连接进行Kerberos加密。

  • NFSv-控件配置程序支持通过从上游Azure NetApp Files集群到Azure NetApp Files卷的NFSv4.1连接进行Kerberos加密。

您可以创建、删除、调整大小、创建快照、克隆、 只读克隆、并导入使用NFS加密的卷。

为内部ONTAP卷配置传输中的Kerberos加密

您可以对受管集群与内部ONTAP存储后端之间的存储流量启用Kerberos加密。

备注 仅支持使用对使用内部ONTAP存储后端的NFS流量进行Kerberos加密 ontap-nas 存储驱动程序。
开始之前

添加或修改ONTAP导出策略

您需要向现有ONTAP导出策略添加规则、或者创建新的导出策略、以便对ONTAP Storage VM根卷以及与上游Kubornetes集群共享的任何ONTAP卷支持Kerberos加密。您添加的导出策略规则或创建的新导出策略需要支持以下访问协议和访问权限:

访问协议

使用NFS、NFSv3和NFSv4访问协议配置导出策略。

访问详细信息

您可以根据卷的需求配置以下三种不同版本的Kerberos加密之一:

  • Kerberos 5-(身份验证和加密)

  • Kerberos 5i-(身份验证和加密与身份保护)

  • Kerberos 5p-(身份验证和加密、具有身份和隐私保护功能)

使用适当的访问权限配置ONTAP导出策略规则。例如、如果集群要挂载混合使用Kerberos 5i和Kerberos 5p加密的NFS卷、请使用以下访问设置:

Type 只读访问 读/写访问 超级用户访问

"unix"

enabled

enabled

enabled

Kerberos 5i

enabled

enabled

enabled

Kerberos 5p

enabled

enabled

enabled

有关如何创建ONTAP导出策略和导出策略规则、请参见以下文档:

创建存储后端

您可以创建包含Kerberos加密功能的A作用 力控制配置程序存储后端配置。

关于此任务

在创建用于配置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 Kubenetes对象:

    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加密。

开始之前

创建存储后端

您可以创建包含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-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
  2. 使用您在上一步中创建的配置文件创建后端:

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

    如果后端创建失败,则后端配置出现问题。您可以运行以下命令来查看日志以确定发生原因:

    tridentctl logs

    确定并更正配置文件中的问题后,您可以再次运行 create 命令。

创建存储类。

您可以创建存储类来配置采用Kerberos加密的卷。

步骤
  1. 使用以下示例创建StorageClass Kubenetes对象:

    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"
  2. 创建存储类:

    kubectl create -f sample-input/storage-class-anf-sc-nfs.yaml
  3. 确保已创建存储类:

    kubectl get sc anf-sc-nfs

    您应看到类似于以下内容的输出:

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

配置卷

创建存储后端和存储类后、您现在可以配置卷。请参阅以下说明 "配置卷"