排查 Azure Key Vault 访问策略问题
常见问题
我无法列出或获取机密/密钥/证书。 我看到“出现问题”错误
如果在列出/获取/创建或访问机密时遇到问题,请确保已定义访问策略来执行该操作:密钥保管库访问策略
如何确定访问密钥保管库的方式和时间?
在创建一个或多个 Key Vault 之后,可能需要监视 Key Vault 的访问方式、时间和访问者。 可以通过为 Azure 密钥保管库启用日志记录执行监视,有关启用日志记录的分步指南,请了解详细信息。
如何监视保管库可用性、服务延迟周期或密钥保管库的其他性能指标?
当你开始缩放服务时,发送到密钥保管库的请求数量将会增加。 此类需求有可能会增加请求的延迟,并且在极端情况下,可能会导致请求受到限制,从而降低服务的性能。 你可以监视密钥保管库性能指标,并获得特定阈值的警报,有关配置监视的分步指南,请了解详细信息。
我无法修改访问策略,如何启用它?
用户需要有足够的 Microsoft Entra 权限才能修改访问策略。 在这种情况下,用户需要具有更高级的参与者角色。
我看到“未知策略”错误。 这意味着什么?
在“未知”部分显示访问策略有两个原因:
- 以前的用户拥有访问权限,但该用户不再存在。
- 访问策略是通过 PowerShell 添加的,使用应用程序 objectid 而不是服务主体。
如何为每个密钥保管库对象分配访问控制?
应避免在单个密钥、机密和证书上分配角色。 常规指南的例外情况:
必须在多个应用程序之间共享单个机密的场景,例如,一个应用程序需要访问来自其他应用程序的数据
如何使用访问控制策略提供密钥保管库身份验证?
向密钥保管库对基于云的应用程序进行身份验证的最简单方法是使用托管标识;有关详细信息,请参阅向 Azure 密钥保管库进行身份验证。 创建本地应用程序、执行本地开发或者无法使用托管标识时,可以改为手动注册服务主体,并使用访问控制策略提供对密钥保管库的访问权限。 请参阅分配访问控制策略。
如何为 AD 组授予对密钥保管库的访问权限?
使用 Azure CLI az keyvault set-policy
命令或 Azure PowerShell Set-AzKeyVaultAccessPolicy cmdlet,向 AD 组授予对密钥保管库的权限。 请参阅分配访问策略 - CLI 和分配访问策略 - PowerShell。
应用程序还需要将至少一个标识和访问管理 (IAM) 角色分配给密钥保管库。 否则,它将无法登录并且会失败,因为没有足够权限来访问订阅。 具有托管标识的 Microsoft Entra 组可能需要很多小时才能刷新令牌并使之生效。 请参阅使用托管标识进行授权的限制
如何在不删除现有访问策略的情况下,使用 ARM 模板重新部署 Key Vault?
目前,重新部署 Key Vault 会删除 Key Vault 中的所有访问策略,并将其替换为 ARM 模板中的访问策略。 Key Vault 访问策略没有增量选项。 若要在 Key Vault 中保留访问策略,需要读取 Key Vault 中现有的访问策略,并使用这些策略填充 ARM 模板以避免任何访问中断。
有助于此方案的另一种方法是将 Azure RBAC 和角色用作访问策略的替代方法。 通过 Azure RBAC,无需再次指定策略即可重新部署密钥保管库。 可在此处详细了解此解决方案。
以下错误类型的建议故障排除步骤
- HTTP 401:未经身份验证的请求 - 故障排除步骤
- HTTP 403:权限不足 - 故障排除步骤
- HTTP 429:请求过多 - 故障排除步骤
- 检查你是否对密钥保管库具有删除访问权限:请参阅分配访问策略 - CLI、分配访问策略。
- 如果在代码中向密钥保管库进行身份验证时遇到问题,请使用身份验证 SDK
如果密钥保管库受到限制,我应该实施哪些最佳做法?
请遵循此处记录的最佳做法
后续步骤
了解如何对密钥保管库身份验证错误进行故障排除:密钥保管库故障排除指南。