MySQL-database beveiligen met een privé-eindpunt

Voltooid

In deze les vergrendelt u de toegang tot uw MySQL-database door deze opnieuw te implementeren in een subnet. MySQL Flexible Server biedt momenteel geen ondersteuning voor privé-eindpuntverbindingen. U implementeert deze dus in een subnet.

Zodra u een privé-eindpunt hebt ingeschakeld, kunt u openbare toegang tot uw database blokkeren.

  1. U verwijdert het vorige exemplaar van de Flexibele MySQL-server.

    az mysql  flexible-server delete \
        --name $MYSQL_SERVER_NAME \
        --resource-group $RESOURCE_GROUP \ 
        --yes
    
  2. Maak vervolgens een privé-DNS-zone voor het nieuwe MySQL Flexible Server-exemplaar. U stelt de DNS-zone in op private.mysql.database.azure.com.

    MYSQL_DNS="private.mysql.database.azure.com"
    az network private-dns zone create -g $RESOURCE_GROUP -n $MYSQL_DNSs.
    
  3. Maak vervolgens de Flexibele MySQL-server opnieuw en koppel deze aan de DNS-zone. Wanneer u het nieuwe serverexemplaren koppelt aan de DNS-zone, koppelt mySQL Flexible server uw DNS-zone aan uw VNet. Met de koppeling wordt een A-record toegevoegd aan de DNS-zone voor de naam van uw database.

    MYSQL_SERVER_NAME=mysql-vnet$APPNAME-$UNIQUEID
    az mysql flexible-server create \
        --name ${MYSQL_SERVER_NAME} \
        --resource-group ${RESOURCE_GROUP}  \
        --location $LOCATION \
        --admin-user myadmin \
        --admin-password ${MYSQL_ADMIN_PASSWORD} \
        --sku-name Standard_B1ms  \
        --tier Burstable \
        --version 5.7 \
        --storage-size 20 \
        --vnet $VIRTUAL_NETWORK_NAME \
        --subnet $DATABASE_SUBNET_NAME \
        --private-dns-zone $MYSQL_DNS
    
  4. Maak de petclinic database opnieuw.

    az mysql flexible-server db create \
        --server-name $MYSQL_SERVER_NAME \
        --resource-group $RESOURCE_GROUP \
        -d $DATABASE_NAME
    
  5. Geef de FQDN van uw zojuist gemaakte MySQL Flexible Server weer. U gebruikt deze waarde om de eigenschap in uw spring.datasource.url configuratieopslagplaats bij te werken.

    az mysql flexible-server show \
        --name $MYSQL_SERVER_NAME \
        --resource-group $RESOURCE_GROUP \
        --query fullyQualifiedDomainName
    
  6. Gebruik in het Git Bash-venster in de configuratieopslagplaats die u lokaal hebt gekloond uw favoriete teksteditor om het application.yml bestand te openen. Werk de versie van het urldatasource exemplaar bij om nu uw met MYSQL Vnet geïntegreerde instantie te gebruiken.

    url: jdbc:mysql://<your-vnet-integrated-server-name>.mysql.database.azure.com:3306/petclinic?useSSL=true
    
  7. Start de spring-apps die gebruikmaken van de back-enddatabase opnieuw op om de nieuwe verbindingsreeks informatie te gebruiken.

    az spring app restart \
        --name customers-service \
        --resource-group $RESOURCE_GROUP \
        --service $SPRING_APPS_SERVICE \
        --no-wait
    
    az spring app restart \
        --name vets-service \
        --resource-group $RESOURCE_GROUP \
        --service $SPRING_APPS_SERVICE \
        --no-wait
    
    az spring app restart \
        --name visits-service \
        --resource-group $RESOURCE_GROUP \
        --service $SPRING_APPS_SERVICE \
        --no-wait
    
    
  8. U moet door de spring petclinische app kunnen bladeren en de gegevens kunnen zien.

  9. Navigeer in Azure Portal naar uw zojuist gemaakte MySQL Flexible Server en selecteer het menu Netwerken . U ziet dat u de serverfirewall niet meer kunt vergrendelen. De server staat echter alleen binnenkomende aanroepen via het virtuele netwerk toe.