我按照教程(下面*) 现在有了服务负责人。 在使用Get-AzureStorageBlob读取blob时,如何使用此Service Principal? Get-AzureStorageBlob需要一个New-AzureStorageContext,我可以使用SP而不是StorageAccountKey guid吗? 谢谢,彼得
答案 0 :(得分:2)
据我所知,您无法使用SPN访问blob存储中的项目。您需要使用访问密钥或SAS令牌。
答案 1 :(得分:1)
最近,Azure添加了一个选项,用于使用RBAC管理对Azure存储数据的访问权限。您需要将范围为存储帐户的内置RBAC角色之一添加到服务主体。
Storage Blob Data Contributor (Preview)
Storage Blob Data Reader (Preview)
然后,如果要使用AzureCLI通过服务主体访问Blob存储
使用服务主体登录
$ az login --service-principal --tenant contoso.onmicrosoft.com -u http://azure-cli-2016-08-05-14-31-15 -p VerySecret \
启用预览扩展
$ az extension add -n storage-preview
在您的AzureCLI命令中使用--auth-mode参数
$ az storage blob download --account-name storagesamples --container sample-container --name myblob.txt --file myfile.txt --auth-mode login
有关更多信息,请参见:
Manage access rights to Azure Storage data with RBAC (Preview)
Use an Azure AD identity to access Azure Storage with CLI or PowerShell (Preview)
答案 2 :(得分:0)
如果您的SPN只有读者角色,则无法访问没有SAS或帐户密钥的存储空间。 您可以将SPN设置为参与者角色,并为其他普通用户创建SAS。 然后切换到其他普通用户使用SAS访问存储。