按照the Azure CLI "quickstart" on creating a blob的指示进行。
似乎默认存储帐户中的某个内容阻止了创建新容器的功能;但是,"defaultAction"
是Allow
:
以下Azure CLI:
az storage container create --account-name meaningfulname --name nancy --auth-mode login
...导致解释存储帐户的网络规则的错误可能是原因:
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'.
使用以上消息的建议,帐户名上的“显示”命令给出:
> az storage account show -n meaningfulname --query networkRuleSet
{
"bypass": "AzureServices",
"defaultAction": "Allow",
"ipRules": [],
"virtualNetworkRules": []
}
我认为Azure CLI将成为可以bypass并执行操作的“服务”。而且,在我看来,默认操作是相当宽松的。
我已经完成了根据错误消息和命令(以及变体)进行搜索的工作。我不知道Azure CLI的怪异之处似乎没有很多,所以也许这是如此明显,以至于人们还没有编写任何东西。我不认为我在重复
当前的networkRuleSet
配置已足够。我无法使用与您相同的networkRuleSet
配置来重现此问题。因此,您可以在创建容器或查询networkRuleSet
时再次检查存储帐户是否有错字。
默认情况下,存储帐户接受来自任何网络上客户端的连接。要限制对选定网络的访问,必须首先更改默认操作。
如果只需要允许某些特定的IP地址或特定的子网,则可以像这样添加它,
{
"bypass": "AzureServices",
"defaultAction": "Deny",
"ipRules": [
{
"action": "Allow",
"ipAddressOrRange": "100.100.100.100"
}
],
"virtualNetworkRules": [
{
"action": "Allow",
"virtualNetworkResourceId": "subnetID"
}
]
}
使用Azure CLI,设置默认规则以默认允许网络访问。
az storage account update --resource-group "myresourcegroup" --name "mystorageaccount" --default-action Deny
az storage account update --resource-group "myresourcegroup" --name "mystorageaccount" --default-action Allow
请参见Change the default network access rule以获取更多详细信息。