你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure 托管 HSM 与 Azure Policy 集成

Azure Policy 是一种管理工具,使用户能够大规模审核和管理其 Azure 环境。 Azure Policy 提供将护栏放置在 Azure 资源上的功能,以确保它们符合分配的策略规则。 它允许用户对其 Azure 环境执行审核、实时强制和修正。 策略执行的审核的结果将显示在合规性仪表板中,用户可以在其中查看合规和不合规的资源和组件的明细。 有关详细信息,请参阅 Azure Policy 服务概述

使用方案示例:

  • 当前没有解决方案可在组织中执行审核,或者你通过要求组织内各个团队报告其符合性来对环境进行手动审核。 你正在寻找一种方法来自动执行此任务,实时执行审核,并保证审核的准确性。
  • 你需要强制实施公司安全策略,并阻止个人创建特定的加密密钥,但你不能通过自动方式来阻止其创建。
  • 你希望放宽对测试团队的一些要求,但想要对生产环境保持严格控制。 你需要一种简单的自动化方式来分隔你的资源的强制实施。
  • 你需要确保在发生实时站点问题时可以回滚新策略的强制实施。 需要一键式解决方案才能关闭策略的强制实施。
  • 你依赖于第三方解决方案来审核你的环境,并且希望使用 Microsoft 内部产品/服务。

策略影响和指南的类型

审核:当策略的影响设置为“审核”时,策略不会对环境造成任何中断性变更。 它只会通过在策略合规性仪表板中将组件(例如在指定范围内不符合策略定义的密钥)标记为不合规,提醒你注意这些组件。 如果未选择任何策略影响,则“审核”为默认值。

拒绝:当策略的效果设置为“拒绝”时,策略将阻止创建新组件(例如较弱的密钥),并阻止不符合策略定义的现有密钥的新版本。 托管 HSM 中现有的不合规资源不受影响。 “审核”功能将继续运行。

使用椭圆曲线加密的密钥应使用指定的曲线名称

如果使用椭圆曲线加密(简称 ECC)密钥,则可以自定义以下列表中允许的曲线名称列表。 默认选项允许所有以下曲线名称。

  • P-256
  • P-256K
  • P-384
  • P-521

应为密钥设置到期日期

此策略将审核托管 HSM 中的所有密钥,并将未设置到期日期的密钥标记为不合规。 还可使用此策略阻止创建未设置到期日期的密钥。

密钥的剩余有效期应超过指定的天数

如果密钥临近到期,组织延迟轮换密钥可能会导致服务中断。 应在密钥到期前指定的天数轮换密钥,以提供足够的时间来应对故障。 此策略将审核临近到期日期的密钥,并允许你以天为单位设置此阈值。 还可使用此策略阻止创建临近其到期日期的新密钥。

使用 RSA 加密的密钥应具有指定的最小密钥大小

使用较小的 RSA 密钥是不安全的设计实践。 可能需要遵守强制使用最小密钥大小的审核和认证标准。 通过以下策略,可以对托管 HSM 设置最小密钥大小要求。 你可以审核不满足这一最低要求的密钥。 此策略还可用于阻止创建不满足最小密钥大小要求的新密钥。

通过 Azure CLI 启用和管理托管 HSM 策略

授予每日扫描权限

若要检查池清单密钥的合规性,客户必须将“托管 HSM 加密审核员”角色分配到“Azure 密钥保管库托管 HSM 密钥治理服务”(应用 ID:a1b76039-a76c-499f-a2dd-846b4cc32627),以便它可以访问密钥的元数据。 如果不授予权限,将不会在 Azure Policy 合规性报告中报告清单密钥,而只会检查新密钥、更新的密钥、导入的密钥和轮换的密钥的合规性。 为此,对托管 HSM 具有“托管 HSM 管理员”角色的用户需要运行以下 Azure CLI 命令:

在 Windows 上:

az ad sp show --id a1b76039-a76c-499f-a2dd-846b4cc32627 --query id

复制输出的 id 并将其粘贴到以下命令中:

az keyvault role assignment create --scope / --role "Managed HSM Crypto Auditor" --assignee-object-id "the id printed in previous command" --hsm-name <hsm name>

在 Linux 或 Linux 的 Windows 子系统上:

spId=$(az ad sp show --id a1b76039-a76c-499f-a2dd-846b4cc32627 --query id|cut -d "\"" -f2)
echo $spId
az keyvault role assignment create --scope / --role "Managed HSM Crypto Auditor" --assignee-object-id $spId --hsm-name <hsm name>

创建策略分配 - 定义审核和/或拒绝规则

策略分配具有为策略定义的参数定义的具体值。 在 Azure 门户中转到“策略”,按“密钥保管库”类别进行筛选,并找到这四个预览版密钥治理策略定义。 选择其中一个定义,然后选择顶部的“分配”按钮。 填写每个字段。 如果策略分配用于请求拒绝,请使用有关策略的明确名称,因为当请求被拒绝时,策略分配名称将显示在错误中。 选择“下一步”,取消选中“仅显示需要输入或查看的参数”,然后输入策略定义的参数值。 跳过“修正”并创建分配。 服务最多需要 30 分钟才能强制实施“拒绝”分配。

  • Azure Key Vault 托管 HSM 密钥应具有过期日期
  • 使用 RSA 加密的 Azure Key Vault 托管 HSM 密钥应指定最小密钥大小
  • Azure Key Vault 托管 HSM 密钥的过期前天数应超过指定的天数
  • 使用椭圆曲线加密的 Azure Key Vault 托管 HSM 密钥应具有指定的曲线名称

也可以使用 Azure CLI 执行此操作。 请参阅使用 Azure CLI 创建策略分配以识别不合规的资源

测试设置

尝试更新/创建违反规则的密钥,如果策略分配包含效果“拒绝”,则它将对请求返回 403。 查看审核策略分配的清单密钥扫描结果。 12 小时后,检查策略的“合规性”菜单,按“密钥保管库”类别进行筛选,并找到你的分配。 选择其中的每个分配,以检查合规性结果报告。

故障排除

如果在一天后没有池的合规性结果。 检查是否已在步骤 2 中成功完成角色分配。 如果未成功完成步骤 2,则密钥治理服务无法访问密钥的元数据。 Azure CLI az keyvault role assignment list 命令可以验证是否已分配角色。

后续步骤