Używanie Azure Key Vault tajnych w Azure PipelinesUse Azure Key Vault secrets in Azure Pipelines

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019

Uwaga

Ten artykuł zawiera informacje na temat pracy z usługą Azure Key Vault w potoku.This article will guide you through working with Azure key vault in your pipeline. Jeśli chcesz ustawić zmienne tajne lub odwoływać się do grup zmiennych, zobacz Define variables (Definiowanie zmiennych), aby uzyskać więcej szczegółów.if you want to set secret variables or reference variable groups, see Define variables for more details.

Azure Key Vault umożliwia użytkownikom bezpieczne przechowywanie poufnych informacji, zarządzanie nimi i uzyskiwanie do nich dostępu.Azure Key Vault allows users to securely store, manage, and access sensitive information. Wpisy tajne mogą być kluczami interfejsu API, poświadczeniami, certyfikatami itp.Secrets can be API keys, credentials, certificates, etc.

Azure Key Vault obsługuje dwa typy kontenerów: magazyny i zarządzane pule modułów HSM (sprzętowego modułu zabezpieczeń).Azure Key Vault service supports two types of containers: vaults and managed HSM (hardware security module) pools. Magazyny obsługują przechowywanie kluczy, wpisów tajnych i certyfikatów, a zarządzane pule modułów HSM obsługują tylko klucze z obsługą modułu HSM.Vaults support storing software and HSM-backed keys, secrets, and certificates, while managed HSM pools only support HSM-backed keys.

Niniejszy samouczek zawiera informacje na temat wykonywania następujących czynności:In this tutorial, you will learn how to:

  • Tworzenie aplikacji za Azure Key Vault interfejsu wiersza polecenia platformy AzureCreate an Azure Key Vault using Azure CLI
  • Dodawanie klucza tajnego i konfigurowanie dostępu do usługi Azure Key VaultAdd a secret and configure access to Azure key vault
  • Używanie wpisów tajnych w potokuUse secrets in your pipeline

Wymagania wstępnePrerequisites

Tworzenie usługi Azure Key VaultCreate an Azure Key Vault

Magazyny kluczy platformy Azure można tworzyć i zarządzać nimi za pośrednictwem interfejsu Azure Portal wiersza polecenia platformy Azure.Azure key vaults can be created and managed through the Azure portal or Azure CLI. W tym samouczku użyjemy interfejsu wiersza polecenia platformy Azure do utworzenia usługi Azure Key Vault.We will use Azure CLI in this tutorial to create our Azure Key vault.

Zaloguj się do witryny Azure Portal, a następnie wybierz przycisk Cloud Shell w prawym górnym rogu.Sign in to the Azure Portal, and then select the Cloud Shell button in the upper-right corner.

  1. Jeśli masz więcej niż jedną subskrypcję platformy Azure skojarzoną z Twoim kontem, użyj poniższego polecenia, aby określić subskrypcję domyślną.If you have more than one Azure subscription associated with your account, use the command below to specify a default subscription. Możesz użyć az account list funkcji do wygenerowania listy subskrypcji.You can use az account list to generate a list of your subscriptions.

    az account set --subscription <your_subscription_name_or_ID>
    
  2. Uruchom następujące polecenie, aby ustawić domyślny region świadczenia usługi Azure.Run the following command to set your default Azure region. Za pomocą funkcji az account list-locations można wygenerować listę dostępnych regionów.You can use az account list-locations to generate a list of available regions.

    az configure --defaults location=<your_region>
    

    Na przykład to polecenie wybierze region westus2:For example, this command will select the westus2 region:

    az configure --defaults location=westus2
    
  3. Uruchom następujące polecenie, aby utworzyć nową grupę zasobów.Run the following command to create a new resource group. Grupa zasobów to kontener zawierający powiązane zasoby dla rozwiązania platformy Azure.A resource group is a container that holds related resources for an Azure solution.

    az group create --name <your-resource-group>
    
  4. Uruchom następujące polecenie, aby utworzyć nowy magazyn kluczy.Run the following command to create a new key vault.

    az keyvault create \
      --name <your-key-vault> \
      --resource-group <your-resource-group>
    
  5. Uruchom następujące polecenie, aby utworzyć nowy klucz tajny w magazynie kluczy.Run the following command to create a new secret in your key vault. Wpisy tajne są przechowywane jako para klucz-wartość.Secrets are stored as a key value pair. W poniższym przykładzie hasło jest kluczem, a mysecretpassword to wartość.In the example below, Password is the key and mysecretpassword is the value.

    az keyvault secret set \
      --name "Password" \
      --value "mysecretpassword" \
      --vault-name <your-key-vault-name>
    

