Share via


A PaaS-erőforrásokhoz való hálózati hozzáférés korlátozása virtuális hálózati szolgáltatásvégpontokkal az Azure CLI használatával

Virtuális hálózati szolgáltatásvégpontokkal egy adott virtuális hálózati alhálózatra korlátozható az egyes Azure-szolgáltatási erőforrásokhoz való hálózati hozzáférés. Emellett teljesen le is tiltható az internetes hozzáférés az erőforrásokhoz. A szolgáltatásvégpontok közvetlen csatlakozást biztosítanak a virtuális hálózat és a támogatott Azure-szolgáltatások között, így lehetővé teszik a virtuális hálózat magáncímterének használatát az Azure-szolgáltatások eléréséhez. A szolgáltatásvégpontokon keresztül az Azure-erőforrások felé irányuló forgalom mindig a Microsoft Azure gerinchálózatán marad. Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Virtuális hálózat létrehozása egyetlen alhálózattal
  • Alhálózat hozzáadása és szolgáltatásvégpont engedélyezése
  • Azure-erőforrás létrehozása és hálózati hozzáférés engedélyezése az erőforráshoz egyetlen alhálózatról
  • Virtuális gép (VM) üzembe helyezése az egyes alhálózatokon
  • Erőforráshoz való alhálózati hozzáférés ellenőrzése
  • Erőforráshoz való alhálózati és internetes hozzáférés letiltásának ellenőrzése

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

  • Ez a cikk az Azure CLI 2.0.28-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Virtuális hálózat létrehozása

A virtuális hálózat létrehozása előtt létre kell hoznia egy erőforráscsoportot a virtuális hálózathoz, valamint a cikkben létrehozott összes többi erőforrást. Hozzon létre egy erőforráscsoportot az az group create paranccsal. A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot az eastus helyen.

az group create \
  --name myResourceGroup \
  --location eastus

Hozzon létre egy virtuális hálózatot egy alhálózattal az az network vnet create használatával.

az network vnet create \
  --name myVirtualNetwork \
  --resource-group myResourceGroup \
  --address-prefix 10.0.0.0/16 \
  --subnet-name Public \
  --subnet-prefix 10.0.0.0/24

Szolgáltatásvégpont engedélyezése

A szolgáltatásvégpontok csak a szolgáltatásvégpontokat támogató szolgáltatások esetében engedélyezhetők. Az Azure-ban elérhető szolgáltatásvégpont-kompatibilis szolgáltatások megtekintése az az network vnet list-endpoint-services szolgáltatásokkal. Az alábbi példa az eastus régióban elérhető szolgáltatásvégpont-kompatibilis szolgáltatások listáját adja vissza. A visszaadott szolgáltatások listája idővel nőni fog, mivel több Azure-szolgáltatás válik engedélyezve a szolgáltatásvégponttá.

az network vnet list-endpoint-services \
  --location eastus \
  --out table

Hozzon létre egy további alhálózatot a virtuális hálózatban az az network vnet subnet create használatával. Ebben a példában a Microsoft.Storage szolgáltatásvégpontja jön létre az alhálózathoz:

az network vnet subnet create \
  --vnet-name myVirtualNetwork \
  --resource-group myResourceGroup \
  --name Private \
  --address-prefix 10.0.1.0/24 \
  --service-endpoints Microsoft.Storage

Alhálózat hálózati hozzáférésének korlátozása

Hozzon létre egy hálózati biztonsági csoportot az network nsg create használatával. Az alábbi példa létrehoz egy myNsgPrivate nevű hálózati biztonsági csoportot.

az network nsg create \
  --resource-group myResourceGroup \
  --name myNsgPrivate

Társítsa a hálózati biztonsági csoportot a Privát alhálózathoz az az network vnet alhálózat frissítésével. Az alábbi példa a myNsgPrivate hálózati biztonsági csoportot társítja a privát alhálózathoz:

