Exercice : Restreindre l’accès à Stockage Azure à l’aide de points de terminaison de service

Effectué

En tant qu’architecte de solutions, vous comptez déplacer des fichiers de diagrammes d’ingénierie sensibles vers Stockage Azure. Les fichiers doivent être uniquement accessibles à partir des ordinateurs du réseau de l’entreprise. Vous souhaitez créer un point de terminaison de service de réseau virtuel pour Stockage Azure afin de sécuriser la connectivité à vos comptes de stockage.

Dans cette unité, vous allez créer un point de terminaison de service et utiliser des règles de réseau pour restreindre l’accès à Stockage Azure. Vous allez créer un point de terminaison de service de réseau virtuel pour Stockage Azure sur le sous-réseau Databases. Vous allez ensuite vérifier que votre machine virtuelle DataServer peut accéder à Stockage Azure. Enfin, vous allez vous assurer que la machine virtuelle AppServer, qui se trouve sur un autre sous-réseau, ne peut pas accéder au stockage.

Schéma du scénario de l’exercice : règles et point de terminaison de service.

Ajouter des règles au groupe de sécurité réseau

Vous allez ici vous assurer que les communications avec le stockage Azure sont transmises à travers le point de terminaison de service. Vous allez ajouter des règles de trafic sortant pour autoriser l’accès au service Stockage, mais refuser tout autre trafic provenant d’Internet.

  1. Pour créer une règle de trafic sortant afin d’autoriser l’accès au stockage, exécutez la commande suivante dans 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"
    
  2. Pour créer une règle de trafic sortant afin de refuser tout accès à Internet, exécutez la commande suivante dans 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."
    

Vous devez maintenant avoir les règles suivantes dans le groupe ERP-SERVERS-NSG :

Nom de la règle Direction Priorité Objectif
AllowSSHRule Règle de trafic entrant 100 Autoriser le trafic SSH entrant
httpRule Règle de trafic entrant 150 Refuser le trafic depuis DataServer vers AppServer sur le port 80
Allow_Storage Règle de trafic sortant 190 Autoriser l’accès à Stockage Azure
Deny_Internet Règle de trafic sortant 200 Refuser l’accès à Internet à partir du réseau virtuel

À ce stade, les AppServer et DataServer ont accès au service Stockage Azure.

Configurer un compte de stockage et un partage de fichiers

Dans cette étape, vous créez un compte de stockage, puis y ajoutez un partage de fichiers Azure. Ce partage de fichiers se trouve l’endroit où vous allez stocker vos diagrammes d’ingénierie.

  1. Afin de créer un compte de stockage pour les documents d’ingénierie, exécutez la commande suivante dans Cloud Shell :

    STORAGEACCT=$(az storage account create \
                    --resource-group $rg \
                    --name engineeringdocs$RANDOM \
                    --sku Standard_LRS \
                    --query "name" | tr -d '"')
    
  2. Pour stocker la clé primaire de votre stockage dans une variable, exécutez la commande suivante dans Cloud Shell :

    STORAGEKEY=$(az storage account keys list \
                    --resource-group $rg \
                    --account-name $STORAGEACCT \
                    --query "[0].value" | tr -d '"')
    
  3. Pour créer un partage de fichiers Azure appelé erp-data-share, exécutez la commande suivante dans Cloud Shell :

    az storage share create \
        --account-name $STORAGEACCT \
        --account-key $STORAGEKEY \
        --name "erp-data-share"
    

Activer le point de terminaison de service

Vous devez maintenant configurer le compte de stockage afin qu’il ne soit accessible qu’à partir des serveurs de base de données, en attribuant le point de terminaison de stockage au sous-réseau Databases. Ensuite, vous devez ajouter une règle de sécurité au compte de stockage.

  1. Pour attribuer le point de terminaison Microsoft.Storage au sous-réseau, exécutez la commande suivante dans Cloud Shell :

    az network vnet subnet update \
        --vnet-name ERP-servers \
        --resource-group $rg \
        --name Databases \
        --service-endpoints Microsoft.Storage
    
  2. Pour refuser tous les accès, changez l’action par défaut sur Deny en exécutant la commande suivante dans Cloud Shell. Une fois l’accès réseau refusé, le compte de stockage n’est plus accessible par aucun des réseaux.

    az storage account update \
        --resource-group $rg \
        --name $STORAGEACCT \
        --default-action Deny
    
  3. Pour restreindre l’accès au compte de stockage, exécutez la commande suivante dans Cloud Shell. Par défaut, les comptes de stockage sont ouverts pour accepter tout le trafic. Vous souhaitez que seul le trafic provenant du sous-réseau Databases puisse accéder au stockage.

    az storage account network-rule add \
        --resource-group $rg \
        --account-name $STORAGEACCT \
        --vnet-name ERP-servers \
        --subnet Databases
    

Tester l’accès aux ressources de stockage

Au cours de cette étape, vous allez vous connecter à vos deux serveurs et vous assurer que seul DataServer a accès au partage de fichiers Azure sur le compte de stockage.

  1. Pour enregistrer les adresses IP publiques de AppServer et de DataServer dans des variables, exécutez la commande suivante dans 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)"
    
  2. Pour vous connecter à votre machine virtuelle AppServer et tenter de monter le partage de fichiers Azure, exécutez la commande suivante dans 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"
    
  3. Entrez le mot de passe que vous avez utilisé quand vous avez créé la machine virtuelle.

  4. La réponse doit inclure un message mount error. Cette connexion n’est pas autorisée, car il n’existe aucun point de terminaison de service pour le compte de stockage sur le sous-réseau Applications.

  5. Pour vous connecter à votre machine virtuelle DataServer et tenter de monter le partage de fichiers Azure, exécutez la commande suivante dans 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"
    
  6. Entrez le mot de passe que vous avez utilisé quand vous avez créé la machine virtuelle.

  7. Le montage doit être réussi et la réponse doit inclure les détails du point de montage. Cette opération est autorisée dans la mesure où vous avez créé le point de terminaison de service pour le compte de stockage sur le sous-réseau Databases.

En utilisant le point de terminaison de service de stockage sur le sous-réseau Databases, vous avez maintenant vérifié que DataServer peut accéder au stockage. Vous avez également vérifié qu’AppServer ne peut pas accéder au stockage. Se trouvant sur un autre sous-réseau, ce serveur n’a pas accès au point de terminaison de service de réseau virtuel.