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
Organisasi Azure DevOps dan proyek. Buat organisasi atau proyek jika Anda belum melakukannya.
Langganan Azure. Buat akun Azure secara gratis jika Anda belum memilikinya.
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.
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Repos, lalu pilih Inisialisasi untuk menginisialisasi cabang utama dengan README.
Membuat Azure Key Vault
Masuk ke Portal Microsoft Azure, lalu pilih tombol Cloud Shell di sudut kanan atas.
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>
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>
Membuat grup sumber daya baru.
az group create --name <YOUR_RESOURCE_GROUP_NAME>
Buat Azure Key Vault baru.
az keyvault create \ --name <YOUR_KEY_VAULT_NAME> \ --resource-group <YOUR_RESOURCE_GROUP_NAME>
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.
Navigasi ke portal Azure, lalu gunakan bilah pencarian untuk menemukan brankas kunci yang Anda buat sebelumnya.
Pilih Kebijakan akses, lalu pilih Buat untuk membuat kebijakan baru.
Di bawah Izin rahasia, pilih Dapatkan dan Daftar.
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.
Pilih Berikutnya, lalu Berikutnya sekali lagi.
Tinjau kebijakan Anda, lalu pilih Buat setelah selesai.
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:
Navigasi ke portal Azure
Pilih Langganan dari panel navigasi kiri, lalu temukan dan pilih langganan Anda.
Pilih Kontrol akses, lalu pilih Tambahkan>penetapan peran.
Pilih Pembaca di bawah tab Peran , lalu pilih Berikutnya.
Pilih Pengguna, grup, atau perwakilan layanan, lalu pilih Pilih anggota.
Gunakan bilah pencarian untuk menemukan perwakilan layanan Anda, lalu pilih tanda "+" untuk memilihnya, lalu klik tombol Pilih .
Pilih Tinjau + tetapkan, tinjau pengaturan Anda, lalu pilih Tinjau + tetapkan sekali lagi untuk mengonfirmasi pilihan Anda dan menambahkan penetapan peran.
Membuat koneksi layanan
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Pengaturan proyek>Koneksi layanan, lalu pilih Koneksi layanan baru untuk membuat koneksi layanan baru.
Pilih Azure Resource Manager, lalu pilih Berikutnya.
Pilih Perwakilan layanan (manual), lalu pilih Berikutnya.
Pilih Azure Cloud untuk Lingkungan dan Langganan untuk Tingkat Cakupan, lalu masukkan ID Langganan dan Nama Langganan Anda.
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.
Setelah verifikasi berhasil, berikan nama dan deskripsi (opsional) untuk koneksi layanan Anda, lalu centang kotak Centang Berikan izin akses ke semua alur .
Pilih Verifikasi dan simpan saat Anda selesai.
Masuk ke koleksi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Pengaturan>proyek Koneksi layanan Koneksi> layanan baru lalu pilih Azure Resource Manager untuk membuat koneksi layanan ARM baru.
Beri nama koneksi layanan Anda, lalu pilih Azure Cloud untuk Lingkungan dan Langganan untuk Tingkat Cakupan.
Masukkan ID Langganan dan Nama Langganan Anda.
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.
Centang kotak Izinkan semua alur untuk menggunakan koneksi ini, lalu pilih Ok setelah selesai.
Membuat alur baru
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Alur, lalu pilih Alur Baru.
Pilih Gunakan editor klasik untuk membuat alur klasik.
Pilih Azure Repos Git, pilih repositori dan cabang default Anda, lalu pilih Lanjutkan.
Pilih templat alur .Net Desktop .
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.
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
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
Pilih tugas Salin file dan isi bidang yang diperlukan sebagai berikut:
- Nama tampilan: Salin File
- Isi: secret.txt
- Folder Target: $(build.artifactstagingdirectory)
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
Pilih Simpan dan antrean, lalu pilih Jalankan untuk menjalankan alur Anda.
Setelah eksekusi alur selesai, kembali ke ringkasan alur dan pilih artefak yang diterbitkan.
Pilih jatuhkan>secret.txt untuk mengunduh artefak yang diterbitkan.
Buka file teks yang baru saja Anda unduh, file teks harus berisi rahasia dari brankas kunci Azure Anda.
Masuk ke koleksi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Alur, lalu pilih Build.
Pilih Alur build baru>.
Pilih Gunakan editor klasik untuk membuat alur build klasik baru.
Pilih Azure Repos Git, pilih repositori dan cabang default Anda, lalu pilih Lanjutkan.
Pilih templat alur .Net Desktop, lalu pilih Terapkan.
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.
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
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
Pilih tugas Salin file dan isi bidang yang diperlukan sebagai berikut:
- Nama tampilan: Salin File
- Isi: secret.txt
- Folder Target: $(build.artifactstagingdirectory)
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
Pilih Simpan &antrean, lalu pilih Simpan &antrean untuk menjalankan alur build Anda.
Setelah eksekusi alur selesai, pilih Artefak lalu pilih jatuhkan.
Di jendela yang baru dibuka, pilih letakkan>secret.txt, pilih ikon elipsis (...), lalu pilih unduh untuk menyimpan file teks.
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:
Jika Anda telah membuat organisasi baru untuk menghosting proyek Anda, lihat cara menghapus organisasi Anda, jika tidak , hapus proyek Anda.
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;