Aracılığıyla paylaş


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

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

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şmek üzere bir anahtar oluşturmak için yerel makinenizde aşağıdaki komutu yürütebilirsiniz:

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, depoladığınız içerikle değil yalnızca Key Vault hakkında genel bilgiler alabilir. Key Vault'ta depolanan gizli dizileri almak için kimlik bilgileri için erişim ilkeleri ayarlamanız gerekir.

Azure portalında Key Vault panosuna gidin, Erişim denetimi menüsünü seçin, ardından Rol atamaları sekmesini açın. Tür ve This resource kapsam için Uygulamalar'ı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. Şablon'a ve ardından Sorumlu'ya tıklayın.Secret Management Kimlik bilgisi adını Asıl/Seçim giriş kutusuna yapıştırın:

Sorumlu bölmesinin açık olduğu Erişim ilkesi ekle sayfasını gösteren Azure portalının 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. Gizli Dizilermenüsünü açın, ardından Oluştur/İçeri Aktar düğmesini seçin. Gibi AZURE-CREDENTIALS-FOR-SPRINGgizli dizi 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