Menggunakan rahasia Azure Key Vault di Azure Pipelines

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Key Vault memungkinkan pengembang untuk menyimpan dan mengelola informasi sensitif dengan aman seperti kunci API, kredensial, atau sertifikat. Layanan Azure Key Vault mendukung dua jenis kontainer: vault dan kumpulan HSM (Modul Keamanan Perangkat Keras) terkelola. Vault dapat menyimpan kunci, rahasia, dan sertifikat yang didukung HSM dan perangkat lunak, sementara kumpulan HSM terkelola secara eksklusif mendukung kunci yang didukung HSM.

Dalam tutorial ini, Anda akan belajar cara:

  • Membuat Azure Key Vault menggunakan Azure CLI
  • Menambahkan rahasia dan mengonfigurasi akses ke brankas kunci Azure
  • Menggunakan rahasia dalam alur Anda

Prasyarat

Membuat repositori

Jika Anda sudah memiliki repositori Anda sendiri, lanjutkan ke langkah berikutnya. Jika tidak, ikuti petunjuk di bawah ini untuk menginisialisasi repositori Anda. Kami akan menggunakan Azure Repo ini untuk menyiapkan alur kami.

  1. Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.

  2. Pilih Repos, lalu pilih Inisialisasi untuk menginisialisasi cabang utama dengan README.

    Cuplikan layar memperlihatkan cara menginisialisasi repositori dengan file README.

Membuat Azure Key Vault

  1. Masuk ke Portal Microsoft Azure, lalu pilih tombol Cloud Shell di sudut kanan atas.

  2. Jika Anda memiliki lebih dari satu langganan Azure yang terkait dengan akun Anda, gunakan perintah di bawah ini untuk menentukan langganan default. Anda dapat menggunakan az account list untuk membuat daftar langganan Anda.

    az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>
    
  3. Atur wilayah Azure default Anda. Anda dapat menggunakan az account list-locations untuk menghasilkan daftar wilayah yang tersedia.

    az config set defaults.location=<YOUR_REGION>
    
  4. Membuat grup sumber daya baru.

    az group create --name <YOUR_RESOURCE_GROUP_NAME>
    
  5. Buat Azure Key Vault baru.

    az keyvault create \
      --name <YOUR_KEY_VAULT_NAME> \
      --resource-group <YOUR_RESOURCE_GROUP_NAME>
    
  6. Buat rahasia baru di brankas kunci Azure Anda.

    az keyvault secret set \
      --name <YOUR_SECRET_NAME> \
      --value <YOUR_ACTUAL_SECRET> \
      --vault-name <YOUR_KEY_VAULT_NAME>
    

Menyiapkan kebijakan akses brankas kunci

Untuk mengakses Azure Key Vault, kita perlu menyiapkan perwakilan layanan untuk memberikan akses ke Azure Pipelines. Ikuti panduan ini untuk membuat perwakilan layanan dengan Azure CLI, lalu lanjutkan dengan langkah berikutnya di bagian ini.

  1. Navigasi ke portal Azure, lalu gunakan bilah pencarian untuk menemukan brankas kunci yang Anda buat sebelumnya.

    Cuplikan layar memperlihatkan cara mencari Azure Key Vault Anda.

  2. Pilih Kebijakan akses, lalu pilih Buat untuk membuat kebijakan baru.

  3. Di bawah Izin rahasia, pilih Dapatkan dan Daftar.

  4. Pilih Berikutnya, lalu pilih perwakilan layanan yang Anda buat sebelumnya. Perwakilan layanan adalah objek yang mewakili aplikasi atau layanan yang meminta akses ke sumber daya Azure.

  5. Pilih Berikutnya, lalu Berikutnya sekali lagi.

  6. Tinjau kebijakan Anda, lalu pilih Buat setelah selesai.

Catatan

Azure Key Vault yang menggunakan kontrol akses berbasis peran Azure (Azure RBAC) tidak didukung.

Menambahkan penetapan peran

