Latihan - Menyiapkan lingkungan kotak pasir

Selesai

Di unit ini, Anda menyiapkan sumber daya yang Anda gunakan di seluruh modul ini. Bayangkan arsitektur dasar yang terdiri dari server yang menghosting aplikasi yang digunakan pelanggan Anda. Server tersambung ke database untuk penyimpanan datanya. Aplikasi berjalan pada komputer virtual (VM). Database baru-baru ini dimigrasikan dari database SQL Server yang berjalan pada VM ke database di layanan Azure SQL Database. Untuk memperlihatkan bagaimana Anda bisa mengamankan database Anda, siapkan sumber daya berikut untuk digunakan di seluruh modul ini:

  • VM Linux bernama appServer. Server ini bertindak sebagai server aplikasi yang akan disambungkan pengguna. Ini perlu disambungkan ke database. Instal sqlcmd pada VM untuk mensimulasikan aplikasi yang berjalan di appServer yang membuat koneksi ke database.
  • Server logika Azure SQL Database. Server logika ini diperlukan untuk meng-host satu atau beberapa database.
  • Database di server logis Anda yang disebut marketplaceDb. Anda membuatnya menggunakan database demo AdventureWorksLT sehingga Anda memiliki beberapa tabel dan data untuk dikerjakan. Data ini mencakup beberapa data sensitif, seperti alamat email dan nomor telepon yang ingin Anda amankan dengan benar.

Membuat Azure SQL Database

  1. Pertama, siapkan beberapa variabel. Ganti nilai berikut yang diperlihatkan di [] dengan nilai pilihan Anda. [password] harus memiliki setidaknya delapan karakter, dan berisi karakter dari setidaknya tiga kategori ini: karakter huruf besar, karakter huruf kecil, angka, dan karakter non-nufanumerik. Simpan nilai untuk digunakan nanti.

    export ADMINLOGIN='[ServerAdmin]'
    export PASSWORD='[password]'
    export SERVERNAME=server$RANDOM
    export RESOURCEGROUP=<rgn>[sandbox resource group name]</rgn>
    export LOCATION=$(az group show --name $RESOURCEGROUP | jq -r '.location')
    
  2. Jalankan perintah berikut ini untuk membuat server logika Azure SQL Database baru.

    az sql server create \
        --name $SERVERNAME \
        --resource-group $RESOURCEGROUP \
        --location $LOCATION \
        --admin-user $ADMINLOGIN \
        --admin-password $PASSWORD
    
  3. Jalankan perintah berikut untuk membuat database yang disebut marketplaceDb di server logis yang Anda buat. Perintah ini menggunakan database AdventureWorksLT sebagai templat sehingga Anda memiliki beberapa tabel yang telah diisi sebelumnya untuk dikerjakan.

    az sql db create --resource-group $RESOURCEGROUP \
        --server $SERVERNAME \
        --name marketplaceDb \
        --sample-name AdventureWorksLT \
        --service-objective Basic
    
  4. Jalankan perintah berikut untuk mendapatkan string koneksi untuk database ini.

    az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
    

    Output Anda harus menyerupai contoh berikut. Pertahankan perintah ini berguna karena Anda memerlukan perintah ini untuk menyambungkan ke database Anda nanti dalam modul ini. [username] Perhatikan tempat penampung dan [password] dalam perintah yang ingin Anda ganti dengan ADMINLOGIN kredensial dan PASSWORD yang Anda tentukan dalam variabel sebelumnya.

    sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
    

Membuat dan mengonfigurasi komputer virtual Linux

Buat VM Linux yang akan digunakan melalui beberapa contoh.

  1. Jalankan perintah berikut untuk membuat VM. Perintah ini mungkin memerlukan waktu beberapa menit untuk diselesaikan.

    az vm create \
      --resource-group $RESOURCEGROUP \
      --name appServer \
      --image Ubuntu2204 \
      --size Standard_DS2_v2 \
      --public-ip-sku Standard \
      --generate-ssh-keys
    

    Ketika perintah ini selesai, Anda akan melihat output yang menyerupai contoh berikut.

    {
      "fqdns": "",
      "id": "/subscriptions/nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn/resourceGroups/learn-nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn/providers/Microsoft.Compute/virtualMachines/appServer",
      "location": "westus",
      "macAddress": "nn-nn-nn-nn-nn-nn",
      "powerState": "VM running",
      "privateIpAddress": "nn.nn.nn.nn",
      "publicIpAddress": "nnn.nnn.nnn.nnn",
      "resourceGroup": "learn-nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn",
      "zones": ""
    }
    
  2. Setelah VM Anda berhasil dibuat, sambungkan ke alamat IP publiknya menggunakan SSH.

    ssh nnn.nnn.nnn.nnn
    

    Dengan nnn.nnn.nnn.nnn adalah nilai dari output publicIpAddress pada langkah sebelumnya.

    Catatan

    Dua hal yang perlu diperhatikan. Pertama, Anda tidak memerlukan kata sandi karena Anda membuat pasangan kunci SSH sebagai bagian dari pembuatan VM. Kedua, pada koneksi shell pertama ke VM, Anda diminta tentang keaslian host. Ini terjadi karena Anda menyambungkan ke alamat IP alih-alih nama host. Menjawab ya menyimpan alamat IP sebagai host yang valid untuk koneksi dan memungkinkan koneksi untuk melanjutkan.

  3. Selesaikan berbagai hal dengan menginstal mssql-tools di VM Linux sehingga Anda dapat terhubung ke database Anda melalui sqlcmd.

    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
    source ~/.bashrc
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
    sudo apt-get update
    sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18 unixodbc-dev
    

    Catatan

    Banyak teks akan menggulir oleh untuk beberapa perintah ini, jadi pastikan Anda memilih Enter setelah perintah akhir untuk memastikan bahwa itu berjalan.

Anda membuat server logis Azure SQL Database, database di server logis tersebut, dan komputer virtual yang disebut appServer yang mensimulasikan konektivitas jaringan dari server aplikasi. Selanjutnya, lihat cara mengamankan database Anda dengan benar.