Bagikan melalui


Menggunakan titik akhir privat dengan lingkungan Azure Container Apps (pratinjau)

Dalam artikel ini, Anda mempelajari cara menggunakan titik akhir privat untuk mengakses Aplikasi Kontainer Azure Anda dengan aman tanpa mengeksposnya ke Internet publik.

Titik akhir privat menggunakan alamat IP privat dari jaringan virtual (VNet) Anda. Titik akhir ini menghubungkan Anda secara privat dan aman ke layanan yang didukung oleh Azure Private Link.

Titik akhir privat di Azure Container Apps hanya mendukung lalu lintas HTTP masuk. Lalu lintas TCP tidak didukung.

Prasyarat

Membuat aplikasi kontainer

Mulailah dengan masuk ke portal Microsoft Azure.

  1. Cari Aplikasi Kontainer di bilah pencarian teratas.

  2. Pilih Aplikasi Kontainer di hasil pencarian.

  3. Pilih tombol Buat.

  4. Di halaman Buat Aplikasi Kontainer pada tab Dasar , masukkan nilai berikut ini.

    Pengaturan Tindakan
    Langganan Pilih langganan Azure Anda.
    Grup sumber daya Pilih Buat baru dan masukkan my-container-apps.
    Nama aplikasi kontainer Masukkan my-container-app.
    Sumber penyebaran Pilih Gambar kontainer.
    Wilayah Pilih US Tengah.
  5. Di bidang Buat Lingkungan Aplikasi Kontainer, pilih tautan Buat baru.

  6. Di halaman Buat Lingkungan Container Apps pada tab Dasar-dasar, masukkan nilai berikut:

    Pengaturan Nilai
    Nama lingkungan Masukkan my-environment.
    Redundansi zona Pilih Dinonaktifkan
  7. Pilih tab Jaringan untuk membuat jaringan virtual (VNet). Secara default, akses jaringan publik diaktifkan, yang berarti titik akhir privat dinonaktifkan.

  8. Nonaktifkan akses jaringan publik.

  9. Biarkan Gunakan jaringan virtual Anda sendiri yang diatur ke Tidak. Anda dapat menggunakan VNet yang ada, tetapi titik akhir privat hanya didukung oleh lingkungan profil beban kerja, yang memerlukan subnet dengan rentang CIDR minimum atau lebih /27 besar. Untuk mempelajari selengkapnya tentang ukuran subnet, lihat gambaran umum arsitektur jaringan.

  10. Atur Aktifkan titik akhir privat ke Ya.

  11. Atur Nama titik akhir privat ke titik akhir-privat-saya.

  12. Di bidang Jaringan virtual titik akhir privat, pilih tautan Buat baru.

  13. Di halaman Buat Virtual Network , atur Virtual Network ke my-private-endpoint-vnet. Pilih OK.

  14. Di bidang Subnet jaringan virtual titik akhir privat, pilih tautan Buat baru.

  15. Di halaman Buat Subnet , atur Nama Subnet ke my-private-endpoint-vnet-subnet. Pilih OK.

  16. Biarkan DNS diatur ke Zona DNS Privat Azure.

  17. Pilih Buat.

  18. Di halaman Buat Aplikasi Kontainer pada tab Dasar , pilih Berikutnya : Kontainer >.

  19. Di halaman Buat Aplikasi Kontainer pada tab Kontainer , pilih Gunakan gambar mulai cepat.

  20. Pilih Tinjau dan buat di bagian bawah halaman.

    Jika tidak ada kesalahan yang ditemukan, tombol Buat diaktifkan.

    Jika ada kesalahan, tab apa pun yang berisi kesalahan ditandai dengan titik merah. Navigasikan ke tab yang sesuai. Bidang yang berisi kesalahan disorot dengan warna merah. Setelah semua kesalahan diperbaiki, pilih Tinjau dan buat lagi.

  21. Pilih Buat.

    Halaman dengan pesan Penyebaran sedang berlangsung ditampilkan. Setelah penyebaran berhasil diselesaikan, Anda akan melihat pesan: Penyebaran Anda selesai.

    Saat menelusuri ke titik akhir aplikasi kontainer, Anda menerima ERR_CONNECTION_CLOSED karena lingkungan aplikasi kontainer Anda memiliki akses publik yang dinonaktifkan. Sebagai gantinya, Anda mengakses aplikasi kontainer menggunakan titik akhir privat Anda.