Pada langkah berikutnya, kita akan membuat koneksi layanan ARM menggunakan perwakilan layanan. Sebelum dapat memverifikasi koneksi, kita perlu memberikan akses Baca perwakilan layanan di tingkat langganan:

  1. Navigasi ke portal Azure

  2. Pilih Langganan dari panel navigasi kiri, lalu temukan dan pilih langganan Anda.

  3. Pilih Kontrol akses, lalu pilih Tambahkan>penetapan peran.

    Cuplikan layar memperlihatkan cara menambahkan penetapan peran baru di tingkat langganan.

  4. Pilih Pembaca di bawah tab Peran , lalu pilih Berikutnya.

  5. Pilih Pengguna, grup, atau perwakilan layanan, lalu pilih Pilih anggota.

    Cuplikan layar memperlihatkan cara menambahkan anggota ke penetapan peran di Azure.

  6. Gunakan bilah pencarian untuk menemukan perwakilan layanan Anda, lalu pilih tanda "+" untuk memilihnya, lalu klik tombol Pilih .

  7. Pilih Tinjau + tetapkan, tinjau pengaturan Anda, lalu pilih Tinjau + tetapkan sekali lagi untuk mengonfirmasi pilihan Anda dan menambahkan penetapan peran.

Membuat koneksi layanan

  1. Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.

  2. Pilih Pengaturan proyek>Koneksi layanan, lalu pilih Koneksi layanan baru untuk membuat koneksi layanan baru.

  3. Pilih Azure Resource Manager, lalu pilih Berikutnya.

  4. Pilih Perwakilan layanan (manual), lalu pilih Berikutnya.

  5. Pilih Azure Cloud untuk Lingkungan dan Langganan untuk Tingkat Cakupan, lalu masukkan ID Langganan dan Nama Langganan Anda.

  6. Isi bidang berikut dengan informasi yang Anda peroleh saat membuat perwakilan layanan, lalu pilih Verifikasi setelah selesai:

    • Id Perwakilan Layanan: AppId perwakilan layanan Anda.
    • Kunci Perwakilan Layanan: Kata sandi perwakilan layanan Anda.
    • ID Penyewa: Penyewa perwakilan layanan Anda.
  7. Setelah verifikasi berhasil, berikan nama dan deskripsi (opsional) untuk koneksi layanan Anda, lalu centang kotak Centang Berikan izin akses ke semua alur .

  8. Pilih Verifikasi dan simpan saat Anda selesai.

    Cuplikan layar memperlihatkan cara membuat koneksi layanan Azure Resource Manager baru menggunakan perwakilan layanan.

  1. Masuk ke koleksi Azure DevOps Anda, lalu navigasikan ke proyek Anda.

  2. Pilih Pengaturan>proyek Koneksi layanan Koneksi> layanan baru lalu pilih Azure Resource Manager untuk membuat koneksi layanan ARM baru.

  3. Beri nama koneksi layanan Anda, lalu pilih Azure Cloud untuk Lingkungan dan Langganan untuk Tingkat Cakupan.

  4. Masukkan ID Langganan dan Nama Langganan Anda.

  5. Isi bidang berikut dengan informasi yang Anda peroleh saat membuat perwakilan layanan, lalu pilih Verifikasi koneksi saat Anda selesai:

    • Id klien Perwakilan Layanan: AppId perwakilan layanan Anda.
    • Kunci Perwakilan Layanan: Kata sandi perwakilan layanan Anda.
    • ID Penyewa: Penyewa perwakilan layanan Anda.
  6. Centang kotak Izinkan semua alur untuk menggunakan koneksi ini, lalu pilih Ok setelah selesai.

    Cuplikan layar yang menunjukkan cara membuat koneksi layanan ARM baru menggunakan perwakilan layanan di Azure DevOps Server 2019.

