Udostępnij przez


Używanie tajemnic usługi Azure Key Vault w pipeline

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Usługa Azure Key Vault umożliwia deweloperom bezpieczne przechowywanie poufnych informacji, takich jak hasła, klucze interfejsu API i certyfikaty, oraz zarządzanie nimi. W tym artykule opisano sposób zapytania i wykorzystania tajemnic z usługi Azure Key Vault w potoku.

Wymagania wstępne

produkt Wymagania
Azure DevOps projekt usługi Azure DevOps.
Uprawnienia: -
    - Aby udzielić dostępu do wszystkich linii w projekcie: musisz być członkiem Grupy Administratorzy Projektu .
    — Aby utworzyć połączenia usług: musisz mieć rolę Administrator lub Twórca dla połączeń usług .
GitHub — Konto usługi GitHub i repozytorium GitHub.
Połączenie usługi GitHub do autoryzowania usługi Azure Pipelines.
Błękit - Subskrypcja platformy Azure .

Tworzenie magazynu kluczy

  1. Zaloguj się do witryny Azure Portal, a następnie wybierz pozycję Utwórz zasób.

  2. W obszarze Key Vault wybierz pozycję Utwórz , aby utworzyć nową usługę Azure Key Vault.

  3. Wybierz swoją subskrypcję z menu rozwijanego, a następnie wybierz istniejącą grupę zasobów lub utwórz nową. Wprowadź nazwę magazynu kluczy, wybierz region, wybierz warstwę cenową, a następnie wybierz przycisk Dalej, jeśli chcesz skonfigurować dodatkowe właściwości. W przeciwnym razie wybierz pozycję Przejrzyj i utwórz , aby zachować ustawienia domyślne.

  4. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

Konfigurowanie uwierzytelniania

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

  1. Zaloguj się do witryny Azure Portal, a następnie wyszukaj usługę Tożsamości zarządzane na pasku wyszukiwania.

  2. Wybierz pozycję Utwórz i wypełnij wymagane pola w następujący sposób:

    • Subskrypcja: wybierz swoją subskrypcję z menu rozwijanego.
    • Grupa zasobów: wybierz istniejącą grupę zasobów lub utwórz nową.
    • Region: wybierz region z menu rozwijanego.
    • Nazwa: Wprowadź nazwę dla zarządzanej tożsamości przypisanej użytkownikowi.
  3. Po zakończeniu wybierz pozycję Przejrzyj i utwórz .

  4. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu, a następnie skopiuj identyfikator subskrypcji i klienta, które będą potrzebne w następnych krokach.

  5. Przejdź do ustawień>Właściwości i skopiuj Identyfikator dzierżawcy tożsamości zarządzanej, aby użyć później.

Konfigurowanie zasad dostępu do magazynu kluczy

  1. Przejdź do portalu Azure i użyj paska wyszukiwania, aby znaleźć magazyn kluczy, który utworzyłeś wcześniej.

  2. Wybierz pozycję Zasady dostępu, a następnie wybierz pozycję Utwórz , aby dodać nowe zasady.

  3. W obszarze Uprawnienia do wpisu tajnego zaznacz pola wyboru Pobierz i Wyświetl.

  4. Wybierz Dalej, a następnie w pasku wyszukiwania wklej Identyfikator klienta tożsamości zarządzanej, którą utworzyłeś wcześniej.

  5. Wybierz tożsamość zarządzaną, wybierz Dalej, a następnie ponownie wybierz Dalej.

  6. Przejrzyj nowe zasady, a następnie wybierz pozycję Utwórz po zakończeniu.

Tworzenie połączenia z usługą

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz Ustawienia projektu>Połączenia usługi, a następnie wybierz Nowe połączenie z usługą.

  3. Wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.

  4. W obszarze Typ tożsamości wybierz pozycję Tożsamość zarządzana z menu rozwijanego.

  5. Dla Krok 1: Szczegóły tożsamości zarządzanej wypełnij pola w następujący sposób:

    • Subskrypcja tożsamości zarządzanej: Wybierz subskrypcję zawierającą tożsamość zarządzaną.

    • Grupa zasobów dla tożsamości zarządzanej: wybierz grupę zasobów, w której jest hostowana tożsamość zarządzana.

    • Zarządzana tożsamość: Wybierz swoją zarządzaną tożsamość z menu rozwijanego.

  6. W przypadku kroku 2. Zakres platformy Azure wypełnij pola w następujący sposób:

    • Poziom zakresu połączenia z usługą: wybierz pozycję Subskrypcja.

    • Subskrypcja połączenia z usługą: wybierz subskrypcję, do której zarządzana tożsamość uzyska dostęp.

    • Grupa zasobów dla połączenia z usługą: (opcjonalnie) Określ tę opcję, jeśli chcesz ograniczyć dostęp do określonej grupy zasobów.

  7. W kroku 3: Szczegóły połączenia z usługą:

    • Nazwa połączenia z usługą: podaj nazwę połączenia z usługą.

    • Dokumentacja zarządzania usługami: (opcjonalnie) Dołącz informacje kontekstowe z bazy danych ITSM.

    • Opis: (Opcjonalnie) Dodaj opis.

  8. W obszarze Zabezpieczenia zaznacz pole Udziel uprawnień dostępu do wszystkich potoków , aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli pozostawisz to niezaznaczone, musisz ręcznie udzielić dostępu dla każdego potoku.

  9. Wybierz pozycję Zapisz , aby zweryfikować i utworzyć połączenie usługi.

    Zrzut ekranu przedstawiający, jak utworzyć połączenie usługi tożsamości zarządzanej ARM.

Przetwarzanie zapytań i używanie tajemnic w linii przetwarzania

Za pomocą zadania usługi Azure Key Vault można teraz wykonywać zapytania i pobierać wpisy tajne z usługi Azure Key Vault i używać ich w kolejnych zadaniach w potoku. Należy pamiętać, że wpisy tajne muszą być jawnie mapowane na zmienne środowiskowe, jak pokazano w poniższym przykładzie:

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: AzureKeyVault@2                                # Download Azure Key Vault secrets.
  inputs:
    azureSubscription: 'SERVICE_CONNECTION_NAME'       # Name of the service connection. Alias: ConnectedServiceName.
    KeyVaultName: 'KEY_VAULT_NAME'                     # Name of the key vault.
    SecretsFilter: '*'                                 # Secrets filter. Default: *.

- bash: |
    echo "Secret Found! $MY_MAPPED_ENV_VAR"        
  env:
    MY_MAPPED_ENV_VAR: $(SECRET_NAME)

Wynik z ostatniego kroku bash powinien wyglądać następująco:

Secret Found! ***

Uwaga

Aby wysłać zapytanie o wiele wpisów tajnych z usługi Azure Key Vault, użyj SecretsFilter danych wejściowych i podaj rozdzielaną przecinkami listę nazw wpisów tajnych, na przykład: "secret1, secret2".