【问题标题】:use Service Principal when reading azure blob读取 azure blob 时使用服务主体
【发布时间】:2016-08-11 20:00:52
【问题描述】:

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

【问题讨论】:

    标签: azure service blob principal


    【解决方案1】:

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

    【讨论】:

    • 谢谢唐。我不想使用访问密钥,因为我不想在我的源代码中加入秘密。所以最好的选择是sas,对吧?或者我可以将访问密钥放在密钥库中并使用 SPN 进入密钥库吗?
    • SAS 令牌或密钥的密钥库存储都可以很好地工作。
    【解决方案2】:

    最近,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)

    【讨论】:

      【解决方案3】:

      如果您的 SPN 仅具有读取者角色,则您无法访问没有 SAS 或帐户密钥的存储。 您可以将 SPN 分配给参与者角色并为其他普通用户创建 SAS。 然后切换到其他普通用户以使用 SAS 访问存储。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-27
        • 1970-01-01
        • 2020-10-26
        • 1970-01-01
        • 2020-07-06
        • 2018-07-30
        • 2020-01-31
        • 2021-10-18
        相关资源
        最近更新 更多