azure - 从 Azure 自动化帐户运行时 Get-AzureBlobContent 抛出错误

标签 azure azure-storage azure-blob-storage azure-powershell azure-automation

我在尝试通过我的 Azure 自动化帐户从 Azure 存储帐户下载 blob(JSON 文件)时遇到失败。看起来像是授权问题。

这适用于我的本地笔记本电脑,但不适用于 Azure 自动化帐户。即使我将容器设置为“公共(public)”也不起作用

我已为资源组(自动化帐户 + 存储帐户保留在该 RG 中)上的自动化帐户服务原则分配了所有者权限,特别是在存储帐户上:

enter image description here

下面是代码:

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

$config_file_resource_group_name = "vg-datalake-manjunath"
$config_file_storage_account_name = "datalakelog"
$primary_key = (Get-AzureRmStorageAccountKey -ResourceGroupName $config_file_resource_group_name -AccountName $config_file_storage_account_name).value[0]
 $config_file_context = New-AzureStorageContext -StorageAccountName $config_file_storage_account_name -StorageAccountKey $primary_key

 Get-AzureStorageBlobContent -Blob "mw_services.json" -Container "fwconfigfiles" -Destination "C:\temp\mw_services.json" -Context $config_file_context

 get-content "C:\temp\mw_services.json" | write-output

错误:

Get-AzureStorageBlobContent : The remote server returned an error: (403) Forbidden. HTTP Status Code: 403 - HTTP Error 
Message: This request is not authorized to perform this operation.
At line:30 char:2
+  Get-AzureStorageBlobContent -Blob "mw_services.json" -Container "fwc ...
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Get-AzureStorageBlobContent], StorageException
    + FullyQualifiedErrorId : 
StorageException,Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet.GetAzureStorageBlobContentCommand

最佳答案

可能的原因是您可能配置了选择的网络来访问。 enter image description here

如果您启用此选项,并且无论您是否勾选“允许受信任的 Microsoft 服务访问”,您都会收到此错误,因为自动化未在 MS 受信任的服务下列出。请参阅https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security#trusted-microsoft-servicesenter image description here

关于azure - 从 Azure 自动化帐户运行时 Get-AzureBlobContent 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56129973/

相关文章:

azure - 规则引擎在 Azure 上的流分析中意味着什么?

azure - 如何更改部署在Azure Web App中的Wiki JS favicon?

azure - 从 Microsoft azure 恢复已删除的 Web 应用程序

java - 如何通过java代码访问和创建azure存储帐户的生命周期规则/生命周期管理策略

Azure表存储触发移动通知

c# - 如何从 Azure BLOB 中的目录获取所有文件

c# - Azure 存储 blob 无法加载文件或程序集“System.Diagnostics.DiagnosticSource,Version=4.0.4.0,Culture=neutral,PublicKeyToken=cc7b13ffcd”

Azure 云服务文件系统访问

c# - 在将 botauth 与 Azure 表存储结合使用时,登录的用户上下文也在新对话中使用

c# - 如何从Azure Blob存储中的Hadoop AvroContainer删除记录?