排查 Azure 密钥保管库访问策略问题

常见问题

我无法列出或获取机密/密钥/证书。 我看到“出现了问题。”错误。

如果在列出/获取/创建或访问机密时遇到问题,请确保已定义访问策略来执行该操作:密钥保管库访问策略

如何确定访问密钥保管库的方式和时间?

在创建一个或多个 Key Vault 之后,可能需要监视 Key Vault 的访问方式、时间和访问者。 可以通过为 Azure 密钥保管库启用日志记录执行监视,有关启用日志记录的分步指南,请了解详细信息

如何监视保管库可用性、服务延迟周期或密钥保管库的其他性能指标?

当你开始缩放服务时,发送到密钥保管库的请求数量将会增加。 此类需求有可能会增加请求的延迟,并且在极端情况下,可能会导致请求受到限制,从而影响服务的性能。 你可以监视密钥保管库性能指标,并获得特定阈值的警报,有关配置监视的分步指南,请了解详细信息

我无法修改访问策略,如何启用它?

用户需要有足够的 AAD 权限才能修改访问策略。 在这种情况下,用户需要具有更高级的参与者角色。

我看到“未知策略”错误。 这是什么意思?

在“未知”部分中看到访问策略,可能有两种不同的情况:

  • 可能有以前的用户具有访问权限,而由于某种原因,该用户已不存在。
  • 如果通过 powershell 添加了访问策略,并为应用程序 objectid 而不是服务主体添加了访问策略。

如何为每个密钥保管库对象分配访问控制?

密钥保管库 RBAC 权限模型允许基于对象的权限。 单个密钥、机密和证书权限应仅用于特定场景:

  • 需要在层之间分离访问控制的多层应用程序

  • 在多个应用程序之间共享单个机密

如何使用访问控制策略提供密钥保管库身份验证?

向密钥保管库对基于云的应用程序进行身份验证的最简单方法是使用托管标识;有关详细信息,请参阅向 Azure 密钥保管库进行身份验证。 创建本地应用程序、执行本地开发或者无法使用托管标识时,可以改为手动注册服务主体,并使用访问控制策略提供对 Key Vault 的访问权限。 请参阅分配访问控制策略

如何为 AD 组授予对密钥保管库的访问权限?

使用 Azure CLI az keyvault set-policy 命令或 Azure PowerShell Set-AzKeyVaultAccessPolicy cmdlet,向 AD 组授予对密钥保管库的权限。 请参阅分配访问策略 - CLI分配访问策略 - PowerShell

应用程序还需要将至少一个标识和访问管理 (IAM) 角色分配给密钥保管库。 否则,它将无法登录并且会失败,因为没有足够权限来访问订阅。 具有托管标识的 Azure AD 组可能最多需要 8 小时才能刷新令牌并生效。

如何在不删除现有访问策略的情况下,使用 ARM 模板重新部署 Key Vault?

目前,重新部署密钥保管库会删除密钥保管库中的所有访问策略,并将其替换为 ARM 模板中的访问策略。 Key Vault 访问策略没有增量选项。 若要在 Key Vault 中保留访问策略,需要读取 Key Vault 中现有的访问策略,并使用这些策略填充 ARM 模板以避免任何访问中断。

有助于此方案的另一种方法是将 Azure RBAC 和角色用作访问策略的替代方法。 通过 Azure RBAC,无需再次指定策略即可重新部署密钥保管库。 可在此处详细了解此解决方案。

如果密钥保管库受到限制,我应该实施哪些最佳做法?

请遵循此处记录的最佳做法

后续步骤

了解如何对密钥保管库身份验证错误进行故障排除:密钥保管库故障排除指南