Prasyarat

  • Akun Azure dengan langganan aktif.

  • Versi terbaru dari Azure CLI. Untuk memastikan Anda menjalankan versi terbaru, jalankan perintah berikut.

    az upgrade
    
  • Versi terbaru ekstensi Azure Container Apps untuk Azure CLI. Untuk memastikan Anda menjalankan versi terbaru, jalankan perintah berikut.

    az extension add --name containerapp --upgrade --allow-preview true
    

    Catatan

    Mulai Mei 2024, ekstensi Azure CLI tidak lagi mengaktifkan fitur pratinjau secara default. Untuk mengakses fitur pratinjau Container Apps, instal ekstensi Container Apps dengan --allow-preview true.

Untuk informasi selengkapnya tentang prasyarat dan penyiapan, lihat Mulai Cepat: Menyebarkan aplikasi kontainer pertama Anda dengan containerapp.

Atur variabel lingkungan

Atur variabel lingkungan berikut.

RESOURCE_GROUP="my-container-apps"
LOCATION="centralus"
ENVIRONMENT_NAME="my-environment"
CONTAINERAPP_NAME="my-container-app"
VNET_NAME="my-vnet"
SUBNET_NAME="my-subnet"
PRIVATE_ENDPOINT="my-private-endpoint"
PRIVATE_ENDPOINT_CONNECTION="my-private-endpoint-connection"
PRIVATE_DNS_ZONE="privatelink.${LOCATION}.azurecontainerapps.io"
DNS_LINK="my-dns-link"

Membuat Grup Sumber Daya Azure

Buat grup sumber daya untuk mengatur layanan yang terkait dengan penyebaran aplikasi kontainer Anda.

az group create \
    --name $RESOURCE_GROUP \
    --location $LOCATION

Membuat jaringan virtual

  1. Membuat jaringan virtual Azure (VNet). Anda dapat menggunakan VNet yang ada, tetapi titik akhir privat hanya didukung oleh lingkungan profil beban kerja, yang memerlukan subnet dengan rentang CIDR minimum atau lebih /27 besar. Untuk mempelajari selengkapnya tentang ukuran subnet, lihat gambaran umum arsitektur jaringan.

    az network vnet create \
        --resource-group $RESOURCE_GROUP \
        --name $VNET_NAME \
        --location $LOCATION \
        --address-prefix 10.0.0.0/16
    
  2. Buat subnet untuk dikaitkan dengan VNet dan untuk berisi titik akhir privat.

    az network vnet subnet create \
        --resource-group $RESOURCE_GROUP \
        --vnet-name $VNET_NAME \
        --name $SUBNET_NAME \
        --address-prefixes 10.0.0.0/21
    
  3. Ambil ID subnet. Anda menggunakan ini untuk membuat titik akhir privat.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group $RESOURCE_GROUP \
        --vnet-name $VNET_NAME \
        --name $SUBNET_NAME \
        --query "id" \
        --output tsv)
    

Membuat lingkungan

  1. Buat lingkungan Aplikasi Kontainer. Titik akhir privat hanya didukung oleh lingkungan profil beban kerja, yang merupakan jenis default untuk lingkungan baru.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION
    
  2. Ambil ID lingkungan. Anda menggunakan ini untuk mengonfigurasi lingkungan.

    ENVIRONMENT_ID=$(az containerapp env show \
        --resource-group $RESOURCE_GROUP \
        --name $ENVIRONMENT_NAME \
        --query "id" \
        --output tsv)
    
  3. Nonaktifkan akses jaringan publik untuk lingkungan. Ini diperlukan untuk mengaktifkan titik akhir privat.

    az containerapp env update \
        --id $ENVIRONMENT_ID \
        --public-network-access Disabled
    

