用户在抛出值的 Azure 函数中分配的托管标识不能为空
User assigned managed identity in azure functions throwing value cannot be null
我有一个使用 power shell 6.2 创建的 http post azure 函数。它需要访问 Azure Key Vault 才能检索机密。
当我分配系统分配的托管身份时,它工作得很好。但是,在使用用户分配的托管标识执行时出现附加错误。
到目前为止我做了什么。
- 在 Azure 托管身份服务下创建了用户分配的托管身份。
- 在我的 KeyVault 访问控制 (IAM) 中添加了贡献者角色 -> 在分配访问权限下拉列表中,我选择了用户分配的托管标识。
- 此外,在 KeyVault 访问策略部分中,添加了新创建的用户分配身份,具有获取和列出秘密权限
- 最终在 azure 函数的标识选项卡中添加了新用户分配的托管标识。
我读到用户分配的托管标识需要 clinet_id,但不知道在 azure 函数的 post 请求中在哪里配置它。
使用REST协议,可以参考this article追加一个clientid
这样的查询参数,
GET /MSI/token?resource=https://vault.azure.net&api-version=2017-09-01&clientid=xxxx
使用SDK,可以在连接字符串中指定clientid
,参考https://docs.microsoft.com/en-us/azure/key-vault/service-to-service-authentication#connection-string-support
PowerShell 函数的解决方法在这里:https://github.com/Azure/azure-functions-host/issues/5797#issuecomment-601864473
我有一个使用 power shell 6.2 创建的 http post azure 函数。它需要访问 Azure Key Vault 才能检索机密。 当我分配系统分配的托管身份时,它工作得很好。但是,在使用用户分配的托管标识执行时出现附加错误。
到目前为止我做了什么。
- 在 Azure 托管身份服务下创建了用户分配的托管身份。
- 在我的 KeyVault 访问控制 (IAM) 中添加了贡献者角色 -> 在分配访问权限下拉列表中,我选择了用户分配的托管标识。
- 此外,在 KeyVault 访问策略部分中,添加了新创建的用户分配身份,具有获取和列出秘密权限
- 最终在 azure 函数的标识选项卡中添加了新用户分配的托管标识。
我读到用户分配的托管标识需要 clinet_id,但不知道在 azure 函数的 post 请求中在哪里配置它。
使用REST协议,可以参考this article追加一个clientid
这样的查询参数,
GET /MSI/token?resource=https://vault.azure.net&api-version=2017-09-01&clientid=xxxx
使用SDK,可以在连接字符串中指定clientid
,参考https://docs.microsoft.com/en-us/azure/key-vault/service-to-service-authentication#connection-string-support
PowerShell 函数的解决方法在这里:https://github.com/Azure/azure-functions-host/issues/5797#issuecomment-601864473