Azure'a bağlanmak için GitHub Actions'ı kullanma
Azure kaynaklarınızla etkileşime geçmek için Azure PowerShell veya Azure CLI ile Azure oturum açma özelliğini kullanmayı öğrenin.
GitHub Actions iş akışında Azure PowerShell veya Azure CLI kullanmak için önce Azure oturum açma eylemiyle oturum açmanız gerekir.
Azure oturum açma eylemi, Azure ile kimlik doğrulaması yapmanın iki farklı yolunu destekler:
- Gizli dizilerle hizmet sorumlusu
- Federasyon Kimliği Kimlik Bilgileri kullanan bir Azure hizmet sorumlusuyla OpenID Bağlan (OIDC)
Varsayılan olarak, oturum açma eylemi Azure CLI ile oturum açar ve Azure CLI için GitHub Actions çalıştırıcı ortamını ayarlar. Azure PowerShell'i Azure oturum açma eyleminin özelliğiyle enable-AzPSSession
kullanabilirsiniz. Bu, Azure PowerShell modülüyle GitHub Actions çalıştırıcı ortamını ayarlar.
Azure Kamu ve Azure Stack Hub dahil olmak üzere genel veya bağımsız bulutlara bağlanmak için Azure oturum açma bilgilerini kullanabilirsiniz.
OpenID Bağlan ile Azure oturum açma eylemini kullanma
OpenID Bağlan ile Azure Oturum Açma özelliğini ayarlamak ve gitHub Actions iş akışında kullanmak için şunları yapmanız gerekir:
- Aboneliğinize uygun bir rol atanmış hizmet sorumlusuna sahip bir Microsoft Entra uygulaması.
- GitHub Actions tarafından GitHub deponuza verilen belirteçlere güvenmek için federasyon kimlik bilgileriyle yapılandırılmış bir Microsoft Entra uygulaması. Bunu Azure portalında veya Microsoft Graph REST API'leriyle yapılandırabilirsiniz.
- İş akışına GitHub sorun belirteçleri isteyen ve Azure oturum açma eylemini kullanan bir GitHub Actions iş akışı.
Microsoft Entra uygulaması ve hizmet sorumlusu oluşturma
İş akışınızın aboneliğinize erişebilmesi için bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturmanız ve ardından aboneliğinizde uygulamanıza bir rol atamanız gerekir.
Mevcut bir uygulamanız yoksa kaynaklara erişebilen yeni bir Microsoft Entra uygulaması ve hizmet sorumlusu kaydedin. Bu işlemin bir parçası olarak şunları yaptığınızdan emin olun:
- Uygulamanızı Microsoft Entra Id ile kaydetme ve hizmet sorumlusu oluşturma
- Uygulamaya rol atama
Azure portalında Uygulama kayıtları açın ve uygulamanızı bulun. GitHub Actions iş akışınızda kullanmak üzere Uygulama (istemci) kimliği ve Dizin (kiracı) kimliği değerlerini kopyalayın.
Azure portalında Abonelikler'i açın ve aboneliğinizi bulun. Abonelik Kimliğini kopyalayın.
Federasyon kimlik bilgileri ekleme
Federasyon kimlik bilgilerini Azure portalında veya Microsoft Graph REST API'siyle ekleyebilirsiniz.
- Azure portalında Uygulama kayıtları gidin ve yapılandırmak istediğiniz uygulamayı açın.
- Uygulamanın içinde Sertifikalar ve gizli diziler'e gidin.
- Federasyon kimlik bilgileri sekmesinde Kimlik bilgisi ekle'yi seçin.
- Azure kaynaklarını dağıtan GitHub Actions kimlik bilgisi senaryosunu seçin. Kimlik bilgilerinizi oluşturmak için kimlik bilgilerinizi girin.
Alan | Veri Akışı Açıklaması | Örnek |
---|---|---|
Kuruluş | GitHub kuruluşunuzun adı veya GitHub kullanıcı adı. | contoso |
Depo | GitHub Deponuzun adı. | contoso-app |
Varlık türü | GitHub iş akışlarından gelen OIDC isteklerinin kapsamını belirlemede kullanılan filtre. Bu alan, talebi oluşturmak subject için kullanılır. |
Environment , Branch , Pull request , Tag |
GitHub adı | Ortamın, dalın veya etiketin adı. | main |
Adı | Federasyon kimlik bilgilerinin tanımlayıcısı. | contoso-deploy |
Daha ayrıntılı bir genel bakış için bkz . GitHub deposuna güvenecek bir uygulama yapılandırma.
GitHub gizli dizileri oluşturma
Oturum açma eylemine uygulamanızın İstemci Kimliğini, Kiracı Kimliğini ve Abonelik Kimliğini sağlamanız gerekir. Bu değerler doğrudan iş akışında sağlanabilir veya GitHub gizli dizilerinde depolanabilir ve iş akışınızda başvurulabilir. Değerleri GitHub gizli dizileri olarak kaydetmek daha güvenli bir seçenektir.
GitHub deponuzu açın ve Ayarlar gidin.
Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.
,
AZURE_TENANT_ID
veAZURE_SUBSCRIPTION_ID
içinAZURE_CLIENT_ID
gizli diziler oluşturun. GitHub gizli dizileriniz için Azure Active Directory uygulamanızdaki şu değerleri kullanın:GitHub Gizli Dizisi Azure Active Directory Uygulaması AZURE_CLIENT_ID Uygulama (istemci) kimliği AZURE_TENANT_ID Dizin (kiracı) kimliği AZURE_SUBSCRIPTION_ID Abonelik Kimliği Gizli dizi ekle'yi seçerek her gizli diziyi kaydedin.
OpenID Bağlan kimlik doğrulaması ile Azure Oturum Açma'yı ayarlama
GitHub Actions iş akışınız, Azure ile kimlik doğrulaması yapmak için OpenID Bağlan kullanır. Bu etkileşim hakkında daha fazla bilgi edinmek için GitHub Actions belgelerine bakın.
Bu örnekte, Azure oturum açma eylemiyle Azure'da kimlik doğrulaması yapmak için Azure CLI Bağlan OpenID kullanacaksınız. Örnekte , tenant-id
ve subscription-id
değerleri için client-id
GitHub gizli dizileri kullanılmaktadır. Bu değerleri doğrudan oturum açma eyleminde de geçirebilirsiniz.
Azure oturum açma eylemi, varsayılan olarak api://AzureADTokenExchange
olarak belirtilen isteğe bağlı audience
bir giriş parametresi içerir. Özel hedef kitle değerleri için bu parametreyi güncelleştirebilirsiniz.
Bu iş akışı OpenID Bağlan ile kimlik doğrulaması yapar ve bağlı aboneliğin ve liste kaynak grubunun ayrıntılarını almak için Azure CLI'yi kullanır.
name: Run Azure Login with OpenID Connect
on: [push]
permissions:
id-token: write
contents: read
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: 'Az CLI login'
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: 'Run Azure CLI commands'
run: |
az account show
az group list
pwd
OpenID ile azure oturum açma işleminin başarılı olduğunu doğrulama
Az CLI login
Eylemi açın ve başarıyla çalıştırıldığını doğrulayın. iletisini Login successful
görmeniz gerekir. Oturumunuz başarısız olursa iletisini Az CLI Login failed.
görürsünüz.
Azure oturum açma eylemini hizmet sorumlusu gizli dizisiyle kullanma
Azure oturum açma bilgilerini bir hizmet sorumlusuyla kullanmak için önce Azure hizmet sorumlunuzu GitHub deponuza gizli dizi olarak eklemeniz gerekir.
Hizmet sorumlusu oluşturma
Bu örnekte, Azure'da kimlik doğrulaması yapmak için kullanabileceğiniz adlı bir gizli dizi AZURE_CREDENTIALS
oluşturacaksınız.
Azure portalda veya Azure CLI'da Azure Cloud Shell'i yerel olarak açın.
Dekont
Azure Stack Hub kullanıyorsanız SQL Management uç noktanızı olarak
not supported
ayarlamanız gerekir.az cloud update -n {environmentName} --endpoint-sql-management https://notsupported
Uygulamanız için Azure portalında yeni bir hizmet sorumlusu oluşturun. Hizmet sorumlusu uygun bir rolle atanmalıdır.
az ad sp create-for-rbac --name "myApp" --role contributor \ --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} \ --json-auth
parametresi
--json-auth
, Azure CLI sürümlerinde >= 2.51.0'da erişilebilen oturum açma eylemi tarafından kabul edilen sonuç sözlüğü çıktısını alır. Bu--sdk-auth
kullanımdan önceki sürümler kullanımdan kaldırma uyarısıyla kullanılır.Hizmet sorumlunuzun JSON nesnesini kopyalayın.
{ "clientId": "<GUID>", "clientSecret": "<GUID>", "subscriptionId": "<GUID>", "tenantId": "<GUID>", (...) }
Hizmet sorumlusunu GitHub gizli dizisi olarak ekleme
Gezinti menüsünde Ayarlar gidin.
Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.
Yeni depo gizli dizisi'ni seçin.
Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını
AZURE_CREDENTIALS
verin.Add secret (Gizli dizi ekle) öğesini seçin.
Azure oturum açma eylemini kullanma
Azure'da kimlik doğrulaması yapmak için Azure Oturum Açma eylemiyle hizmet sorumlusu gizli dizisini kullanın.
Bu iş akışında, içinde depolanan secrets.AZURE_CREDENTIALS
hizmet sorumlusu ayrıntılarıyla Azure oturum açma eylemini kullanarak kimlik doğrulaması yaparsınız. Ardından bir Azure CLI eylemi çalıştırırsınız. Bir iş akışı dosyasında GitHub gizli dizilerine başvurma hakkında daha fazla bilgi için bkz . GitHub Docs'ta bir iş akışında şifrelenmiş gizli dizileri kullanma.
Çalışan bir Azure oturum açma adımına sahip olduktan sonra Azure PowerShell veya Azure CLI eylemlerini kullanabilirsiniz. Azure webapp dağıtımı ve Azure işlevleri gibi diğer Azure eylemlerini de kullanabilirsiniz.
on: [push]
name: AzureLoginSample
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Log in with Azure
uses: azure/login@v1
with:
creds: '${{ secrets.AZURE_CREDENTIALS }}'
Azure PowerShell eylemini kullanma
Bu örnekte, Azure Oturum Açma eylemiyle oturum açar ve ardından Azure PowerShell eylemiyle bir kaynak grubu alırsınız.
on: [push]
name: AzureLoginSample
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Log in with Azure
uses: azure/login@v1
with:
creds: '${{ secrets.AZURE_CREDENTIALS }}'
enable-AzPSSession: true
- name: Azure PowerShell Action
uses: Azure/powershell@v1
with:
inlineScript: Get-AzResourceGroup -Name "< YOUR RESOURCE GROUP >"
azPSVersion: "latest"
Azure CLI eylemini kullanma
Bu örnekte, Azure Oturum Açma eylemiyle oturum açar ve ardından Azure CLI eylemiylebir kaynak grubu alırsınız.
on: [push]
name: AzureLoginSample
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Log in with Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Azure CLI script
uses: azure/CLI@v1
with:
azcliversion: 2.0.72
inlineScript: |
az account show
az storage -h
Azure Kamu ve Azure Stack Hub bulutlarına Bağlan
Azure Kamu bulutlarından birinde oturum açmak için, desteklenen bulut adlarıyla AzureUSGovernment
veya AzureChinaCloud
isteğe bağlı parametre ortamını ayarlayın. Bu parametre belirtilmezse, varsayılan değeri AzureCloud
alır ve Azure Genel Bulut'a bağlanır.
- name: Login to Azure US Gov Cloud with CLI
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_US_GOV_CREDENTIALS }}
environment: 'AzureUSGovernment'
enable-AzPSSession: false
- name: Login to Azure US Gov Cloud with Az Powershell
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_US_GOV_CREDENTIALS }}
environment: 'AzureUSGovernment'
enable-AzPSSession: true
Diğer Azure hizmetleriyle Bağlan
Aşağıdaki makaleler, Azure'dan ve diğer hizmetlerden GitHub'a bağlanmayla ilgili ayrıntılar sağlar.