az network vnet subnet update \
  --vnet-name myVirtualNetwork \
  --name Private \
  --resource-group myResourceGroup \
  --network-security-group myNsgPrivate

Hozzon létre biztonsági szabályokat az az network nsg rule create használatával. Az alábbi szabály engedélyezi a kimenő hozzáférést az Azure Storage szolgáltatáshoz rendelt nyilvános IP-címekhez:

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsgPrivate \
  --name Allow-Storage-All \
  --access Allow \
  --protocol "*" \
  --direction Outbound \
  --priority 100 \
  --source-address-prefix "VirtualNetwork" \
  --source-port-range "*" \
  --destination-address-prefix "Storage" \
  --destination-port-range "*"

Minden hálózati biztonsági csoport több alapértelmezett biztonsági szabályt tartalmaz. Az alábbi szabály felülbírálja az alapértelmezett biztonsági szabályt, amely lehetővé teszi az összes nyilvános IP-cím kimenő elérését. A destination-address-prefix "Internet" beállítás letiltja az összes nyilvános IP-cím kimenő elérését. Az előző szabály felülírja ezt a szabályt a magasabb prioritás miatt, amely lehetővé teszi az Azure Storage nyilvános IP-címeinek elérését.

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsgPrivate \
  --name Deny-Internet-All \
  --access Deny \
  --protocol "*" \
  --direction Outbound \
  --priority 110 \
  --source-address-prefix "VirtualNetwork" \
  --source-port-range "*" \
  --destination-address-prefix "Internet" \
  --destination-port-range "*"

Az alábbi szabály bárhonnan engedélyezi az alhálózatra bejövő SSH-forgalmat. Ez a szabály felülbírálja azon alapértelmezett biztonsági szabályokat, amelyek elutasítanak minden bejövő forgalmat az internetről. Az SSH engedélyezve van az alhálózaton, hogy a kapcsolat egy későbbi lépésben tesztelhető legyen.

az network nsg rule create \
  --resource-group myResourceGroup \
  --nsg-name myNsgPrivate \
  --name Allow-SSH-All \
  --access Allow \
  --protocol Tcp \
  --direction Inbound \
  --priority 120 \
  --source-address-prefix "*" \
  --source-port-range "*" \
  --destination-address-prefix "VirtualNetwork" \
  --destination-port-range "22"

Erőforráshoz való hálózati hozzáférés korlátozása

A szolgáltatásvégpontok használatára képes Azure-szolgáltatásokkal létrehozott erőforrásokhoz való hálózati hozzáférés korlátozásának lépései szolgáltatásonként eltérőek. Az egyes szolgáltatásokhoz szükséges lépéseket az adott szolgáltatások dokumentációja tartalmazza. A cikk további része például az Azure Storage-fiókok hálózati hozzáférésének korlátozására vonatkozó lépéseket tartalmazza.

Tárfiók létrehozása

Hozzon létre egy Azure Storage-fiókot az az storage account create használatával. Cserélje le <replace-with-your-unique-storage-account-name> az összes Azure-helyen egyedi, 3–24 karakter hosszúságú névre, csak számok és kisbetűk használatával.

storageAcctName="<replace-with-your-unique-storage-account-name>"

az storage account create \
  --name $storageAcctName \
  --resource-group myResourceGroup \
  --sku Standard_LRS \
  --kind StorageV2

A tárfiók létrehozása után kérje le a tárfiók kapcsolati sztring egy változóba az az storage account show-connection-string használatával. A kapcsolati sztring egy későbbi lépésben hoz létre fájlmegosztást.

saConnectionString=$(az storage account show-connection-string \
  --name $storageAcctName \
  --resource-group myResourceGroup \
  --query 'connectionString' \
  --out tsv)

Tekintse meg a változó tartalmát, és jegyezze fel a kimenetben visszaadott AccountKey értékét, mert azt egy későbbi lépésben használják.

