在容器上获取和创建存储的访问策略会导致404,找不到资源



我有一个Gen2 Azure存储帐户,并尝试使用Powershell在容器上创建存储访问策略。我已登录该帐户,并选择了相关订阅。我将上下文保存在一个变量中,供以下语句进一步使用。

Connect-AzAccount
Set-AzContext -Subscription "<subscriptionid>"
$context = New-AzStorageContext -StorageAccountName "MyStorageAccount" -UseConnectedAccount

创建存储访问策略失败,所以我通过门户手动添加了一个,并试图获得策略列表:

Get-AzStorageContainerStoredAccessPolicy -Container "MyContainer" -Context $context

这导致错误Get-AzStorageContainerStoredAccessPolicy: The specified resource does not exist.;New AzStorageContainerStoredAccessPolicy";命令让步了。使用-Policy参数添加现有策略的名称不会更改结果,也不会更改容器的访问级别。

我想我也可以排除打字错误,因为Get-AzStorageContainer "MyContainer" -Context $context按预期提供了容器的详细信息。

我不清楚不存在的是什么资源,因为容器显然存在,而且它还包含至少一个存储的访问策略。容器存储的访问策略命令是否不能在Gen2存储帐户上使用,或者我是否缺少其他内容?

这是因为Oauth不支持Get/New-AzStorageContainerStoredAccessPolicy。您可以找到Oauth支持的所有操作https://learn.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftstorage.

作为一种变通方法,您可以使用连接字符串来执行此操作:

Connect-AzAccount
Set-AzContext -Subscription "<subscriptionid>"
$context = New-AzStorageContext -ConnectionString "<Connection string>"
Get-AzStorageContainerStoredAccessPolicy -Container "<Container Name>" -Context $context

Github中的相同问题:https://github.com/Azure/azure-powershell/issues/10391.

最新更新