Membuat alur baru

  1. Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.

  2. Pilih Alur, lalu pilih Alur Baru.

  3. Pilih Gunakan editor klasik untuk membuat alur klasik.

  4. Pilih Azure Repos Git, pilih repositori dan cabang default Anda, lalu pilih Lanjutkan.

  5. Pilih templat alur .Net Desktop .

  6. Untuk contoh ini, kita hanya akan memerlukan dua tugas terakhir. Tekan CTRL lalu pilih lima tugas pertama, klik kanan dan pilih Hapus tugas yang dipilih untuk menghapusnya.

    Cuplikan layar memperlihatkan cara menghapus beberapa tugas alur.

  7. Pilih + untuk menambahkan tugas baru. Cari tugas Baris perintah, pilih, lalu pilih Tambahkan untuk menambahkannya ke alur Anda. Setelah ditambahkan, konfigurasikan sebagai berikut:

    • Nama tampilan: Buat file
    • Skrip: echo $(YOUR_SECRET_NAME) > secret.txt

    Cuplikan layar memperlihatkan cara mengonfigurasi tugas baris perintah.

  8. Pilih + untuk menambahkan tugas baru. Cari tugas Azure Key Vault , pilih tugas tersebut, lalu pilih Tambahkan* untuk menambahkannya ke alur Anda. Setelah ditambahkan, konfigurasikan sebagai berikut:

    • Nama tampilan: Azure Key Vault
    • Langganan Azure: pilih koneksi layanan utama layanan yang Anda buat sebelumnya
    • Brankas kunci: pilih brankas kunci Anda
    • Filter rahasia: Daftar nama rahasia yang dipisahkan koma atau biarkan * untuk mengunduh semua rahasia dari brankas kunci yang dipilih

    Cuplikan layar memperlihatkan cara menyiapkan tugas Azure Key Vault di alur klasik.

  9. Pilih tugas Salin file dan isi bidang yang diperlukan sebagai berikut:

    • Nama tampilan: Salin File
    • Isi: secret.txt
    • Folder Target: $(build.artifactstagingdirectory)

    Cuplikan layar memperlihatkan cara menyiapkan tugas salin file di alur klasik.

  10. Pilih tugas Terbitkan Artefak dan isi bidang yang diperlukan sebagai berikut:

    • Nama tampilan: Terbitkan Artefak
    • Jalur untuk menerbitkan: $(build.artifactstagingdirectory)
    • Nama artefak: hilangkan
    • Lokasi penerbitan artefak: Azure Pipelines

    Cuplikan layar memperlihatkan cara menyiapkan tugas terbitkan artefak di alur klasik.

  11. Pilih Simpan dan antrean, lalu pilih Jalankan untuk menjalankan alur Anda.

  12. Setelah eksekusi alur selesai, kembali ke ringkasan alur dan pilih artefak yang diterbitkan.

  13. Pilih jatuhkan>secret.txt untuk mengunduh artefak yang diterbitkan.

    Cuplikan layar yang menunjukkan cara mengunduh artefak yang diterbitkan.

  14. Buka file teks yang baru saja Anda unduh, file teks harus berisi rahasia dari brankas kunci Azure Anda.

  1. Masuk ke koleksi Azure DevOps Anda, lalu navigasikan ke proyek Anda.

  2. Pilih Alur, lalu pilih Build.

  3. Pilih Alur build baru>.

  4. Pilih Gunakan editor klasik untuk membuat alur build klasik baru.

  5. Pilih Azure Repos Git, pilih repositori dan cabang default Anda, lalu pilih Lanjutkan.

  6. Pilih templat alur .Net Desktop, lalu pilih Terapkan.

  7. Untuk contoh ini, kita hanya akan memerlukan dua tugas terakhir. Tekan CTRL lalu pilih lima tugas pertama, klik kanan dan pilih Hapus tugas yang dipilih untuk menghapusnya.

    Cuplikan layar memperlihatkan cara menghapus beberapa tugas alur dalam alur klasik di Azure DevOps Server 2019.

  8. Pilih + untuk menambahkan tugas baru. Cari tugas Baris perintah, pilih, lalu pilih Tambahkan untuk menambahkannya ke alur Anda. Setelah ditambahkan, konfigurasikan sebagai berikut:

    • Nama tampilan: Buat file
    • Skrip: echo $(YOUR_SECRET_NAME) > secret.txt

    Cuplikan layar memperlihatkan cara mengonfigurasi tugas baris perintah di alur klasik di Azure DevOps Server 2019.

  9. Pilih + untuk menambahkan tugas baru. Cari tugas Azure Key Vault , pilih tugas tersebut, lalu pilih Tambahkan* untuk menambahkannya ke alur Anda. Setelah ditambahkan, konfigurasikan sebagai berikut:

    • Nama tampilan: Azure Key Vault
    • Langganan Azure: pilih koneksi layanan utama layanan yang Anda buat sebelumnya
    • Brankas kunci: pilih brankas kunci Anda
    • Filter rahasia: Daftar nama rahasia yang dipisahkan koma atau biarkan * untuk mengunduh semua rahasia dari brankas kunci yang dipilih

    Cuplikan layar memperlihatkan cara menyiapkan tugas Azure Key Vault dalam alur klasik di Azure DevOps Server 2019.

  10. Pilih tugas Salin file dan isi bidang yang diperlukan sebagai berikut:

    • Nama tampilan: Salin File
    • Isi: secret.txt
    • Folder Target: $(build.artifactstagingdirectory)

    Cuplikan layar memperlihatkan cara menyiapkan tugas salin file di alur klasik di Azure DevOps Server 2019.

  11. Pilih tugas Terbitkan Artefak dan isi bidang yang diperlukan sebagai berikut:

    • Nama tampilan: Terbitkan Artefak
    • Jalur untuk menerbitkan: $(build.artifactstagingdirectory)
    • Nama artefak: hilangkan
    • Lokasi penerbitan artefak: Azure Pipelines

    Cuplikan layar memperlihatkan cara menyiapkan tugas menerbitkan artefak di alur klasik di Azure DevOps Server 2019.

  12. Pilih Simpan &antrean, lalu pilih Simpan &antrean untuk menjalankan alur build Anda.

  13. Setelah eksekusi alur selesai, pilih Artefak lalu pilih jatuhkan.

  14. Di jendela yang baru dibuka, pilih letakkan>secret.txt, pilih ikon elipsis (...), lalu pilih unduh untuk menyimpan file teks.

  15. Buka file teks yang baru saja Anda unduh, file tersebut harus berisi rahasia dari brankas kunci Azure Anda.

