Oefening: Toegang tot Azure Storage beperken met behulp van service-eindpunten
Als oplossingsarchitect bent u van plan gevoelige technische diagrambestanden naar Azure Storage te verplaatsen. De bestanden mogen alleen toegankelijk zijn vanaf computers binnen het bedrijfsnetwerk. U wilt een service-eindpunt voor virtueel netwerk maken voor Azure Storage om de verbinding met uw opslagaccounts te beveiligen.
In dit onderdeel maakt u een service-eindpunt en gebruikt u netwerkregels om de toegang tot Azure Storage te beperken. U maakt een service-eindpunt voor virtueel netwerk voor Azure Storage op het subnet Databases. U kunt vervolgens controleren of uw DataServer-VM toegang heeft tot Azure Storage. Ten slotte controleert u of de AppServer-VM, die zich op een ander subnet bevindt, geen toegang heeft tot Azure Storage.
Hiermee worden regels aan de netwerkbeveiligingsgroep toegevoegd
Hier zorgt u ervoor dat de communicatie met Azure Storage het service-eindpunt passeert. U voegt uitgaande regels toe om toegang tot de Storage-service toe te staan, maar alle andere internetverkeer te weigeren.
Als u een uitgaande regel wilt maken om toegang tot Storage toe te staan, voert u de volgende opdracht uit in Cloud Shell:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name Allow_Storage \ --priority 190 \ --direction Outbound \ --source-address-prefixes "VirtualNetwork" \ --source-port-ranges '*' \ --destination-address-prefixes "Storage" \ --destination-port-ranges '*' \ --access Allow \ --protocol '*' \ --description "Allow access to Azure Storage"
Als u een uitgaande regel wilt maken om alle internettoegang te weigeren, voert u de volgende opdracht uit in Cloud Shell:
az network nsg rule create \ --resource-group $rg \ --nsg-name ERP-SERVERS-NSG \ --name Deny_Internet \ --priority 200 \ --direction Outbound \ --source-address-prefixes "VirtualNetwork" \ --source-port-ranges '*' \ --destination-address-prefixes "Internet" \ --destination-port-ranges '*' \ --access Deny \ --protocol '*' \ --description "Deny access to Internet."
U hebt nu de volgende regels in ERP-SERVERS-NSG:
Naam van de regel | Richting | Prioriteit | Doel |
---|---|---|---|
AllowSSHRule | Inkomend | 100 | Inkomende SSH toestaan |
httpRule | Inkomend | 150 | DataServer aan AppServer op 80 weigeren |
Allow_Storage | Uitgaand | 190 | Toegang tot Azure Storage toestaan |
Deny_Internet | Uitgaand | 200 | Toegang tot Internet vanaf VNet weigeren |
Op dit moment hebben AppServer en DataServer toegang tot de Azure Storage-service.
Een Azure-opslagaccount en een bestandsshare configureren
In deze stap maakt u een nieuw opslagaccount en voegt u vervolgens een Azure-bestandsshare toe aan dit account. Deze bestandsshare is de plek waar u uw technische diagrammen opslaat.
Als u een opslagaccount voor technische documenten wilt maken, voert u de volgende opdracht uit in Cloud Shell:
STORAGEACCT=$(az storage account create \ --resource-group $rg \ --name engineeringdocs$RANDOM \ --sku Standard_LRS \ --query "name" | tr -d '"')
Als u de primaire sleutel van uw opslagaccount in een variabele wilt opslaan, voert u de volgende opdracht uit in Cloud Shell:
STORAGEKEY=$(az storage account keys list \ --resource-group $rg \ --account-name $STORAGEACCT \ --query "[0].value" | tr -d '"')
Als u een Azure-bestandsshare met de naam erp-data-share wilt maken, voert u de volgende opdracht uit in Cloud Shell:
az storage share create \ --account-name $STORAGEACCT \ --account-key $STORAGEKEY \ --name "erp-data-share"
Het service-eindpunt inschakelen
U moet nu configureren dat het opslagaccount alleen toegankelijk is vanaf databaseservers door het opslageindpunt toe te wijzen aan het subnet Databases . Vervolgens moet u een beveiligingsregel toevoegen aan het opslagaccount.
Als u het Microsoft.Storage-eindpunt wilt toewijzen aan het subnet, voert u de volgende opdracht uit in Cloud Shell:
az network vnet subnet update \ --vnet-name ERP-servers \ --resource-group $rg \ --name Databases \ --service-endpoints Microsoft.Storage
Als u alle toegang wilt weigeren, wijzigt u de standaardactie
Deny
in door de volgende opdracht uit te voeren in Cloud Shell. Nadat de netwerktoegang is geweigerd, is het opslagaccount niet toegankelijk vanuit een netwerk.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Als u de toegang tot het opslagaccount wilt beperken, voert u de volgende opdracht uit in Cloud Shell. Opslagaccounts zijn standaard geopend om al het verkeer te accepteren. U wilt dat alleen verkeer van het subnet Databases toegang heeft tot de opslag.
az storage account network-rule add \ --resource-group $rg \ --account-name $STORAGEACCT \ --vnet-name ERP-servers \ --subnet Databases
Toegang tot storage-resources testen
In deze stap maakt u verbinding met beide servers en controleert u of alleen DataServer toegang heeft tot de Azure-bestandsshare in het opslagaccount.
Als u de openbare IP-adressen van AppServer en DataServer wilt opslaan in variabelen, voert u de volgende opdracht uit in Cloud Shell:
APPSERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name AppServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)" DATASERVERIP="$(az vm list-ip-addresses \ --resource-group $rg \ --name DataServer \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
Als u verbinding wilt maken met uw AppServer-VM en de Azure-bestandsshare wilt koppelen, voert u de volgende opdracht uit in Cloud Shell:
ssh -t azureuser@$APPSERVERIP \ "mkdir azureshare; \ sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \ -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,sec=ntlmssp; findmnt \ -t cifs; exit; bash"
Voer het wachtwoord in dat u hebt gebruikt bij het maken van de VM.
Het antwoord moet een bericht
mount error
bevatten. Deze verbinding is niet toegestaan omdat er geen service-eindpunt is voor het opslagaccount in het subnet Toepassingen .Als u verbinding wilt maken met uw DataServer-VM en de Azure-bestandsshare wilt koppelen, voert u de volgende opdracht uit in Cloud Shell:
ssh -t azureuser@$DATASERVERIP \ "mkdir azureshare; \ sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/erp-data-share azureshare \ -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,sec=ntlmssp;findmnt \ -t cifs; exit; bash"
Voer het wachtwoord in dat u hebt gebruikt bij het maken van de VM.
De koppeling moet slagen en het antwoord moet details van het koppelpunt bevatten. Dit is toegestaan omdat u het service-eindpunt voor het opslagaccount hebt gemaakt op het Databases-subnet.
U hebt nu geverifieerd dat DataServer toegang heeft tot opslag, door het service-eindpunt van de opslag te gebruiken op het subnet Databases. U hebt ook gecontroleerd dat AppServer geen toegang heeft tot de opslag. Dit komt doordat deze server zich in een ander subnet bevindt en geen toegang heeft tot het service-eindpunt van het virtuele netwerk.