Tworzenie projektuCreate a project

Zaloguj się do Azure Pipelines.Sign in to Azure Pipelines. Następnie przeglądarka będzie przechodzić do https://dev.azure.com/your-organization-name pulpitu nawigacyjnego i wyświetlać Azure DevOps nawigacyjny.Your browser will then navigate to https://dev.azure.com/your-organization-name and displays your Azure DevOps dashboard.

Jeśli nie masz jeszcze żadnych projektów w organizacji, wybierz pozycję Utwórz projekt, aby rozpocząć tworzenie nowego projektu.If you don't have any projects in your organization yet, select Create a project to get started to create a new project. W przeciwnym razie wybierz przycisk Nowy projekt w prawym górnym rogu pulpitu nawigacyjnego.Otherwise, select the New project button in the upper-right corner of the dashboard.

Tworzenie repoCreate a repo

Do utworzenia potoku użyjemy pliku YAML, ale najpierw musimy utworzyć nowe repo.We will use YAML to create our pipeline but first we need to create a new repo.

  1. Zaloguj się do swojej Azure DevOps i przejdź do projektu.Sign in to your Azure DevOps organization and navigate to your project.

  2. Przejdź do opcji Repos, a następnie wybierz pozycję Inicjuj, aby zainicjować nowe repo przy użyciu readme.Go to Repos, and then select Initialize to initialize a new repo with a README.

    Tworzenie repo

Tworzenie nowego potokuCreate a new pipeline

  1. Przejdź do opcji Potoki, a następnie wybierz pozycję Nowy potok.Go to Pipelines, and then select New Pipeline.

  2. Wybierz pozycję Azure Repos Git.Select Azure Repos Git.

    Tworzenie potoku

  3. Wybierz utworzone wcześniej repo (utworzone wcześniej).Select the repo you created earlier. Powinna mieć taką samą nazwę jak nazwa Azure DevOps projektu.It should have the same name as your Azure DevOps project.

  4. Wybierz pozycję Potok startowy.Select Starter pipeline.

  5. Potok domyślny będzie zawierać kilka skryptów, które uruchamiają polecenia echo.The default pipeline will include a few scripts that run echo commands. Nie są one potrzebne, więc możemy je usunąć.Those are not needed so we can delete them. Nowy plik YAML będzie teraz wyglądać tak:Your new YAML file will now look like this:

    trigger:
    - main
    
    pool:
      vmImage: 'ubuntu-latest'
    
    steps:
    
  6. Wybierz pozycję Pokaż asystenta, aby rozwinąć panel asystenta.Select Show assistant to expand the assistant panel. Ten panel zawiera wygodną i z możliwość wyszukiwania listę zadań potoku.This panel provides convenient and searchable list of pipeline tasks.

    Wyświetlanie asystenta potoku

  7. Wyszukaj magazyn i wybierz zadanie Azure Key Vault magazynu.Search for vault and select the Azure Key Vault task.

    Wybieranie Azure Key Vault zadań

  8. Wybierz i autoryzuj subskrypcję platformy Azure, a następnie wybierz zadanie usługi Azure Key Vault i wybierz pozycję Dodaj, aby dodać ją do potoku.Select and authorize your Azure subscription then select the Azure key vault task and select Add to add it to your pipeline. To zadanie umożliwia potokowi nawiązywanie połączenia z Azure Key Vault i pobieranie wpisów tajnych do użycia jako zmiennych potoku.This task allows the pipeline to connect to your Azure Key Vault and retrieve secrets to use as pipeline variables.

    Uwaga

    Funkcja Udostępnij wpisy tajne dla całego zadania nie jest obecnie obsługiwana w Azure DevOps Server 2019 i 2020 r.The Make secrets available to whole job feature is not currently supported in Azure DevOps Server 2019 and 2020.

    Konfigurowanie Azure Key Vault zadań

    Porada

    Do działania pliku YAML wymagane są określone odstępy i wcięcia.YAML requires a specific spacing and indentation to work. Upewnij się, że plik YAML jest poprawnie wcięty.Make sure your YAML file is indented properly.

  9. Nie zapisuj ani nie uruchamiaj jeszcze potoku.Do not save or run your pipeline just yet. Najpierw musimy nadać potokowi odpowiednie uprawnienia dostępu do Azure Key Vault.We must first give our pipeline the right permissions to access Azure Key Vault. Pozostaw otwartą kartę przeglądarki. Pozostałe kroki zostaną wznowione po skonfigurowaniu uprawnień magazynu kluczy.Keep your working browser tab open, we will resume the remaining steps here once we set up the key vault permissions.

