我尝试将用户分配的托管身份与DefaultAzureCredential
一起使用,但得到403权限不匹配错误。我按照MS文档中的代码示例操作,但仍然失败。但是,将DefaultAzureCredential
替换为显式ManagedIdentityCredential
效果很好。
这是我的代码:
const { BlobServiceClient } = require('@azure/storage-blob');
const { DefaultAzureCredential } = require('@azure/identity');
const {url, clientId} = require('./config');
const cred = new DefaultAzureCredential({managedIdentityClientId: clientId});
const containerClient = new BlobServiceClient(url, cred).getContainerClient('container-name');
(async () => {
const exists = await containerClient.exists();
console.log({exists});
})();
这看起来应该能用,但没有用,有什么想法吗?
版本:
- "@ Azure /身份":"^1.1.0",
- "@azure/存储块":"^12.12.0",
- 节点v16.18.1
1条答案
按热度按时间8aqjt8rx1#
403,此请求未被授权使用此权限执行此操作。
如果要使用标识访问存储帐户,则需要类似**Storage-blob-contributor或storage-blob-owner**的角色。
转至门户-〉您的存储帐户-〉访问控制(IAM)-〉添加-〉添加角色分配-〉storage-blob-contributor或storage-blob-owner-〉添加您的用户托管身份ID。
此外,我尝试使用用户分配的托管标识与
DefaultAzureCredential
,它工作得很好。