您可以拒絕記憶體帳戶的所有公用存取,然後設定 Azure 網路設定以接受來自特定虛擬網路子網的要求。 若要深入瞭解,請參閱 虛擬網路子網。
若要將虛擬網路規則套用至記憶體帳戶,用戶必須具有所新增子網的適當許可權。 具有 Azure 資源提供者作業許可權的Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action記憶體帳戶參與者或使用者可以使用自定義 Azure 角色來套用規則。
建立虛擬網路規則
備註
如果您想要從另一個Microsoft Entra 租使用者中的虛擬網路啟用存取權,您必須使用 PowerShell 或 Azure CLI。 Azure 入口網站 不會在其他Microsoft Entra 租用戶中顯示子網。
移至您要設定虛擬網路和存取規則的記憶體帳戶。
在服務功能表的 [ 安全性 + 網路] 底下,選取 [網路],然後在 [資源設定:虛擬網路、IP 位址和例外狀況] 底下,選取 [ 檢視]。
在 [虛擬網络] 底下,選取 [新增現有的虛擬網络]。
[ 新增網络] 窗格隨即出現。
從[ 虛擬網络] 下拉式清單中,選取虛擬網路。
從 [ 子網] 下拉式清單中,選取所需的子網,然後選取 [ 新增]。
如果您需要建立新的虛擬網路,請選取 [新增虛擬網络]。 提供建立新虛擬網路所需的資訊,並選取 [建立]。 只有屬於同一個 Microsoft Entra 租戶的虛擬網路才會在建立規則時可供選擇。 若要授與屬於另一個租使用者之虛擬網路中子網的存取權,請使用PowerShell、Azure CLI 或REST API。
若要移除虛擬網路或子網規則,請選取省略號 (...) 以開啟虛擬網路或子網的作功能表,然後選取 [ 移除]。
選取 [儲存] 以套用變更。
這很重要
如果您刪除網路規則中包含的子網,則會從記憶體帳戶的網路規則中移除該子網。 如果您建立具有相同名稱的新子網,它將無法存取記憶體帳戶。 若要允許存取,您必須在儲存體帳戶的網路規則中明確授權新的子網路。
安裝 Azure PowerShell 並 登入。
若要僅允許來自特定虛擬網路的流量,請使用 Update-AzStorageAccountNetworkRuleSet 命令,並將 -DefaultAction 參數設定為 Deny:
Update-AzStorageAccountNetworkRuleSet -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -DefaultAction Deny
這很重要
除非您將-DefaultAction參數設定為Deny,否則網路規則不會有任何作用。 但變更此設定可能會影響應用程式連線至 Azure 儲存體的能力。 在您變更此設定之前,請務必授與任何允許網路的存取權,或透過私人端點設定存取權。
列出虛擬網路規則:
(Get-AzStorageAccountNetworkRuleSet -ResourceGroupName "myresourcegroup" -AccountName "mystorageaccount").VirtualNetworkRules
啟用現有虛擬網路和子網路上的 Azure 儲存體服務端點:
Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Set-AzVirtualNetworkSubnetConfig -Name "mysubnet" -AddressPrefix "10.0.0.0/24" -ServiceEndpoint "Microsoft.Storage.Global" | Set-AzVirtualNetwork
為虛擬網路和子網路新增網路規則:
$subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"
Add-AzStorageAccountNetworkRule -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -VirtualNetworkResourceId $subnet.Id
若要為屬於另一個 Microsoft Entra 租用戶之虛擬網路中的子網路新增網路規則,請使用完整的 VirtualNetworkResourceId 參數,格式為 /subscriptions/subscription-ID/resourceGroups/resourceGroup-Name/providers/Microsoft.Network/virtualNetworks/vNet-name/subnets/subnet-name。
移除虛擬網路和子網路的網路規則:
$subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"
Remove-AzStorageAccountNetworkRule -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -VirtualNetworkResourceId $subnet.Id
安裝 Azure CLI 並 登入。
若要僅允許來自特定虛擬網路的流量,請使用 az storage account update 命令,並將 --default-action 參數設定為 Deny:
az storage account update --resource-group "myresourcegroup" --name "mystorageaccount" --default-action Deny
這很重要
除非您將--default-action參數設定為Deny,否則網路規則不會有任何作用。 但變更此設定可能會影響應用程式連線至 Azure 儲存體的能力。 在您變更此設定之前,請務必授與任何允許網路的存取權,或透過私人端點設定存取權。
列出虛擬網路規則:
az storage account network-rule list --resource-group "myresourcegroup" --account-name "mystorageaccount" --query virtualNetworkRules
啟用現有虛擬網路和子網路上的 Azure 儲存體服務端點:
az network vnet subnet update --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --service-endpoints "Microsoft.Storage.Global"
為虛擬網路和子網路新增網路規則:
subnetid=$(az network vnet subnet show --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --query id --output tsv)
az storage account network-rule add --resource-group "myresourcegroup" --account-name "mystorageaccount" --subnet $subnetid
若要為屬於另一個 Microsoft Entra 租用戶的虛擬網路子網路新增規則,請使用完整的子網路識別碼,格式為 /subscriptions/<subscription-ID>/resourceGroups/<resourceGroup-Name>/providers/Microsoft.Network/virtualNetworks/<vNet-name>/subnets/<subnet-name>。 您可以使用 subscription 參數,為屬於另一個 Microsoft Entra 租用戶的虛擬網路擷取子網路識別碼。
移除虛擬網路和子網路的網路規則:
subnetid=$(az network vnet subnet show --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --query id --output tsv)
az storage account network-rule remove --resource-group "myresourcegroup" --account-name "mystorageaccount" --subnet $subnetid
另請參閱