Membuat titik akhir privat

Buat titik akhir privat di lingkungan dan subnet yang Anda buat sebelumnya.

az network private-endpoint create \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --name $PRIVATE_ENDPOINT \
    --subnet $SUBNET_ID \
    --private-connection-resource-id $ENVIRONMENT_ID \
    --connection-name $PRIVATE_ENDPOINT_CONNECTION \
    --group-id managedEnvironments

Mengonfigurasi Zona DNS privat

  1. Ambil alamat IP titik akhir privat. Anda menggunakan ini untuk menambahkan catatan DNS ke zona DNS privat Anda.

    PRIVATE_ENDPOINT_IP_ADDRESS=$(az network private-endpoint show \
        --name $PRIVATE_ENDPOINT \
        --resource-group $RESOURCE_GROUP \
        --query 'customDnsConfigs[0].ipAddresses[0]' \
        --output tsv)
    
  2. Ambil domain default lingkungan. Anda menggunakan ini untuk menambahkan catatan DNS ke zona DNS privat Anda.

    DNS_RECORD_NAME=$(az containerapp env show \
        --id $ENVIRONMENT_ID \
        --query 'properties.defaultDomain' \
        --output tsv | sed 's/\..*//')
    
  3. Buat zona DNS privat.

    az network private-dns zone create \
        --resource-group $RESOURCE_GROUP \
        --name $PRIVATE_DNS_ZONE
    
  4. Buat tautan antara VNet dan zona DNS privat Anda.

    az network private-dns link vnet create \
        --resource-group $RESOURCE_GROUP \
        --zone-name $PRIVATE_DNS_ZONE \
        --name $DNS_LINK \
        --virtual-network $VNET_NAME \
        --registration-enabled false
    
  5. Tambahkan catatan untuk titik akhir privat Anda ke zona DNS privat Anda.

    az network private-dns record-set a add-record \
        --resource-group $RESOURCE_GROUP \
        --zone-name $PRIVATE_DNS_ZONE \
        --record-set-name $DNS_RECORD_NAME \
        --ipv4-address $PRIVATE_ENDPOINT_IP_ADDRESS
    

Menyebarkan aplikasi kontainer

Sebarkan aplikasi kontainer di lingkungan Anda. Aplikasi kontainer ini hanya menggunakan gambar mulai cepat.

Saat menelusuri ke titik akhir aplikasi kontainer, Anda menerima ERR_CONNECTION_CLOSED karena lingkungan aplikasi kontainer Anda memiliki akses publik yang dinonaktifkan. Sebagai gantinya, Anda mengakses aplikasi kontainer menggunakan titik akhir privat Anda.

az containerapp up \
    --name $CONTAINERAPP_NAME \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --environment $ENVIRONMENT_NAME \
    --image mcr.microsoft.com/k8se/quickstart:latest \
    --target-port 80 \
    --ingress external \
    --query properties.configuration.ingress.fqdn

Memverifikasi koneksi titik akhir privat

Di bagian ini, Anda membuat komputer virtual yang terkait dengan VNet sehingga Anda dapat mengakses aplikasi kontainer yang Anda tentukan menggunakan titik akhir privat Anda.

Membuat komputer virtual (VM)