Konfigurowanie zasad Azure Key Vault dostępuSet up Azure Key Vault access policies

  1. Przejdź do Azure Portal.Go to Azure portal.

  2. Użyj paska wyszukiwania, aby wyszukać utworzony wcześniej magazyn kluczy.Use the search bar to search for the key vault you created earlier.

    Wyszukiwanie Azure Key Vault

  3. W obszarze Ustawienia wybierz pozycję Zasady dostępu.Under Settings Select Access policies.

  4. Wybierz pozycję Dodaj zasady dostępu, aby dodać nowe zasady.Select Add Access Policy to add a new policy.

  5. W przypadku uprawnień tajnych wybierz pozycję Pobierz i wyekstoruj.For Secret permissions, select Get and List.

  6. Wybierz opcję, aby wybrać jednostkę usługi i wyszukać swoją.Select the option to select a service principal and search for yours. Podmiot zabezpieczeń to obiekt, który reprezentuje użytkownika, grupę, usługę lub aplikację, która żąda dostępu do zasobów platformy Azure.A security principal is an object that represents a user, group, service, or application that's requesting access to Azure resources.

  7. Wybierz pozycję Dodaj, aby utworzyć zasady dostępu, a następnie pozycję Zapisz.Select Add to create the access policy, then Save.

Uruchamianie i przeglądanie potokuRun and review the pipeline

  1. Wróć do poprzedniej karty, na której zostało to wyłączone.Return to the previous tab where we left off.

  2. Wybierz pozycję Zapisz, a następnie ponownie zapisz, aby zatwierdzić zmiany i wyzwolić potok.Select Save then Save again to commit your changes and trigger the pipeline.

    Uwaga

    Może zostać wyświetlony monit o umożliwienie potokowi dostępu do zasobów platformy Azure. Jeśli zostanie wyświetlony monit, wybierz pozycję Zezwalaj.You may be asked to allow the pipeline access to Azure resources, if prompted select Allow. Wystarczy zatwierdzić potok tylko raz.You will only have to approve your pipeline once.

  3. Wybierz zadanie CmdLine, aby wyświetlić dzienniki.Select the CmdLine job to view the logs. Należy pamiętać, że rzeczywisty klucz tajny nie jest częścią dzienników.Note that the actual secret is not part of the logs.

    Przeglądanie zadania wiersza polecenia

  4. Wróć do podsumowania potoku i wybierz opublikowany artefakt.Return to pipeline summary and select the published artifact.

    Podsumowanie potoku

  5. W obszarze Zadanie wybierz secret.txt, aby go otworzyć.Under Job select the secret.txt file to open it.

    Wyświetlanie tajnego w artefaktze

  6. Plik tekstowy powinien zawierać nasz klucz tajny: mysecretpassword z wcześniejszej wersji.The text file should contain our secret: mysecretpassword from earlier.

Czyszczenie zasobówClean up resources

Wykonaj poniższe kroki, aby usunąć utworzone zasoby:Follow the steps below to delete the resources you created:

  1. Jeśli utworzono nową organizację hostową projekt, zobacz,jak usunąć organizację. W przeciwnym razie usuń projekt.If you created a new organization to host your project, see how to delete your organization, otherwise delete your project.

  2. Wszystkie zasoby platformy Azure utworzone w tym samouczku są hostowane w ramach pojedynczej grupy zasobów PipelinesKeyVaultResourceGroup.All Azure resources created during this tutorial are hosted under a single resource group PipelinesKeyVaultResourceGroup. Uruchom następujące polecenie, aby usunąć grupę zasobów i wszystkie jej zasoby.Run the following command to delete the resource group and all of its resources.

    az group delete --name PipelinesKeyVaultResourceGroup
    

Następne krokiNext steps