Bagikan melalui


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:

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

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:

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

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.

Cuplikan layar portal Azure yang memperlihatkan halaman Buat rahasia.

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