阅读azure blob时使用Service Principal

时间:2016-08-11 20:00:52

标签: azure service blob principal

我按照教程(下面*) 现在有了服务负责人。 在使用Get-AzureStorageBlob读取blob时,如何使用此Service Principal? Get-AzureStorageBlob需要一个New-AzureStorageContext,我可以使用SP而不是StorageAccountKey guid吗? 谢谢,彼得

3 个答案:

答案 0 :(得分:2)

据我所知,您无法使用SPN访问blob存储中的项目。您需要使用访问密钥或SAS令牌。

答案 1 :(得分:1)

最近,Azure添加了一个选项,用于使用RBAC管理对Azure存储数据的访问权限。您需要将范围为存储帐户的内置RBAC角色之一添加到服务主体。

  • Storage Blob Data Contributor (Preview)
  • Storage Blob Data Reader (Preview)

然后,如果要使用AzureCLI通过服务主体访问Blob存储

  1. 使用服务主体登录

    $ az login --service-principal --tenant contoso.onmicrosoft.com -u http://azure-cli-2016-08-05-14-31-15 -p VerySecret \
    
  2. 启用预览扩展

    $ az extension add -n storage-preview
    
  3. 在您的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访问存储。