프라이빗 엔드포인트를 사용하여 Key Vault 보호

완료됨

이제 MySQL 데이터베이스에 대한 인터넷 액세스를 잠갔으므로 유사한 설정을 수행하여 Key Vault 콘텐츠를 보호합니다.

  1. 프라이빗 링크 서브넷에서 네트워크 정책을 이미 사용하지 않도록 설정했으므로 이제 Key Vault 인스턴스에 대한 프라이빗 엔드포인트를 만들 수 있습니다.

    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-ids vault \
        --connection-name openlab-keyvault-connection \
        --location $LOCATION
    
  2. 이번에는 privatelink.vaultcore.azure.net에 대한 프라이빗 DNS 영역을 만들어야 합니다.

    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
    
  3. Azure Key Vault 인스턴스 이름을 프라이빗 엔드포인트의 IP 주소에 연결하는 A 레코드를 만들어야 합니다.

    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"