Alıştırma - Hizmet uç noktalarını kullanarak Azure Depolama'ya erişimi kısıtlama
Çözüm mimarı olarak hassas mühendislik diyagramı dosyalarını Azure Depolama'ya taşımayı planlıyorsunuz. Dosyaların yalnızca şirket ağının içindeki bilgisayarlardan erişilebilir olması gerekiyor. Depolama hesaplarınıza bağlantının güvenliğini sağlamak amacıyla Azure Depolama için sanal ağ hizmet uç noktası oluşturmak istiyorsunuz.
Bu ünitede bir hizmet uç noktası oluşturacak ve Azure Depolama'ya erişimi kısıtlamak için ağ kuralları kullanacaksınız. Databases alt ağında Azure Depolama için bir sanal ağ hizmet uç noktası oluşturacaksınız. Ardından DataServer sanal makinenizin Azure Depolama'ya erişebildiğini doğrulayacaksınız. Son olarak, farklı bir alt ağda yer alan AppServer sanal makinesinin depolamaya erişemediğini göstereceksiniz.
Ağ güvenlik grubuna kuralları ekleme
Burada Azure Depolama ile iletişimin hizmet uç noktasından geçtiğinden emin olacaksınız. Depolama hizmetine erişime izin vermek için giden kuralları ekleyeceksiniz, ancak diğer tüm İnternet trafiğini reddedeceksiniz.
Depolama erişime izin veren bir giden kuralı oluşturmak için Cloud Shell'de aşağıdaki komutu çalıştırın:
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"
Tüm İnternet erişimini reddedecek bir giden kuralı oluşturmak için Cloud Shell'de aşağıdaki komutu çalıştırın:
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."
Artık ERP-SERVERS-NSG'de aşağıdaki kurallarınız olmalıdır:
Kural adı | Yön | Öncelik | Amaç |
---|---|---|---|
AllowSSHRule | Gelen | Kategori 100 | Gelen SSH'ye izin verme |
httpRule | Gelen | 150 | 80 numaralı bağlantı noktasında DataServer'dan AppServer'a reddetme |
Allow_Storage | Giden | 190 | Azure Depolama'ya erişime izin verme |
Deny_Internet | Giden | 200 | Sanal ağdan İnternet'e erişimi engelleme |
Bu noktada hem AppServer hem de DataServer'ın Azure Depolama hizmetine erişimi vardır.
Depolama hesabını ve dosya paylaşımını yapılandırma
Bu adımda yeni bir depolama hesabı oluşturacak ve ardından bu hesaba bir Azure dosya paylaşımı ekleyeceksiniz. Bu dosya paylaşımı, mühendislik diyagramlarınızı depoladığınız yerdir.
Mühendislik belgeleri için depolama hesabı oluşturmak için Cloud Shell'de aşağıdaki komutu çalıştırın:
STORAGEACCT=$(az storage account create \ --resource-group $rg \ --name engineeringdocs$RANDOM \ --sku Standard_LRS \ --query "name" | tr -d '"')
Depolama hesabınızın birincil anahtarını bir değişkende depolamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
STORAGEKEY=$(az storage account keys list \ --resource-group $rg \ --account-name $STORAGEACCT \ --query "[0].value" | tr -d '"')
erp-data-share adlı bir Azure dosya paylaşımı oluşturmak için Cloud Shell'de aşağıdaki komutu çalıştırın:
az storage share create \ --account-name $STORAGEACCT \ --account-key $STORAGEKEY \ --name "erp-data-share"
Hizmet uç noktasını etkinleştirme
Şimdi, depolama uç noktasını Veritabanları alt ağından atayarak depolama hesabını yalnızca veritabanı sunucularından erişilebilir olacak şekilde yapılandırmanız gerekir. Ardından depolama hesabına bir güvenlik kuralı eklemeniz gerekir.
Alt ağa Microsoft.Depolama uç noktasını atamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
az network vnet subnet update \ --vnet-name ERP-servers \ --resource-group $rg \ --name Databases \ --service-endpoints Microsoft.Storage
Tüm erişimi reddetmek için
Deny
Cloud Shell'de aşağıdaki komutu çalıştırarak varsayılan eylemi olarak değiştirin. Ağ erişimi reddedildikten sonra depolama hesabına herhangi bir ağdan erişilemez.az storage account update \ --resource-group $rg \ --name $STORAGEACCT \ --default-action Deny
Depolama hesabına erişimi kısıtlamak için Cloud Shell'de aşağıdaki komutu çalıştırın. Varsayılan olarak depolama hesapları tüm trafiği kabul etmeye açıktır. Siz yalnızca Databases alt ağından gelen trafiğin depolamaya erişebilmesini istiyorsunuz.
az storage account network-rule add \ --resource-group $rg \ --account-name $STORAGEACCT \ --vnet-name ERP-servers \ --subnet Databases
Depolama kaynaklarına erişimi test etme
Bu adımda her iki sunucunuza da bağlanacak ve depolama hesabındaki Azure dosya paylaşımına yalnızca DataServer'ın erişimi olduğunu doğrulayacaksınız.
AppServer ve DataServer'ın genel IP adreslerini değişkenlere kaydetmek için Cloud Shell'de aşağıdaki komutu çalıştırın:
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)"
AppServer VM'nize bağlanmak ve Azure dosya paylaşımını bağlamaya çalışmak için Cloud Shell'de aşağıdaki komutu çalıştırın:
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"
Sanal makineyi oluştururken kullandığınız parolayı girin.
Yanıt
mount error
iletisini içermelidir. Uygulamalar alt ağından depolama hesabı için hizmet uç noktası olmadığından bu bağlantıya izin verilmez.DataServer VM'nize bağlanmak ve Azure dosya paylaşımını bağlamaya çalışmak için Cloud Shell'de aşağıdaki komutu çalıştırın:
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"
Sanal makineyi oluştururken kullandığınız parolayı girin.
Bağlama başarılı olmalı ve yanıt bağlama noktasının ayrıntılarını içermelidir. Databases alt ağında depolama hesabı için hizmet uç noktasını oluşturduğunuzdan, buna izin verilir.
Artık Databases alt ağındaki depolama hizmet uç noktasını kullanarak DataServer’ın depolamaya erişebildiğini doğruladınız. Ayrıca AppServer'ın depolamaya erişemediğini de doğruladınız. Bunun nedeni, bu sunucunun farklı bir alt ağda olması ve sanal ağ hizmet uç noktasına erişimi olmamasıdır.