通过 MSI 令牌获取访问权限期间出现 Key Vault 403

Key Vault 403 during getting access via MSI token

我需要通过 MSI 从我的密钥库获取访问令牌。

  1. 我按照guide启用MSI。 MSI 已启用且必要 已安装扩展程序。
  2. 我执行此 guide 来为我的 VM 添加 Key Vault 的访问控制。 VM 是 KeyVault 的贡献者
  3. 我尝试根据这个 guide 获得 AC,当我尝试访问 Key Vault 时获得 403。

第 3 步详细信息:

  1. curl http://localhost:50342/oauth2/token --data "resource=https://vault.azure.net" -H Metadata:true
  2. curl https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01 -H "Authorization: Bearer <ACCESS TOKEN>"

当我 运行 步骤 2 出现 403 错误。

我试图将“https://vault.azure.net”替换为 'https://',但出现另一个错误:

{"error":"invalid_resource","error_description":"AADSTS50001: The application named https://<YOUR-KEY-VAULT-URL> was not found in the tenant named <A tenant ID>.This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant.\r\nTrace ID: 7365f8f5-791f-4131-88f8-9466cadc4d00\r\nCorrelation ID: e18e0e5e-966e-460b-9b61-16decf97dff4\r\nTimestamp: 2017-12-12 11:18:01Z","error_codes":[50001],"timestamp":"2017-12-12 11:18:01Z","trace_id":"7365f8f5-791f-4131-88f8-9466cadc4d00","correlation_id":"e18e0e5e-966e-460b-9b61-16decf97dff4"}

怎么了?

您必须在 Key Vault 的策略 中添加 VM 服务主体。在 Key Vault 上拥有 Contributor 允许委托人通过 ARM API 执行操作,但它需要访问的是 Key Vault API。这需要您在“策略”选项卡上为主体添加一些权限。