Mulailah dengan masuk ke portal Microsoft Azure.

  1. Cari Komputer virtual di bilah pencarian atas.

  2. Pilih Jaringan Virtual dalam hasil pencarian.

  3. Pilih Buat.

  4. Di halaman Buat komputer virtual pada tab Dasar , masukkan nilai berikut.

    Pengaturan Tindakan
    Langganan Pilih langganan Azure Anda.
    Grup sumber daya Pilih my-container-apps.
    Nama komputer virtual Masukkan azurevm.
    Wilayah Pilih US Tengah.
    Opsi ketersediaan Pilih Tidak diperlukan redundansi infrastruktur.
    Jenis keamanan Pilih Standar.
    Gambar Pilih Pusat Data Windows Server 2022 : Azure Edition - x64 Gen2.
    Nama Pengguna Masukkan azureuser.
    Kata sandi Masukkan kata sandi.
    Mengonfirmasikan kata sandi Masukkan kata sandi lagi.
    Port masuk publik Pilih Tidak ada.
  5. Di tab Jaringan , masukkan nilai berikut ini.

    Pengaturan Tindakan
    Jaringan virtual Pilih my-private-endpoint-vnet.
    Subnet Pilih my-private-endpoint-vnet-subnet (10.0.0.0/23).
    IP Publik Pilih Tidak ada.
    kelompok keamanan jaringan NIC Pilih Tingkat Lanjut.
  6. Pilih Tinjau + Buat.

  7. Pilih Buat.

Atur variabel lingkungan

Atur variabel lingkungan berikut.

VM_NAME="azurevm"
VM_ADMIN_USERNAME="azureuser"

Membuat komputer virtual (VM)

Jalankan perintah berikut.

az vm create \
    --resource-group $RESOURCE_GROUP \
    --name $VM_NAME \
    --image Win2022Datacenter \
    --public-ip-address "" \
    --vnet-name $VNET_NAME \
    --subnet $SUBNET_NAME \
    --admin-username $VM_ADMIN_USERNAME

Setelah menjalankan perintah ini, Anda akan dimintai kata sandi administrator untuk VM Anda.

Panjang nama pengguna administrator harus antara 1 dan 20 karakter.

Kata sandi administrator memiliki persyaratan berikut:

  • Panjangnya harus antara 12 dan 123 karakter.
  • Harus memiliki 3 dari yang berikut: 1 karakter huruf kecil, 1 karakter huruf besar, 1 angka, dan 1 karakter khusus.

Menguji koneksi

  1. Mulailah dengan masuk ke portal Microsoft Azure.

  2. Cari VM yang Anda buat di bilah pencarian atas dan pilih dari hasil pencarian.

  3. Di halaman Gambaran Umum untuk VM, pilih Sambungkan, lalu pilih Sambungkan melalui Bastion.

  4. Di halaman Bastion , pilih Sebarkan Bastion.

  5. Atur Nama Pengguna dan Kata Sandi VM ke nama pengguna dan kata sandi yang Anda gunakan saat membuat VM.

  6. Pilih Sambungkan.

  7. Setelah Anda tersambung, jalankan PowerShell di VM.

  8. Di PowerShell, jalankan perintah berikut. <Ganti PLACEHOLDERS> dengan nilai Anda.

    nslookup <CONTAINER_APP_ENDPOINT>
    

    Outputnya mirip dengan contoh berikut, dengan nilai Anda mengganti PLACEHOLDERS<>.

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    <ENVIRONMENT_DEFAULT_DOMAIN>.privatelink.<LOCATION>.azurecontainerapps.io
    
    Address:  10.0.0.4
    Aliases:  <CONTAINER_APP_ENDPOINT>
    
  9. Buka browser di VM.

  10. Telusuri ke titik akhir aplikasi kontainer. Anda melihat output untuk gambar aplikasi kontainer mulai cepat.

Membersihkan sumber daya

Jika Anda tidak akan terus menggunakan aplikasi ini, Anda dapat menghapus grup sumber daya my-container-apps . Ini menghapus instans Azure Container Apps dan semua layanan terkait.

Perhatian

Perintah berikut menghapus grup sumber daya yang ditentukan dan semua sumber daya yang terkandung di dalamnya. Jika sumber daya di luar lingkup panduan ini ada di grup sumber daya yang ditentukan, sumber daya tersebut juga akan dihapus.

az group delete --name $RESOURCE_GROUP