为什么“具有公共访问权限的 Azure VM 磁盘”的建议步骤指向启用与专用终结点的专用访问链接,而不是仅仅禁用 VM 磁盘上的公共访问。 我尝试手动禁用公共访问,但没有看到任何影响。如果禁用公共访问可行,那么我正在考虑申请 `# 连接到 Azure 连接-AzAccount
# Get all VM disks with public access enabled
$disks = Get-AzDisk | Where-Object { $_.DiskState -eq 'Attached' -and $_.DiskSizeGB -gt 0 -and $\_.PublicAccess -eq 'Enabled' }
# Disable public access for each disk
foreach ($disk in $disks) {
Write-Host "Disabling public access for disk $($disk.Name)..."
# Update the disk with public access disabled
$disk | Set-AzDiskAccess -Access Read -DisallowPublicAccess
Write-Host "Public access disabled for disk $($disk.Name)."
}
试图找出保持合规性的最佳和最简单的方法。
为
Private Endpoint with Private Access Link
磁盘启用 Azure VM
将为访问磁盘提供更多安全性和控制,但不会阻止来自其他 Azure resources
或 Azure Virtual Network
内的访问。
如果禁用
Azure VM
磁盘上的公共访问,将限制来自公共互联网的访问,并且不会提供与使用 Private Endpoint and Private Access Link
相同级别的隔离和控制。
建议将
Private Endpoint
与 Private Access Link
用于具有公共访问权限的 Azure VM
磁盘,旨在提供符合网络安全最佳实践的高度安全的解决方案。
以下是更新后的脚本,用于禁用所有已启用公共访问的 VM 磁盘上的公共访问。
#Get all VM disks with public access enabled
$disks = Get-AzDisk | Where-Object { $_.DiskState -eq 'Attached' -and $_.DiskSizeGB -gt 0 -and $_.PublicAccess -eq 'Enabled' }
#Disable public access for each disk
foreach ($disk in $disks) {
Write-Host "Disabling public access for disk $($disk.Name)..."
# Update the disk with public access disabled
$disk | New-AzDiskUpdateConfig -PublicNetworkAccess "Disabled" -NetworkAccessPolicy "AllowPrivate"
Write-Host "Public access disabled for disk $($disk.Name)."
}
输出:
在这里,这实际上可以禁用所有磁盘上的公共访问(不使用专用端点)
$disks = Get-AzDisk |其中对象 {$_.PublicNetworkAccess -eq '启用'} foreach ($disk in $disks) {$disk | $disk New-AzDiskUpdateConfig -PublicNetworkAccess“已禁用”-NetworkAccessPolicy“DenyAll”|更新-AzDisk -resourcegroup $($disk.resourcegroupname) -diskname $($disk.name)}