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:
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:
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-SPRING
gizli 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.
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