Share via


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:

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:

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.

  1. 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
  2. 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.

  3. 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.

  1. Azure portalında Uygulama kayıtları gidin ve yapılandırmak istediğiniz uygulamayı açın.
  2. Uygulamanın içinde Sertifikalar ve gizli diziler'e gidin.
    Select Certificates & secrets.
  3. Federasyon kimlik bilgileri sekmesinde Kimlik bilgisi ekle'yi seçin. Add the federated credential
  4. 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.

  1. GitHub deponuzu açın ve Ayarlar gidin.

    Select Settings in the navigation

  2. Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.

    Choose to add a secret

  3. , AZURE_TENANT_IDve AZURE_SUBSCRIPTION_IDiçin AZURE_CLIENT_IDgizli 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
  4. 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-idve subscription-id değerleri için client-idGitHub 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://AzureADTokenExchangeolarak 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 successfulgörmeniz gerekir. Oturumunuz başarısız olursa iletisini Az CLI Login failed.görürsünüz.

GitHub Actions Azure Login successful.

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.

  1. 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 supportedayarlamanız gerekir. az cloud update -n {environmentName} --endpoint-sql-management https://notsupported

  2. 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.

  3. Hizmet sorumlunuzun JSON nesnesini kopyalayın.

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        (...)
    }
    

Hizmet sorumlusunu GitHub gizli dizisi olarak ekleme

  1. GitHub'da deponuza gidin.

  2. Gezinti menüsünde Ayarlar gidin.

  3. Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.

    Screenshot of select Actions menu item.

  4. Yeni depo gizli dizisi'ni seçin.

  5. Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını AZURE_CREDENTIALSverin.

  6. 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_CREDENTIALShizmet 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 AzureChinaCloudisteğ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.

Microsoft Entra ID

Power BI

Bağlayıcılar

Azure Databricks