使用Azure密钥存储管理密钥
您可以使用 "Azure 密钥存储( AKV )" 保护Azure部署应用程序中的ONTAP 加密密钥。
可使用AKV进行保护 "NetApp 卷加密( NVE )密钥" 仅适用于数据SVM。
可以使用命令行界面或ONTAP REST API启用使用AKV的密钥管理。
使用AKV时、请注意、默认情况下、数据SVM LIF用于与云密钥管理端点进行通信。节点管理网络用于与云提供商的身份验证服务(login.microsoftonline.com)进行通信。如果集群网络配置不正确,集群将无法正确利用密钥管理服务。
-
Cloud Volumes ONTAP 必须运行9.10.1或更高版本
-
已安装卷加密(VE)许可证(已向NetApp支持部门注册的每个Cloud Volumes ONTAP 系统会自动安装NetApp卷加密许可证)
-
您必须具有多租户加密密钥管理(MT_EK_Mgmt)许可证
-
您必须是集群管理员或SVM管理员
-
Active Azure订阅
-
只能在数据SVM上配置AKV
-
NAE不能使用AKV。NAE需要外部支持的KMIP服务器。
-
Cloud Volumes ONTAP节点每15分钟轮询一次ARV、以确认可访问性和密钥可用性。此轮询周期不可配置、在轮询尝试连续四次失败(总共1小时)后、卷将置于脱机状态。
配置过程
概述的步骤将介绍如何向Azure注册Cloud Volumes ONTAP 配置以及如何创建Azure密钥存储和密钥。如果您已完成这些步骤、请确保配置设置正确、尤其是在中 创建Azure密钥存储、然后继续 Cloud Volumes ONTAP 配置。
-
您必须先在希望Cloud Volumes ONTAP 用于访问Azure密钥存储的Azure订阅中注册应用程序。在Azure门户中、选择"*应用注册"。
-
选择"新建注册"。
-
请为您的应用程序提供一个名称、然后选择支持的应用程序类型。默认的单个租户足以使用Azure密钥存储。选择"注册"。
-
在Azure概述窗口中、选择已注册的应用程序。将**应用程序(客户端) ID*和*目录(租户) ID*复制到安全位置。注册过程稍后将需要这些许可证。
-
在Azure密钥存储应用注册的Azure门户中、选择"*证书和密钥"窗格。
-
选择"新建客户端密钥"。为您的客户端密钥输入一个有意义的名称。NetApp建议使用24个月的到期期限;但是、您的特定云监管策略可能需要其他设置。
-
单击"添加"以创建客户端密钥。复制"value"列中列出的机密字符串、并将其存储在安全位置、以供稍后在中使用 Cloud Volumes ONTAP 配置。离开页面后、不会再显示此机密值。
-
如果您已有Azure密钥存储、则可以将其连接到Cloud Volumes ONTAP 配置;但是、您必须根据此过程中的设置调整访问策略。
-
在Azure门户中、导航到"*密钥存储"部分。
-
单击"*+Create"(创建)、然后输入所需信息、包括资源组、区域和定价层。此外、输入保留已删除存储的天数、然后在密钥存储上选择"*启用清除保护"。
-
选择"*下一步"以选择访问策略。
-
选择以下选项:
-
在"*访问配置"下、选择"*存储访问策略"。
-
在"*资源访问权限"下、选择"*用于卷加密的Azure磁盘加密"。
-
-
选择"**+Create"以添加访问策略。
-
在"*从模板配置"*下、单击下拉菜单、然后选择"*密钥"、"机密"和"证书管理"*模板。
-
选择每个下拉权限菜单(密钥、密钥、证书)、然后选择菜单列表顶部的"**全选"*以选择所有可用权限。您应具备:
-
"关键权限":已选择20个
-
"*机密权限":已选择8个
-
"*证书权限":已选择16个
-
-
单击"下一步"以选择您在中创建的"*主体"*已注册Azure应用程序 Azure应用程序注册。选择"*下一步"。
每个策略只能分配一个主体。 -
单击两次"下一步"、直到到达"查看并创建"。然后、单击"**创建"。
-
选择"*下一步"*以进入"*网络连接"*选项。
-
选择适当的网络访问方法或选择"**所有网络"*和"*查看+创建"*以创建密钥存储。(网络访问方法可能由监管策略或您的企业云安全团队规定。)
-
记录密钥存储URI:在您创建的密钥存储中、导航到概述菜单并从右侧列复制"*存储URI"。您需要在后续步骤中使用此功能。
-
在为Cloud Volumes ONTAP 创建的密钥存储的菜单中、导航到"*密钥"选项。
-
选择"*生成/导入"*以创建新密钥。
-
将默认选项设置为"*生成"。
-
请提供以下信息:
-
加密密钥名称
-
密钥类型:RSA
-
RSA密钥大小:2048
-
Enabled:是
-
-
选择"**创建"以创建加密密钥。
-
返回到"**密钥"菜单、然后选择刚刚创建的密钥。
-
在"*当前版本"下选择密钥ID以查看密钥属性。
-
找到"*密钥标识符"*字段。将此URI复制到、但不包括十六进制字符串。
-
只有在为HA Cloud Volumes ONTAP 工作环境配置Azure密钥存储时、才需要执行此过程。
-
在Azure门户中、导航到"**虚拟网络"。
-
选择部署Cloud Volumes ONTAP 工作环境的虚拟网络、然后选择页面左侧的"*子网"*菜单。
-
从列表中选择Cloud Volumes ONTAP 部署的子网名称。
-
导航到"**服务端点"*标题。在下拉菜单中、选择以下内容:
-
"10.microsoft.AzureActiveDirectory"
-
*microsoft.KeyVaule
-
"10.microsoft.Storage"*(可选)
-
-
选择"*保存"*以捕获设置。
-
使用首选SSH客户端连接到集群管理LIF。
-
在ONTAP 中进入高级权限模式:
set advanced -con off
-
确定所需的数据SVM并验证其DNS配置:
vserver services name-service dns show
-
如果所需数据SVM的DNS条目存在、并且其中包含Azure DNS的条目、则无需执行任何操作。如果不支持、请为指向Azure DNS、专用DNS或内部部署服务器的数据SVM添加DNS服务器条目。这应与集群管理SVM的条目匹配:
vserver services name-service dns create -vserver svm_name-domains domain-name-servers ip_address
-
验证是否已为数据SVM创建DNS服务:
vserver services name-service dns show
-
-
使用应用程序注册后保存的客户端ID和租户ID启用Azure密钥存储:
security key-manager external azure enable -vserver SVM_name -client-id Azure_client_ID -tenant-id Azure_tenant_ID -name key_vault_URI -key-id full_key_URI
。 _full_key_URI
值必须使用<https:// <key vault host name>/keys/<key label>
格式。 -
成功启用Azure密钥存储后、输入
client secret value
出现提示时。 -
检查密钥管理器的状态:
security key-manager external azure check
The output will look like:::*> security key-manager external azure check Vserver: data_svm_name Node: akvlab01-01 Category: service_reachability Status: OK Category: ekmip_server Status: OK Category: kms_wrapped_key_status Status: UNKNOWN Details: No volumes created yet for the vserver. Wrapped KEK status will be available after creating encrypted volumes. 3 entries were displayed.
如果
service_reachability
状态不是OK
、SVM无法使用所需的所有连接和权限访问Azure密钥存储服务。确保您的Azure网络策略和路由不会阻止您的专用vNet访问Azure KeyVault公共端点。如果有、请考虑使用Azure私有端点从vNet中访问密钥存储。您可能还需要在SVM上添加静态主机条目、以解析端点的专用IP地址。。
kms_wrapped_key_status
将报告UNKNOWN
初始配置时。其状态将更改为OK
对第一个卷进行加密后。 -
可选:创建测试卷以验证NVE的功能。
vol create -vserver svm_name-volume volume_name-aggregate aggr-size size-state online -policy default
如果配置正确、Cloud Volumes ONTAP 将自动创建卷并启用卷加密。
-
确认卷已正确创建和加密。如果是、则` is-encrypted`参数将显示为`true`。
vol show -vserver svm_name-fields is-encrypted