Blobadatokhoz való névtelen olvasási hozzáférés szervizelése (klasszikus üzemelő példányok)
Az Azure Blob Storage támogatja a tárolókhoz és blobokhoz való opcionális névtelen olvasási hozzáférést. A névtelen hozzáférés azonban biztonsági kockázatot jelenthet. Javasoljuk, hogy az optimális biztonság érdekében tiltsa le a névtelen hozzáférést. A névtelen hozzáférés letiltása segít megelőzni a nem kívánt névtelen hozzáférés által okozott adatsértéseket.
Alapértelmezés szerint a blobadatokhoz való névtelen hozzáférés mindig tilos. A klasszikus tárfiókok alapértelmezett konfigurációja azonban lehetővé teszi, hogy a megfelelő engedélyekkel rendelkező felhasználók névtelen hozzáférést konfiguráljanak egy tárfiók tárolóihoz és blobjaihoz. A klasszikus tárfiókokhoz való névtelen hozzáférés megakadályozásához konfigurálnia kell a fiókban lévő összes tárolót a névtelen hozzáférés letiltásához.
Ha a tárfiókja a klasszikus üzemi modellt használja, javasoljuk, hogy mihamarabb migráljon az Azure Resource Manager-alapú üzemi modellbe. A fiók áttelepítése után konfigurálhatja úgy, hogy a fiók szintjén tiltsa le a névtelen hozzáférést. Az Azure Resource Manager-fiókok névtelen hozzáférésének letiltásáról további információt a blobadatok névtelen olvasási hozzáférésének szervizelése (Azure Resource Manager-környezetek) című témakörben talál.
Ha jelenleg nem tudja migrálni a klasszikus tárfiókokat, akkor az összes tároló privátra állításával orvosolnia kell a fiókok névtelen elérését. Ez a cikk azt ismerteti, hogyan lehet kijavítani a tárolókhoz való hozzáférést egy klasszikus tárfiókban.
A klasszikus üzemi modellt használó Azure Storage-fiókok 2024. augusztus 31-én megszűnnek. További információ: A klasszikus Azure-tárfiókok 2024. augusztus 31-én megszűnnek.
Figyelmeztetés:
A névtelen hozzáférés biztonsági kockázatot jelent. Javasoljuk, hogy az alábbi szakaszban leírt műveleteket elvégezve elhárítsa az összes klasszikus tárfiók névtelen hozzáférését, kivéve, ha a forgatókönyv kifejezetten névtelen hozzáférést igényel.
Tárolókhoz való névtelen hozzáférés letiltása
A klasszikus tárfiókok névtelen hozzáférésének szervizeléséhez állítsa a fiókban lévő tárolók névtelen hozzáférési szintjét privátra.
Ha névtelen hozzáférést szeretne biztosítani egy vagy több tárolóhoz az Azure Portalon, kövesse az alábbi lépéseket:
Nyissa meg a tárfiók áttekintését az Azure Portalon.
A menüpanel Adattárolás területén válassza a Blob-tárolók lehetőséget.
Válassza ki azokat a tárolókat, amelyekhez meg szeretné adni a névtelen hozzáférési szintet.
A hozzáférési beállítások megjelenítéséhez használja a Hozzáférési szint módosítása gombot.
A Névtelen hozzáférési szint legördülő menüben válassza a Privát (névtelen hozzáférés nélküli) lehetőséget, majd az OK gombra kattintva alkalmazza a módosítást a kijelölt tárolókra.
Tárolók névtelen hozzáférési beállításának ellenőrzése
A tárolók listázásával és a névtelen hozzáférési beállítás ellenőrzésével ellenőrizhető, hogy egy vagy több tárfiók mely tárolói vannak konfigurálva névtelen hozzáférésre. Ez a megközelítés gyakorlati megoldás, ha egy tárfiók nem tartalmaz nagy számú tárolót, vagy ha kis számú tárfiókban ellenőrzi a beállítást. A teljesítmény azonban szenvedhet, ha nagy számú tárolót próbál számba adni.
Az alábbi példa a PowerShell használatával lekéri a tárfiók összes tárolójának névtelen hozzáférési beállítását. Ne felejtse el lecserélni a zárójelek helyőrző értékeit a saját értékeire:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess
Mintaszkript tömeges szervizeléshez
Az alábbi PowerShell-példaszkript az előfizetésben lévő összes klasszikus tárfiókon fut, és az ezekben a fiókokban lévő tárolók névtelen hozzáférési beállítását privátra állítja.
Figyelmeztetés
A szkript nagyon sok tárolóval rendelkező tárfiókon való futtatása jelentős erőforrásokat igényelhet, és hosszú időt vehet igénybe. Ha nagyon sok tárolóval rendelkező tárfiókja van, érdemes lehet egy másik módszert kidolgozni a névtelen hozzáférés szervizelésére.
# This script runs against all classic storage accounts in a single subscription
# and sets containers to private.
## IMPORTANT ##
# Running this script requires a connected account through the previous version
# of Azure PowerShell. Use the following command to install:
# Install-Module Azure -scope CurrentUser -force
#
# Once installed, you will need to connect with:
# Add-AzureAccount
#
# This command may fail if there are modules installed that conflict with it.
# One known conflicting module is AzureRm.Accounts
# You will need to remove conflicting modules using the following:
# Remove-Module -name <name>
#
# The Azure PowerShell module assumes a current subscription when enumerating
# storage accounts. You can set the current subscription with:
# Select-AzureSubscription -subscriptionId <subscriptionId>
#
# Get-AzureSubscription lists all subscriptions available to the Azure
# module. Not all subscriptions listed under your name in the portal may
# appear here. If a subscription does not appear, you may need to use
# the portal to remediate public access for those accounts.
# After you have selected your subscription, verify that it is current
# by running:
# Get-AzureSubscription -current
#
# After the current subscription runs, you can run this script, change
# to another subscription after it completes, and then run again as necessary.
## END IMPORTANT##
# Standard operation will enumerate all accounts and check for containers with public
# access, then allow the user to decide whether or not to disable the setting.
# Run with BypassConfirmation=$true if you wish to remove permissions from all containers
# without individual confirmation
# Run with BypassArmUpgrade=$true if you wish to upgrade your storage account to use the
# Azure Resource Manager deployment model. All accounts must be upgraded by 31 August 2024.
param(
[boolean]$BypassConfirmation=$false,
[boolean]$BypassArmUpgrade=$false
)
#Do not change this
$convertAccounts = $false
foreach($classicAccount in Get-AzureStorageAccount)
{
$enumerate = $false
if(!$BypassArmUpgrade)
{
write-host "Classic Storage Account" $classicAccount.storageAccountname "found"
$confirmation = read-host "Convert to ARM? [y/n]:"
}
if(($confirmation -eq 'y') -and (!$BypassArmUpgrade))
{
write-host "Conversion selected"
$convertAccounts = $true
}
else
{
write-host $classicAccount.StorageAccountName "conversion not selected. Searching for public containers..."
$enumerate = $true
}
if($enumerate)
{
foreach($container in get-azurestoragecontainer -context (get-azurestorageaccount -storageaccountname $classicAccount.StorageAccountName).context)
{
if($container.PublicAccess -eq 'Off')
{
}
else
{
if(!$BypassConfirmation)
{
$selection = read-host $container.Name $container.PublicAccess "access found, Make private?[y/n]:"
}
if(($selection -eq 'y') -or ($BypassConfirmation))
{
write-host "Removing permissions from" $container.name "container on storage account" $classicaccount.StorageAccountName
try
{
Set-AzureStorageContainerAcl -context $classicAccount.context -name $container.name -Permission Off
write-host "Success!"
}
catch
{
$_
}
}
else
{
write-host "Skipping..."
}
}
}
}
}
if($convertAccounts)
{
write-host "Converting accounts to ARM is the preferred method, however there are some caveats."
write-host "The preferred method would be to use the portal to perform the conversions and then "
write-host "run the ARM script against them. For more information on converting a classic account"
write-host "to an ARM account, please see:"
write-host "https://learn.microsoft.com/en-us/azure/virtual-machines/migration-classic-resource-manager-overview"
}
write-host "Script complete"