Ćwiczenie — Ograniczanie dostępu do usługi Azure Storage za pomocą punktów końcowych usługi
Jako architekt rozwiązań planujesz przeniesienie poufnych plików schematów technicznych do usługi Azure Storage. Pliki te muszą być dostępne tylko z komputerów w sieci firmowej. Chcesz utworzyć punkt końcowy usługi sieci wirtualnej dla usługi Azure Storage, aby zabezpieczyć połączenia z kontami magazynu.
W tej lekcji utworzysz punkt końcowy usługi i użyjesz reguł sieci, aby ograniczyć dostęp do usługi Azure Storage. Utworzysz punkt końcowy usługi dla sieci wirtualnej dla usługi Azure Storage w podsieci Databases. Następnie sprawdzisz, czy maszyna wirtualna DataServer może uzyskać dostęp do usługi Azure Storage. Na koniec sprawdzisz, czy maszyna wirtualna AppServer, która znajduje się w innej podsieci, nie może uzyskać dostępu do magazynu.
Dodawanie reguł do sieciowej grupy zabezpieczeń
W tym miejscu upewnisz się, że komunikacja z usługą Azure Storage przechodzi przez punkt końcowy usługi. Dodasz reguły ruchu wychodzącego, aby zezwolić na dostęp do usługi Storage, ale odmówić całego innego ruchu internetowego.
Aby utworzyć regułę ruchu wychodzącego, aby zezwolić na dostęp do magazynu, uruchom następujące polecenie w usłudze 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"
Aby utworzyć regułę ruchu wychodzącego w celu odmowy całego dostępu do Internetu, uruchom następujące polecenie w usłudze 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."
Teraz sieciowa grupa zabezpieczeń ERP-SERVERS-NSG powinna zawierać następujące reguły:
Nazwa reguły | Kierunek | Priorytet | Purpose |
---|---|---|---|
AllowSSHRule | Przychodzący | 100 | Zezwalaj na przychodzący ruch SSH |
httpRule | Przychodzący | 150 | Odmów z maszyny wirtualnej DataServer do maszyny wirtualnej AppServer na porcie 80 |
Allow_Storage | Wychodzący | 190 | Zezwalaj na dostęp do usługi Azure Storage |
Deny_Internet | Wychodzący | 200 | Odmów dostępu do Internetu z sieci wirtualnej |
W tym momencie zarówno maszyna wirtualna AppServer, jak i maszyna wirtualna DataServer mają dostęp do usługi Azure Storage.
Konfigurowanie konta magazynu i udziału plików
W tym kroku utworzysz nowe konto magazynu, a następnie dodasz udział plików platformy Azure do tego konta. Ten udział plików to miejsce, w którym będziesz przechowywać diagramy inżynieryjne.
Aby utworzyć konto magazynu dla dokumentów inżynieryjnych, uruchom następujące polecenie w usłudze Cloud Shell:
STORAGEACCT=$(az storage account create \ --resource-group $rg \ --name engineeringdocs$RANDOM \ --sku Standard_LRS \ --query "name" | tr -d '"')
Aby zapisać klucz podstawowy konta magazynu w zmiennej, uruchom następujące polecenie w usłudze Cloud Shell:
STORAGEKEY=$(az storage account keys list \ --resource-group $rg \ --account-name $STORAGEACCT \ --query "[0].value" | tr -d '"')
Aby utworzyć udział plików platformy Azure o nazwie erp-data-share, uruchom następujące polecenie w usłudze Cloud Shell:
az storage share create \ --account-name $STORAGEACCT \ --account-key $STORAGEKEY \ --name "erp-data-share"
Włączanie punktu końcowego usługi
Teraz należy skonfigurować konto magazynu tak, aby było dostępne tylko z serwerów baz danych, przypisując punkt końcowy magazynu do podsieci Databases . Następnie należy dodać regułę zabezpieczeń do konta magazynu.
Aby przypisać punkt końcowy Microsoft.Storage do podsieci, uruchom następujące polecenie w usłudze Cloud Shell:
az network vnet subnet update \ --vnet-name ERP-servers \ --resource-group $rg \ --name Databases \ --service-endpoints Microsoft.Storage
Aby odmówić dostępu, zmień domyślną akcję na
Deny
, uruchamiając następujące polecenie w usłudze Cloud Shell. Po odmowie dostępu do sieci konto magazynu nie jest dostępne z żadnej sieci.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Aby ograniczyć dostęp do konta magazynu, uruchom następujące polecenie w usłudze Cloud Shell. Domyślnie kota magazynu są otwarte, aby akceptować cały ruch. Chcesz, aby tylko ruch z podsieci Databases mógł uzyskiwać dostęp do magazynu.
az storage account network-rule add \ --resource-group $rg \ --account-name $STORAGEACCT \ --vnet-name ERP-servers \ --subnet Databases
Testowanie dostępu do zasobów magazynu
W tym kroku połączysz się z obydwoma serwerami i sprawdzisz, czy tylko maszyna wirtualna DataServer ma dostęp do udziału plików platformy Azure na koncie magazynu.
Aby zapisać publiczne adresy IP maszyny wirtualnej AppServer i maszyny wirtualnej DataServer do zmiennych, uruchom następujące polecenie w usłudze 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)"
Aby nawiązać połączenie z maszyną wirtualną AppServer i spróbować zainstalować udział plików platformy Azure, uruchom następujące polecenie w usłudze 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"
Wprowadź hasło, które zostało użyte podczas tworzenia maszyny wirtualnej.
Odpowiedź powinna zawierać komunikat
mount error
. To połączenie nie jest dozwolone, ponieważ nie ma punktu końcowego usługi dla konta magazynu w podsieci Applications .Aby nawiązać połączenie z maszyną wirtualną DataServer i spróbować zainstalować udział plików platformy Azure, uruchom następujące polecenie w usłudze 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"
Wprowadź hasło, które zostało użyte podczas tworzenia maszyny wirtualnej.
Instalacja powinna zakończyć się powodzeniem, a odpowiedź powinna zawierać szczegóły punktu instalacji. Jest to dozwolone, ponieważ utworzono punkt końcowy usługi dla konta magazynu w podsieci Databases.
Teraz masz pewność, że maszyna wirtualna DataServer może uzyskiwać dostęp do magazynu przy użyciu punktu końcowego usługi magazynu w podsieci Databases. Sprawdzono również, że maszyna wirtualna AppServer nie może uzyskać dostępu do magazynu. Dzieje się tak, ponieważ ten serwer znajduje się w innej podsieci i nie ma dostępu do punktu końcowego usługi sieci wirtualnej.