Bagikan melalui


Mengautentikasi Azure Spring Apps dengan Azure Key Vault di GitHub Actions

Note

Paket Basic, Standard, dan Enterprise memasuki periode pensiun pada 17 Maret 2025. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.

Artikel ini berlaku untuk:✅ Java ✅ C#

Artikel ini berlaku untuk:✅ Basic/Standard ✅ Enterprise

Artikel ini memperlihatkan kepada Anda cara menggunakan Key Vault dengan alur kerja CI/CD untuk Azure Spring Apps dengan GitHub Actions.

Brankas kunci adalah tempat yang aman untuk menyimpan kunci. Pengguna perusahaan perlu menyimpan kredensial untuk lingkungan CI/CD dalam cakupan yang mereka kontrol. Kunci untuk mendapatkan kredensial di brankas kunci harus terbatas pada cakupan sumber daya. Ini hanya memiliki akses ke ruang lingkup brankas kunci, bukan seluruh ruang lingkup Azure. Ini seperti kunci yang hanya dapat membuka kotak yang kuat bukan kunci utama yang dapat membuka semua pintu di sebuah bangunan. Ini adalah cara untuk mendapatkan kunci dengan kunci lain, yang berguna dalam alur kerja CICD.

Hasilkan Kredensial

Untuk menghasilkan 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 --scopes parameter membatasi akses kunci ke sumber daya. 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 Kredensial

Kredensial yang Anda buat di atas hanya bisa mendapatkan informasi umum tentang Key Vault, bukan konten yang disimpan di dalamnya. Untuk mendapatkan rahasia yang disimpan di Key Vault, Anda perlu menetapkan kebijakan akses untuk kredensial.

Buka dasbor Key Vault di portal Microsoft Azure, pilih menu Kontrol akses , lalu buka tab Penetapan peran . Pilih Aplikasi untuk Jenis dan Sumber daya ini untuk cakupan. Anda akan melihat kredensial yang Anda buat di langkah sebelumnya:

Cuplikan layar portal Microsoft Azure yang memperlihatkan halaman Kontrol akses dengan tab Penetapan peran disorot.

Salin nama kredensial, misalnya, azure-cli-2020-01-19-04-39-02. Buka menu Kebijakan akses , lalu pilih tautan Tambahkan Kebijakan Akses . Pilih Manajemen Rahasia untuk Templat, lalu pilih Utama. Tempelkan nama kredensial di dalam kotak input Utama/Pilih:

Cuplikan layar portal Microsoft Azure yang memperlihatkan halaman Tambahkan kebijakan akses dengan panel Utama terbuka.

Pilih tombol Tambahkan di dialog Tambahkan kebijakan akses , lalu pilih Simpan.

Hasilkan Kredensial Azure cakupan penuh

Ini adalah kunci utama untuk membuka semua pintu di dalam gedung. Prosedur ini mirip dengan langkah sebelumnya, tetapi di sini kita mengubah cakupan untuk menghasilkan kunci master:

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 string JSON. Kembali ke dasbor Key Vault . Buka menu Rahasia , lalu pilih tombol Buat/Impor . Masukkan nama rahasia, seperti AZURE-CREDENTIALS-FOR-SPRING. Tempelkan string kredensial JSON ke kotak Input nilai . Anda mungkin melihat kotak input nilai adalah bidang teks satu baris, bukan area teks multibaris. Anda dapat menempelkan string JSON lengkap di sana.

Cuplikan layar portal Microsoft Azure yang memperlihatkan halaman Buat rahasia.

Menggabungkan kredensial dalam GitHub Actions

Atur kredensial 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 selanjutnya