echo $saConnectionString

Fájlmegosztás létrehozása a tárfiókban

Hozzon létre egy fájlmegosztást a tárfiókban az az storage share create használatával. Egy későbbi lépésben ez a fájlmegosztás csatlakoztatva van a hálózathoz való hozzáférés megerősítéséhez.

az storage share create \
  --name my-file-share \
  --quota 2048 \
  --connection-string $saConnectionString > /dev/null

Tárfiókhoz való összes hálózati hozzáférés megtagadása

Alapértelmezés szerint a tárfiókok bármely hálózatban lévő ügyféltől érkező hálózati kapcsolatokat elfogadnak. A kijelölt hálózatokhoz való hozzáférés korlátozásához módosítsa az alapértelmezett műveletet a Megtagadás értékre az az storage-fiók frissítésével. Ha a hálózati hozzáférés le van tiltva, a tárfiók egyetlen hálózatról sem érhető el.

az storage account update \
  --name $storageAcctName \
  --resource-group myResourceGroup \
  --default-action Deny

Hálózati hozzáférés engedélyezése alhálózatról

Engedélyezze a tárfiókhoz való hálózati hozzáférést a privát alhálózatról az az storage account network-rule add használatával.

az storage account network-rule add \
  --resource-group myResourceGroup \
  --account-name $storageAcctName \
  --vnet-name myVirtualNetwork \
  --subnet Private

Virtuális gépek létrehozása

Tárfiókhoz való hálózati hozzáférés teszteléséhez helyezzen üzembe egy virtuális gépet minden alhálózaton.

Az első virtuális gép létrehozása

Hozzon létre egy virtuális gépet a nyilvános alhálózatban az az vm create használatával. Ha az SSH-kulcsok még nem léteznek a kulcsok alapértelmezett helyén, a parancs létrehozza őket. Ha konkrét kulcsokat szeretné használni, használja az --ssh-key-value beállítást.

az vm create \
  --resource-group myResourceGroup \
  --name myVmPublic \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet Public \
  --generate-ssh-keys

A virtuális gép üzembe helyezése néhány percet vesz igénybe. A virtuális gép létrehozása után az Azure CLI az alábbi példához hasonló információkat jelenít meg:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVmPublic",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "myResourceGroup"
}

Jegyezze fel a publicIpAddress függvényt a visszaadott kimenetben. Ezzel a címmel érheti el a virtuális gépet az internetről egy későbbi lépésben.

A második virtuális gép létrehozása

az vm create \
  --resource-group myResourceGroup \
  --name myVmPrivate \
  --image Ubuntu2204 \
  --vnet-name myVirtualNetwork \
  --subnet Private \
  --generate-ssh-keys

A virtuális gép üzembe helyezése néhány percet vesz igénybe. A létrehozás után jegyezze fel a publicIpAddress függvényt a visszaadott kimenetben. Ezzel a címmel érheti el a virtuális gépet az internetről egy későbbi lépésben.

Tárfiókhoz való hozzáférés ellenőrzése

SSH a myVmPrivate virtuális gépbe. Cserélje le a publicIpAddress elemet> a myVmPrivate virtuális gép nyilvános IP-címére.<

ssh <publicIpAddress>

Hozzon létre egy mappát egy csatlakoztatási ponthoz:

sudo mkdir /mnt/MyAzureFileShare

Csatlakoztassa az Azure-fájlmegosztást a létrehozott könyvtárhoz. A következő parancs futtatása előtt cserélje le <storage-account-name> a fiók nevére és <storage-account-key> a tárfiók létrehozásakor lekért kulcsra.

sudo mount --types cifs //<storage-account-name>.file.core.windows.net/my-file-share /mnt/MyAzureFileShare --options vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino

Ekkor megjelenik a user@myVmPrivate:~$ kérdés. Az Azure-fájlmegosztás sikeresen csatlakoztatva van az /mnt/MyAzureFileShare fájlhoz.

