Aracılığıyla paylaş


GitHub Actions'ta Azure Key Vault ile Azure Spring Apps'in kimliğini doğrulama

Not

Temel, Standardve Enterprise planları 17 Mart 2025'te kullanımdan kaldırma dönemine girdi. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.

Standart tüketim ve ayrılmış planı 30 Eylül 2024'te emeklilik dönemine girdi ve Mart 2025 sonuna kadar tamamen kapatılacak. Daha fazla bilgi için bkz Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.

Bu makale şunlar için geçerlidir:✅ Java ✅ C#

Bu makale şunlar için geçerlidir:✅ Temel/Standart ✅ Kurumsal

Bu makalede, GitHub Actions ile Azure Spring Apps için CI/CD iş akışıyla Key Vault'u nasıl kullanacağınız gösterilmektedir.

Anahtar kasası, anahtarları depolamak için güvenli bir yerdir. Kurumsal kullanıcıların CI/CD ortamları için kimlik bilgilerini denetledikleri kapsamda depolaması gerekir. Anahtar kasasında kimlik bilgilerini alma anahtarı kaynak kapsamıyla sınırlı olmalıdır. Azure kapsamının tamamına değil, yalnızca anahtar kasası kapsamına erişimi vardır. Bir binadaki tüm kapıları açabilen ana anahtar değil, sadece güçlü bir kutuyu açabilen bir anahtar gibidir. Bu, CICD iş akışında yararlı olan başka bir anahtarla anahtar edinmenin bir yoludur.

Kimlik Bilgisi Oluştur

Anahtar kasasına erişim anahtarını oluşturmak için yerel makinenizde aşağıdaki komutu çalıştırın:

az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT> --json-auth

parametresi tarafından --scopes belirtilen kapsam, kaynağa anahtar erişimini sınırlar. Yalnızca güçlü kutuya erişebilir.

Sonuçlarla:

{
    "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/"
}

Ardından sonuçları GitHub deponuzu ayarlama ve Azure ile kimlik doğrulaması bölümünde açıklandığı gibi GitHub gizli dizilerine kaydedin.

Kimlik Bilgileri için Erişim İlkeleri Ekleme

Yukarıda oluşturduğunuz kimlik bilgileri, yalnızca Key Vault hakkında genel bilgiler edinebilir, içeriklerini değil. Key Vault'ta depolanan gizli anahtarları almak için kimlik doğrulama için erişim ilkeleri ayarlamanız gerekir.

Azure portalında Key Vault panosuna gidin, Erişim denetimi menüsünü seçin ve rol atamaları sekmesini açın. Tür için Uygulamalar ve kapsam için Bu kaynak'ı seçin. Önceki adımda oluşturduğunuz kimlik bilgilerini görmeniz gerekir:

Rol atamaları sekmesinin vurgulandığı Erişim denetim sayfasını gösteren Azure portalının ekran görüntüsü.

Kimlik bilgisi adını kopyalayın; örneğin, azure-cli-2020-01-19-04-39-02. Erişim ilkeleri menüsünü açın, ardından Erişim İlkesi Ekle bağlantısını seçin. Gizli Yönetimi için Şablon'u seçin, ardından İlke'yi seçin. Kimlik bilgisi adını Asıl/Seçim giriş kutusuna yapıştırın:

Azure portalının, Temel ekranın açık olduğu Erişim ilkesi ekle sayfasını gösteren ekran görüntüsü.

Erişim ilkesi ekle iletişim kutusunda Ekle düğmesini ve ardından Kaydet'i seçin.

Tam kapsamlı Azure Kimlik Bilgileri oluşturma

Bu, binadaki tüm kapıları açmak için ana anahtardır. Yordam önceki adıma benzer, ancak burada ana anahtarı oluşturmak için kapsamı değiştiriyoruz:

az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID> --json-auth

Sonuçlar:

{
    "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/"
}

JSON dizesinin tamamını kopyalayın. Key Vault panosuna geri dönün. GizliSırlar menüsünü açın, ardından Oluştur/İçeri Aktar düğmesini seçin. AZURE-CREDENTIALS-FOR-SPRING gibi gizli adını girin. JSON kimlik bilgisi dizesini Değer giriş kutusuna yapıştırın. Değer giriş kutusunun çok satırlı metin alanı yerine tek satırlı bir metin alanı olduğunu fark edebilirsiniz. JSON dizesinin tamamını buraya yapıştırabilirsiniz.

Gizli dizi oluştur sayfasını gösteren Azure portalının ekran görüntüsü.

GitHub Actions'ta kimlik bilgilerini birleştirme

CICD işlem hattı yürütülürken kullanılan kimlik bilgilerini ayarlayın:

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

Sonraki adımlar