Menggunakan rahasia Azure Key Vault di Azure Pipelines
Azure DevOps | Azure DevOps Server 2020 | Azure DevOps Server 2019
Azure Key Vault memungkinkan pengembang untuk menyimpan dan mengelola rahasia dengan aman seperti kunci API, kredensial, atau sertifikat. Layanan Azure Key Vault mendukung dua jenis kontainer: brankas dan kumpulan HSM terkelola (modul keamanan perangkat keras). Vault mendukung penyimpanan perangkat lunak dan kunci, rahasia, dan sertifikat yang didukung HSM, sementara kumpulan HSM terkelola hanya mendukung kunci yang didukung HSM.
Dalam tutorial ini, Anda akan belajar cara:
- Membuat Key Vault Azure menggunakan Azure CLI
- Menambahkan rahasia dan mengonfigurasi akses ke brankas kunci Azure
- Menggunakan rahasia di alur Anda
Prasyarat
- Organisasi Azure DevOps. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
- Langganan Azure. Buat akun Azure secara gratis jika Anda belum memilikinya.
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 listuntuk membuat daftar langganan Anda.az account set --subscription <your_subscription_name_or_ID>Atur wilayah Azure default Anda. Anda dapat menggunakan
az account list-locationsuntuk membuat daftar wilayah yang tersedia.az config set defaults.location=<your_region>Misalnya, perintah ini akan memilih wilayah westus2:
az config set defaults.location=westus2Membuat grup sumber daya baru. Grup sumber daya adalah penampung yang menampung sumber daya terkait untuk sebuah solusi Azure.
az group create --name <your-resource-group>Buat brankas kunci baru.
az keyvault create \ --name <your-key-vault> \ --resource-group <your-resource-group>Buat rahasia baru di brankas kunci Azure Anda.
az keyvault secret set \ --name "Password" \ --value "mysecretpassword" \ --vault-name <your-key-vault-name>
Membuat proyek
Masuk ke Organisasi Azure DevOps Anda.
Jika Anda belum memiliki proyek apa pun di organisasi Anda, pilih Buat proyek untuk memulai. Jika tidak, pilih Proyek baru di sudut kanan atas.
Membuat repositori
Kami akan menggunakan YAML untuk membuat alur kami tetapi pertama-tama kita perlu membuat repositori baru.
Masuk ke organisasi Azure DevOps Anda dan arahkan ke proyek Anda.
Pilih Repositori, lalu pilih Inisialisasi untuk menginisialisasi repositori baru dengan README.
Buat alur baru
Pilih Alur, lalu pilih Alur Baru.
Pilih Azure Repos Git (YAML) .
Pilih repositori yang Anda buat di langkah sebelumnya.
Pilih templat alur Starter .
Alur default akan menyertakan beberapa skrip yang menjalankan perintah echo. Itu tidak diperlukan sehingga kita dapat menghapusnya. File YAML baru Anda akan terlihat seperti ini:
trigger: - main pool: vmImage: 'ubuntu-latest' steps:Pilih Perlihatkan asisten untuk memperluas panel asisten. Panel ini menyediakan daftar tugas alur yang nyaman dan dapat dicari.
Cari vault dan pilih tugas Azure Key Vault.
Pilih langganan Azure Anda lalu pilih Otorisasi. Pilih Brankas kunci Anda dari menu dropdown, lalu pilih Tambahkan untuk menambahkan tugas ke alur YAML Anda.
Catatan
Fitur Buat rahasia tersedia untuk seluruh pekerjaan tidak didukung di Azure DevOps Server 2019 dan 2020.
File YAML Anda akan terlihat seperti berikut ini:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 inputs: azureSubscription: 'Your-Azure-Subscription' KeyVaultName: 'Your-Key-Vault-Name' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 inputs: script: 'echo $(Your-Secret-Name) > secret.txt' - task: CopyFiles@2 inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
Jangan menyimpan atau mengantrekan alur Anda dulu. Pertama-tama kita harus memberikan alur kita izin yang tepat untuk mengakses Azure Key Vault. Biarkan tab browser Anda terbuka, kami akan melanjutkan langkah-langkah yang tersisa setelah kami menyiapkan izin brankas kunci.
Menyiapkan kebijakan akses Azure Key Vault
Untuk mengakses azure Key Vault kami, pertama-tama kita harus menyiapkan perwakilan layanan untuk memberikan akses ke Azure Pipelines. Ikuti panduan ini untuk membuat perwakilan layanan Anda lalu lanjutkan dengan langkah-langkah berikutnya di bagian ini.
Navigasi ke portal Azure.
Gunakan bilah pencarian untuk mencari brankas kunci yang Anda buat sebelumnya.
Di bawah Pengaturan Pilih Kebijakan akses.
Pilih Tambahkan Kebijakan Akses untuk menambahkan kebijakan baru.
Untuk Izin rahasia, pilih Dapatkan dan Daftar.
Pilih opsi untuk memilih perwakilan layanan dan cari yang Anda buat di awal bagian ini. Perwakilan keamanan adalah objek yang mewakili pengguna, grup, layanan, atau aplikasi yang meminta akses ke sumber daya Azure.
Pilih Tambahkan untuk membuat kebijakan akses, lalu pilih Simpan setelah selesai.
Menjalankan dan meninjau alur
Kembali ke tab sebelumnya di mana kita tinggalkan.
Pilih Simpan, lalu pilih Simpan lagi untuk menerapkan perubahan Anda dan memicu alur. Anda mungkin diminta untuk mengizinkan akses alur ke sumber daya Azure, jika diminta pilih Izinkan. Anda hanya perlu menyetujui alur Anda sekali.
Pilih tugas CmdLine untuk melihat log.
Kembali ke ringkasan alur dan pilih artefak yang diterbitkan.
Pilih artefak secret.txt untuk membukanya.
File teks harus berisi rahasia kami: mysecretpassword.
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 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 PipelinesKeyVaultResourceGroup. Jalankan perintah berikut untuk menghapus grup sumber daya dan semua sumber dayanya.
az group delete --name PipelinesKeyVaultResourceGroup
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 di 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;