Mengamankan database MySQL dengan titik akhir privat

Selesai

Di unit ini, Anda akan mengunci akses ke database MySQL Anda dengan menyebarkannya kembali di dalam subnet. Server Fleksibel MySQL saat ini tidak mendukung koneksi titik akhir privat. Dengan demikian Anda akan menyebarkannya di dalam subnet.

Setelah mengaktifkan titik akhir privat, Anda dapat memblokir akses publik ke database Anda.

  1. Anda akan menghapus instans server Fleksibel MySQL sebelumnya.

    az mysql  flexible-server delete \
        --name $MYSQL_SERVER_NAME \
        --resource-group $RESOURCE_GROUP \ 
        --yes
    
  2. Selanjutnya, buat zona DNS privat untuk instans Server Fleksibel MySQL baru. Anda akan mengatur zona DNS ke 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. Selanjutnya, buat ulang Server Fleksibel MySQL dan tautkan ke zona DNS. Saat Anda menautkan instans server baru ke zona DNS, server Fleksibel MySQL akan menautkan Zona DNS Anda ke VNet Anda. Tautan akan menambahkan catatan A ke zona DNS untuk nama database Anda.

    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. Buat ulang petclinic database.

    az mysql flexible-server db create \
        --server-name $MYSQL_SERVER_NAME \
        --resource-group $RESOURCE_GROUP \
        -d $DATABASE_NAME
    
  5. Tampilkan FQDN Server Fleksibel MySQL yang baru dibuat, Anda akan menggunakan nilai ini untuk memperbarui spring.datasource.url properti di repositori konfigurasi Anda.

    az mysql flexible-server show \
        --name $MYSQL_SERVER_NAME \
        --resource-group $RESOURCE_GROUP \
        --query fullyQualifiedDomainName
    
  6. Dari jendela Git Bash, di repositori konfigurasi yang Anda kloning secara lokal, gunakan editor teks favorit Anda untuk membuka application.yml file. url Perbarui dari datasource untuk sekarang menggunakan instans terintegrasi MYSQL Vnet Anda.

    url: jdbc:mysql://<your-vnet-integrated-server-name>.mysql.database.azure.com:3306/petclinic?useSSL=true
    
  7. Mulai ulang aplikasi spring yang menggunakan database backend untuk menggunakan informasi string koneksi baru.

    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. Anda harus dapat menelusuri aplikasi spring petclinic dan melihat data.

  9. Di portal Azure, navigasikan ke Server Fleksibel MySQL yang baru dibuat dan pilih menu Jaringan. Anda akan melihat bahwa Anda tidak dapat lagi mengunci firewall server. Namun server hanya mengizinkan panggilan masuk melalui jaringan virtual.