【问题标题】:Azure Key Vault Service Principle Authentication FailingAzure Key Vault 服务主体身份验证失败
【发布时间】:2020-10-21 00:48:27
【问题描述】:

为此苦苦挣扎了一天,终于寻求帮助。我正在尝试使用 Azure Key Vault 在 Typescript 应用程序中存储一些配置。我在 Azure Active Directory 和 Key Vault 中创建了服务原则。在 Key Vault 中,我进入了角色分配,并为应用赋予了 Key Vault Secrets User 角色(应该提供列表和读取权限)。据我所知,我的应用程序已成功通过身份验证,但是当它请求密钥时,它会收到 403。我可能会遗漏哪一步?

表明身份验证成功的日志 azure:identity:info IdentityClient: [https://login.microsoftonline.com/38e3589f-a40f-4fe6-beee-f4028442450e/oauth2/v2.0/token] token acquired, expires on 1593536920022

记录失败 The user, group or application 'appid=355ca45f-a94f-43e6-9234-65c713965c9b;oid=524f25bb-ee3f-4216-8474-1f01fd79f1f8;iss=https://sts.windows.net/38e3589f-a40f-4fe6-beee-f4028442450e/' does not have secrets get permission on key vault '<MyVault>;location=westus2'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287

【问题讨论】:

    标签: azure-keyvault service-principal


    【解决方案1】:

    我错过的步骤是添加访问策略。我不明白访问控制 (IAM) 和访问策略之间的区别,所以我不明白为什么两者都是必需的。希望这对其他人有帮助。

    【讨论】:

      【解决方案2】:

      我不明白访问控制 (IAM) 和访问策略之间的区别,所以我不明白为什么两者都是必需的。

      其实要访问keyvault中的secret,Access Policies的权限就足够了。

      keyvault的访问分为管理平面(Access control (IAM))和数据平面(Access Policies)两部分。

      管理平面中的权限可让您管理密钥库,例如设置 Key Vault 标签,数据平面中的权限让您可以对秘密、密钥、证书进行操作。

      在您的情况下,即使您在Access control (IAM) 中为应用程序(服务主体)赋予 RBAC 角色,它也没有访问密钥的权限,因此您需要将其添加到 access policies

      您应该注意的是某些角色有权添加访问策略,例如Contributor,这意味着如果您将角色赋予您的应用程序,它将能够将自己添加到访问策略中。但是如果它不将自己添加到访问策略中,它将没有数据平面的权限。

      更多细节,你可以参考这个文档 - Secure access to a key vault

      【讨论】:

        猜你喜欢
        • 2023-04-10
        • 2018-11-03
        • 2019-03-13
        • 2019-08-27
        • 2019-02-03
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 2018-04-06
        相关资源
        最近更新 更多