我正在 Runbook 中运行 Get-AzStorageBlob 命令。 自动化帐户具有存储 Blob 数据贡献者角色。使用系统分配的托管身份。 但我收到此错误:
Get-AzStorageBlob : This request is not authorized to perform this operation.
执行的命令
`$ctx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount
$blobs = Get-AzStorageBlob -Container $containerName -Context $ctx | Select-Object -Property Name`
此请求无权执行此操作。
当您没有适当的权限或存在可能阻止访问存储帐户的网络设置时,就会出现上述错误。
检查门户中的网络设置。
传送门:
如果它与选定的网络或专用端点连接,您可以参考此MS-Document。
在我的环境中,我创建了自动化帐户,并赋予系统管理身份
Storage Blob Data Contributor
角色。
传送门:
现在我在 azure 自动化中运行下面的脚本来获取 blob 列表。
脚本:
$subscription = "xxxx"
$identity = "1xxx"
$storageAccountName = "venkat6781"
$containerName = "test"
$null = Disable-AzContextAutosave -Scope Process # Ensures you do not inherit an AzContext in your runbook
$AzureContext = (Connect-AzAccount -Identity -AccountId $identity).context # Connect to Azure with user-assigned managed identity
$connectionResult = Set-AzContext -Subscription $subscription -DefaultProfile $AzureContext
$connectionResult
$ctx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount
$blobs = Get-AzStorageBlob -Container $containerName -Context $ctx | Select-Object -Property Name
foreach ($blob in $blobs) {
Write-Output $blob.Name
}
输出:
Name : Default
Subscription : 158bxxxxxxdd048f
Account : 1b3bxfb4f9c755bxxxx
Environment : AzureCloud
Tenant : 226xxd40283xxx
TokenCache :
VersionProfile :
ExtendedProperties : {}
001.csv
002.csv
003.csv
004.csv
sample.mp4
参考: