Azure 存储帐户阻止容器创建的网络规则
按照的说明进行操作 看起来默认存储帐户中有什么东西阻止了创建新容器的能力;然而,Azure 存储帐户阻止容器创建的网络规则,azure,azure-cli,Azure,Azure Cli,按照的说明进行操作 看起来默认存储帐户中有什么东西阻止了创建新容器的能力;然而,“defaultAction”是允许的: 以下Azure CLI: az storage container create --account-name meaningfulname --name nancy --auth-mode login 。。。导致错误的原因可能是解释存储帐户的网络规则: The request may be blocked by network rules of storage accou
“defaultAction”
是允许的
:
以下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'.
使用上述消息中的建议,帐户名称上的“show”命令给出:
> az storage account show -n meaningfulname --query networkRuleSet
{
"bypass": "AzureServices",
"defaultAction": "Allow",
"ipRules": [],
"virtualNetworkRules": []
}
我认为Azure CLI将是可以绕过并执行操作的“服务”之一。而且,在我看来,默认的行为是相当宽容的
我已经通过错误消息和命令(以及变体)进行了搜索。在我不知道的Azure CLI的怪癖方面,似乎没有太多的内容,所以这可能是显而易见的,以至于人们没有写任何东西。我认为我没有复制当前的
网络规则集
配置就足够了。我无法使用与您相同的networkRuleSet
配置重现此问题。因此,在创建容器或查询networkRuleSet
时,您可以仔细检查存储帐户是否有打字错误
默认情况下,存储帐户接受来自任何网络上客户端的连接。要限制对选定网络的访问,必须首先更改默认操作
如果您只需要允许从某些特定IP地址或特定子网访问您的存储帐户并允许Azure服务,您可以这样添加它
{
"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
有关更多详细信息,请参阅
编辑
在本例中,您将
--auth mode
参数设置为登录。您需要确保您登录Azure CLI的Azure AD安全主体具有针对Blob或队列存储执行数据操作的权限。有关Azure存储中RBAC角色的更多信息,请参阅。不确定这是否有用
如果使用CLI更新存储帐户的“防火墙和虚拟网络”部分并使其可用于所有网络,则需要一些时间才能生效。我观察到,大约需要10-30秒才能生效
尝试等待30秒,然后尝试az container create语句。它应该可以工作。尽管选择的答案不同 可能还有另一个原因,就像我的情况一样。在创建Microsoft文档中所述的容器之前,您需要担任该角色 在创建容器之前,请分配存储Blob数据 贡献者角色给你自己。即使您是帐户所有者, 您需要显式权限才能对数据库执行数据操作 存储帐户 还要注意 Azure角色分配可能需要几分钟才能传播 从命令中删除
--auth模式登录
。像这样使用它:
az存储容器创建\
--帐户名helloworld12345\
--名称图像\
--公共访问容器
如果我们不设置--auth模式
,它将使用默认的auth模式键
。它将查询存储帐户中的帐户密钥
如果命令中需要RBAC角色,请使用
--auth模式登录。有关存储中RBAC角色的更多信息,请访问。存储帐户是否有防火墙限制?我不知道是否添加了防火墙限制。我以为az存储帐户show-n…
正在查询这个。是否有其他方法确定是否存在防火墙限制?(我认为ipRules
等同于防火墙限制)您能检查我的编辑是否有用吗?