【发布时间】:2019-05-22 17:15:55
【问题描述】:
我在尝试从我的 Azure 自动化帐户从 Azure 存储帐户下载 blob(JSON 文件)时收到错误消息。它看起来像一个授权问题。
这适用于我的本地笔记本电脑,但不适用于 Azure 自动化帐户。即使我将容器“公开”也不起作用
我已为资源组(自动化帐户 + 存储帐户留在此 RG 中)上的自动化帐户服务原则分配 OWNER 权限,特别是在存储帐户上:
下面是代码:
$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
【问题讨论】:
-
这适用于我的本地笔记本电脑,但不适用于 Azure 自动化帐户。即使我将容器“公开”也不起作用
-
请检查存储帐户是否属于虚拟网络或防火墙。这可能是导致此错误的原因。
-
看这里:docs.microsoft.com/en-us/azure/storage/common/…,我相信 Azure 自动化不是受信任的 Azure 服务的一部分。不知道为什么这不是受信任服务的一部分:)。
-
请在 MSDN 论坛上查看此帖子:social.technet.microsoft.com/Forums/en-US/…。看起来您需要查找 Azure 自动化服务的 IP 地址并添加一个例外。
标签: azure azure-storage azure-blob-storage azure-powershell azure-automation