Peringatan

Tutorial ini hanya untuk tujuan pendidikan. Untuk praktik terbaik keamanan dan cara bekerja dengan aman dengan rahasia, lihat Mengelola rahasia di aplikasi server Anda dengan Azure Key Vault.

Membersihkan sumber daya

Ikuti langkah-langkah di bawah ini untuk menghapus sumber daya yang Anda buat:

  1. Jika Anda telah membuat organisasi baru untuk menghosting proyek Anda, lihat cara menghapus organisasi Anda, jika tidak , hapus proyek Anda.

  2. Semua sumber daya Azure yang dibuat selama tutorial ini dihosting di bawah satu grup sumber daya. Jalankan perintah berikut untuk menghapus grup sumber daya Anda dan semua sumber dayanya.

    az group delete --name <YOUR_RESOURCE_GROUP_NAME>
    

FAQ

T: Saya mendapatkan kesalahan berikut: "pengguna atau grup tidak memiliki izin daftar rahasia" apa yang harus saya lakukan?

A: Jika Anda mengalami kesalahan yang menunjukkan bahwa pengguna atau grup tidak memiliki izin daftar rahasia pada brankas kunci, jalankan perintah berikut untuk mengotorisasi aplikasi Anda untuk mengakses kunci atau rahasia di Azure Key Vault:

$ErrorActionPreference="Stop";
$Credential = Get-Credential;
Connect-AzAccount -SubscriptionId <YOUR_SUBSCRIPTION_ID> -Credential $Credential;
$spn=(Get-AzureRmADServicePrincipal -SPN <YOUR_SERVICE_PRINCIPAL_ID>);
$spnObjectId=$spn.Id;
Set-AzureRmKeyVaultAccessPolicy -VaultName key-vault-tutorial -ObjectId $spnObjectId -PermissionsToSecrets get,list;