存储帐户阻止容器创建的网络规则

len*_*rds 9 azure azure-cli

按照有关创建 blob 的 Azure CLI“快速入门”说明进行操作。

看起来默认存储帐户中的某些内容阻止了创建新容器的能力;然而,"defaultAction"Allow

以下 Azure CLI:

az storage container create --account-name meaningfulname --name nancy --auth-mode login
Run Code Online (Sandbox Code Playgroud)

...导致错误解释存储帐户的网络规则可能是原因:

The request may be blocked by network rules of storage account. Please check network rule set using 'az storage account show -n accountname --query networkRuleSet'.
If you want to change the default action to apply when no rule matches, please use 'az storage account update'.
Run Code Online (Sandbox Code Playgroud)

使用上述消息中的建议,帐户名称上的“show”命令给出:

> az storage account show -n meaningfulname --query networkRuleSet
{
  "bypass": "AzureServices",
  "defaultAction": "Allow",
  "ipRules": [],
  "virtualNetworkRules": []
}
Run Code Online (Sandbox Code Playgroud)

我认为 Azure CLI 将属于可以绕过并执行操作的“服务”之一。而且,在我看来,默认操作是相当宽松的。

我已经通过错误消息和命令(和变体)进行了搜索。似乎没有太多我不知道的 Azure CLI 的怪癖,所以也许这太明显了,以至于人们没有写任何东西。我不认为我在复制

Vay*_*aya 5

不确定这是否有帮助......

如果您使用 CLI 更新存储帐户的“防火墙和虚拟网络”部分并使其可供所有网络访问,则需要一些时间才能生效。我观察到大约需要 10 -30 秒才能生效。

尝试等待 30 秒,然后尝试 az container create 语句。它应该有效。


小智 5

虽然选择的答案不同。

就像我的情况一样,可能还有另一个原因。您需要先担任该角色,然后才能创建容器,如 Microsoft 文档所述

在创建容器之前,请为您自己分配存储 Blob 数据贡献者角色。即使您是帐户所有者,您也需要明确的权限才能针对存储帐户执行数据操作。

另请注意

Azure 角色分配可能需要几分钟才能传播。