Mengamankan Key Vault dengan titik akhir privat

Selesai

Setelah mengunci akses internet ke database MySQL, Anda akan melakukan pengaturan serupa untuk melindungi konten Key Vault.

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

  1. Untuk memulai, Anda harus menonaktifkan kebijakan jaringan titik akhir privat di subnet yang akan digunakan untuk membuat titik akhir privat.

    az network vnet subnet update \
        --name $PRIVATE_ENDPOINTS_SUBNET_NAME \
        --resource-group $RESOURCE_GROUP \
        --vnet-name $VIRTUAL_NETWORK_NAME \
        --disable-private-endpoint-network-policies true
    
  2. Selanjutnya, Anda akan membuat titik akhir privat yang sesuai dengan instans Server Tunggal Azure Database for MySQL dalam subnet yang sama.

    KEYVAULT_RESOURCE_ID=$(az resource show -g ${RESOURCE_GROUP} -n ${KEYVAULT_NAME} \
        --query "id" \
        --resource-type "Microsoft.KeyVault/vaults" -o tsv)
    
    az network private-endpoint create --resource-group $RESOURCE_GROUP \
        --vnet-name $VIRTUAL_NETWORK_NAME \
        --subnet $PRIVATE_ENDPOINTS_SUBNET_NAME \
        --name pe-openlab-keyvault \
        --private-connection-resource-id "$KEYVAULT_RESOURCE_ID" \
        --group-id vault \
        --connection-name openlab-keyvault-connection \
        --location $LOCATION
    

    Setelah membuat titik akhir privat, Anda akan menyiapkan zona Azure DNS privat bernama privatelink.mysql.database.azure.com dengan catatan A DNS yang cocok dengan nama DNS asli dengan akhiran mysql.database.azure.com tetapi mengganti akhiran tersebut dengan privatelink.mysql.database.azure.com. Aplikasi Anda yang terhubung ke database MySQL tidak perlu diperbarui, tetapi aplikasi tersebut dapat terus menggunakan string koneksi yang ada.

  3. Untuk menerapkan konfigurasi ini, mulailah dengan membuat zona DNS privat baru dan menautkannya ke jaringan virtual Anda.

    az network private-dns zone create \
        --resource-group $RESOURCE_GROUP \
        --name "privatelink.vaultcore.azure.net"
    
    az network private-dns link vnet create \
        --resource-group $RESOURCE_GROUP \
        --zone-name "privatelink.vaultcore.azure.net" \
        --name MyVaultDNSLink \
        --virtual-network $VIRTUAL_NETWORK_NAME \
        --registration-enabled false
    
  4. Selanjutnya, buat catatan A baru yang menunjuk ke alamat IP dari titik akhir privat yang baru dibuat.

    KEYVAULT_NIC_ID=$(az network private-endpoint show \
        --name pe-openlab-keyvault \
        --resource-group $RESOURCE_GROUP \
        --query 'networkInterfaces[0].id' -o tsv)
    
    KEYVAULT_NIC_IPADDRESS=$(az resource show \
        --ids $KEYVAULT_NIC_ID \   
        --api-version 2019-04-01 -o json | jq -r '.properties.ipConfigurations[0].properties.privateIPAddress') \
    
    az network private-dns record-set a add-record -g $RESOURCE_GROUP -z "privatelink.vaultcore.azure.net" -n $KEYVAULT_NAME -a $KEYVAULT_NIC_IPADDRESS
    az network private-dns record-set list -g $RESOURCE_GROUP -z "privatelink.vaultcore.azure.net"
    
  5. Anda sekarang dapat sepenuhnya memblokir konektivitas ke titik akhir publik dari instans Server Tunggal Azure Database for MySQL.

    az keyvault update \
        --name $KEYVAULT_NAME \
        --resource-group $RESOURCE_GROUP \
        --public-network-access Disabled