Győződjön meg arról, hogy a virtuális gép nem rendelkezik kimenő kapcsolattal más nyilvános IP-címekhez:

ping bing.com -c 4

Nem kap választ, mert a Magánjellegű alhálózathoz rendelt hálózati biztonsági csoport nem engedélyezi a kimenő hozzáférést olyan nyilvános IP-címekhez, amelyek nem az Azure Storage szolgáltatáshoz rendelt címek.

Lépjen ki az SSH-munkamenetből a myVmPrivate virtuális gépre.

Tárfiókhoz való hozzáférés letiltásának ellenőrzése

Az alábbi paranccsal hozzon létre egy SSH-munkamenetet a myVmPublic virtuális géppel. Cserélje le <publicIpAddress> a myVmPublic virtuális gép nyilvános IP-címére:

ssh <publicIpAddress>

Hozzon létre egy könyvtárat egy csatlakoztatási ponthoz:

sudo mkdir /mnt/MyAzureFileShare

Próbálja meg csatlakoztatni az Azure-fájlmegosztást a létrehozott könyvtárhoz. Ez a cikk feltételezi, hogy az Ubuntu legújabb verzióját telepítette. Ha az Ubuntu korábbi verzióit használja, a fájlmegosztások csatlakoztatásával kapcsolatos további utasításokért tekintse meg a Linuxon való csatlakoztatást ismertető cikket. A következő parancs futtatása előtt cserélje le <storage-account-name> a fiók nevére és <storage-account-key> a tárfiók létrehozásakor lekért kulcsra:

sudo mount --types cifs //storage-account-name>.file.core.windows.net/my-file-share /mnt/MyAzureFileShare --options vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino

A hozzáférés megtagadva, és hibaüzenet jelenik mount error(13): Permission denied meg, mert a myVmPublic virtuális gép a nyilvános alhálózaton belül van üzembe helyezve. A Nyilvános alhálózat nem rendelkezik az Azure Storage-hoz engedélyezett szolgáltatásvégponttal, és a tárfiók kizárólag a Magánjellegű alhálózatról engedélyezi a hozzáférést, a Nyilvános alhálózatról nem.

Lépjen ki az SSH-munkamenetből a myVmPublic virtuális gépre.

A számítógépen próbálja meg megtekinteni a tárfiókban lévő megosztásokat az az storage share listával. Cserélje le és írja be <account-name> a tárfiók nevét és kulcsát a tárfiók létrehozásakor:<account-key>

az storage share list \
  --account-name <account-name> \
  --account-key <account-key>

A hozzáférés megtagadva, és ez a kérés nem jogosult a művelet végrehajtására, mert a számítógép nincs a MyVirtualNetwork virtuális hálózat privát alhálózatán.

Clean up resources

Ha már nincs rá szükség, az az group delete használatával távolítsa el az erőforráscsoportot és az összes benne lévő erőforrást.

az group delete --name myResourceGroup --yes

Következő lépések

Ebben a cikkben engedélyezte egy szolgáltatásvégpontot egy virtuális hálózati alhálózathoz. Megismerte, hogy az Azure-szolgáltatásokkal üzembe helyezett erőforrásokhoz szolgáltatásvégpontok engedélyezhetők. Létrehozott egy Azure Storage-fiókot, és egy adott virtuális hálózati alhálózat erőforrásaira korlátozta a fiók felé irányuló hálózati hozzáférést. További információkat a szolgáltatásvégpontokról a szolgáltatásvégpontok áttekintését és az alhálózatok kezelését ismertető cikkekben olvashat.

Ha több virtuális hálózat található a fiókjában, érdemes lehet összekapcsolni két virtuális hálózatot, hogy az egyes virtuális hálózatokban található erőforrások kommunikálhassanak egymással. További információ: Csatlakozás virtuális hálózatok.