Mengautentikasi Azure Spring Apps dengan Azure Key Vault di GitHub Actions
Catatan
Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.
Artikel ini berlaku untuk: ✔️ Java ✔️ C#
Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise
Artikel ini menunjukkan cara menggunakan Key Vault dengan alur kerja CI/CD untuk Azure Spring Apps dengan Tindakan GitHub.
Brankas kunci adalah tempat yang aman untuk menyimpan kunci. Pengguna perusahaan perlu menyimpan info masuk untuk lingkungan CI/CD dalam cakupan yang mereka kontrol. Kunci untuk mendapatkan info masuk di brankas kunci harus terbatas pada cakupan sumber daya. Kunci ini hanya memiliki akses ke cakupan brankas kunci, bukan seluruh cakupan Azure. Kunci ini diumpamakan hanya dapat membuka kotak yang kuat bukan merupakan kunci utama yang dapat membuka semua pintu di sebuah bangunan. Ini adalah cara untuk mendapatkan kunci menggunakan kunci lain, yang berguna dalam alur kerja CICD.
Membuat Info Masuk
Untuk membuat kunci untuk mengakses brankas kunci, jalankan perintah di bawah ini pada komputer lokal Anda:
az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT> --json-auth
Cakupan yang ditentukan oleh parameter --scopes
membatasi akses kunci ke sumber daya. Kunci ini hanya dapat mengakses kotak yang kuat.
Dengan hasil:
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
Kemudian simpan hasilnya ke rahasia GitHub seperti yang dijelaskan dalam Menyiapkan repositori GitHub Anda dan mengautentikasi dengan Azure.
Menambahkan Kebijakan Akses untuk Info Masuk
Info masuk yang Anda buat di atas hanya bisa mendapatkan informasi umum tentang Key Vault, bukan konten yang disimpannya. Untuk mendapatkan rahasia yang disimpan di Key Vault, Anda memerlukan kebijakan akses yang ditetapkan untuk info masuk.
Buka dasbor Key Vault di portal Microsoft Azure, pilih menu Kontrol akses, lalu buka tab Penetapan peran. Pilih Aplikasi untuk Jenis dan This resource
untuk cakupan. Anda akan melihat info masuk yang Anda buat di langkah sebelumnya:
Salin nama pada info masuk, misalnya, azure-cli-2020-01-19-04-39-02
. Buka menu Kebijakan akses, lalu pilih tautan Tambahkan Kebijakan Akses. Pilih Secret Management
untuk Templat, lalu pilih Utama. Tempelkan nama info masuk di Utama/Pilih kotak input:
Pilih tombol Tambahkan dalam dialog Tambahkan kebijakan akses, lalu pilih Simpan.
Buat info masuk Azure dengan cakupan penuh
Ini adalah kunci utama yang dapat membuka semua pintu di dalam gedung. Prosedur ini mirip dengan langkah sebelumnya, tetapi di sini kita mengubah ruang lingkup untuk menghasilkan kunci utama:
az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID> --json-auth
Sekali lagi, hasil:
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
Salin seluruh untai (karakter) JSON. Kembali ke dasbor Key Vault. Buka menu Rahasia, lalu pilih tombol Buat/Impor. Masukkan nama rahasia, seperti AZURE-CREDENTIALS-FOR-SPRING
. Tempelkan untai (karakter) info masuk JSON ke kotak input Nilai. Anda mungkin melihat kotak input nilai adalah bidang teks satu baris, bukan area teks multi-baris. Anda dapat menempelkan untai (karakter) JSON lengkap di sana.
Menggabungkan info masuk dalam GitHub Actions
Atur info masuk yang digunakan saat alur CICD dijalankan:
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }} # Strong box key you generated in the first step
- uses: Azure/get-keyvault-secrets@v1.0
with:
keyvault: "<Your Key Vault Name>"
secrets: "AZURE-CREDENTIALS-FOR-SPRING" # Master key to open all doors in the building
id: keyvaultaction
- uses: azure/login@v1
with:
creds: ${{ steps.keyvaultaction.outputs.AZURE-CREDENTIALS-FOR-SPRING }}
- name: Azure CLI script
uses: azure/CLI@v1
with:
azcliversion: 2.0.75
inlineScript: |
az extension add --name spring # Spring CLI commands from here
az spring list
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk