Używanie wpisów tajnych usługi Azure Key Vault w potoku
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Usługa Azure Key Vault umożliwia bezpieczne przechowywanie poufnych informacji, takich jak hasła, klucze interfejsu API, certyfikaty itp. przy użyciu usługi Azure Key Vault można łatwo tworzyć klucze szyfrowania i zarządzać nimi w celu szyfrowania danych. Usługa Azure Key Vault może również służyć do zarządzania certyfikatami dla wszystkich zasobów. Ten artykuł obejmuje następujące zagadnienia:
- Tworzenie usługi Azure Key Vault.
- Skonfiguruj uprawnienia usługi Key Vault.
- Utwórz nowe połączenie usługi.
- Wykonywanie zapytań dotyczących wpisów tajnych z usługi Azure Pipeline.
Wymagania wstępne
- Organizacja: Azure DevOps. Utwórz go bezpłatnie , jeśli jeszcze go nie masz.
- Twój własny projekt. Utwórz projekt , jeśli jeszcze go nie masz.
- Własne repozytorium. Utwórz nowe repozytorium Git, jeśli jeszcze go nie masz.
- Subskrypcja Azure. Utwórz bezpłatne konto platformy Azure, jeśli jeszcze go nie masz.
Tworzenie magazynu kluczy
Zaloguj się do witryny Azure Portal, a następnie wybierz pozycję Utwórz zasób.
W obszarze Key Vault wybierz pozycję Utwórz , aby utworzyć nową usługę Azure Key Vault.
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.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Konfigurowanie uwierzytelniania
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Zaloguj się do witryny Azure Portal, a następnie wyszukaj usługę Tożsamości zarządzane na pasku wyszukiwania.
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ę przypisanej do użytkownika tożsamości zarządzanej.
Po zakończeniu wybierz pozycję Przejrzyj i utwórz .
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu, a następnie skopiuj wartości Subscription (Subskrypcja ) i Client ID (Identyfikator klienta), które będą używane w kolejnych krokach.
Przejdź do pozycji Właściwości ustawień>i skopiuj wartość identyfikatora dzierżawy tożsamości zarządzanej do późniejszego użycia.
Konfigurowanie zasad dostępu do magazynu kluczy
Przejdź do witryny Azure Portal i użyj paska wyszukiwania, aby znaleźć utworzony wcześniej magazyn kluczy.
Wybierz pozycję Zasady dostępu, a następnie wybierz pozycję Utwórz , aby dodać nowe zasady.
W obszarze Uprawnienia wpisu tajnego zaznacz pola wyboru Pobierz i Lista .
Wybierz pozycję Dalej, a następnie wklej identyfikator klienta tożsamości zarządzanej utworzonej wcześniej na pasku wyszukiwania. Wybierz tożsamość zarządzaną.
Wybierz przycisk Dalej, a następnie ponownie przycisk Dalej .
Przejrzyj nowe zasady, a następnie wybierz pozycję Utwórz po zakończeniu.
Tworzenie połączenia z usługą
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Połączenia usługi Ustawień>projektu, a następnie wybierz pozycję Nowe połączenie z usługą, aby utworzyć nowe połączenie z usługą.
Wybierz pozycję Azure Resource Manager, a następnie wybierz pozycję Dalej.
W obszarze Typ tożsamości wybierz pozycję Tożsamość zarządzana z menu rozwijanego.
W kroku 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 hostująca tożsamość zarządzaną.
Tożsamość zarządzana: wybierz tożsamość zarządzaną z menu rozwijanego.
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órych będzie uzyskiwana tożsamość zarządzana.
Grupa zasobów dla połączenia z usługą: (opcjonalnie) Określ, aby ograniczyć dostęp tożsamości zarządzanej do jednej grupy zasobów.
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) informacje kontekstowe z bazy danych ITSM.
Opis: (Opcjonalnie) Dodaj opis.
W obszarze Zabezpieczenia zaznacz pole wyboru Udziel uprawnień dostępu do wszystkich potoków, aby zezwolić wszystkim potokom na korzystanie z tego połączenia z usługą. Jeśli nie wybierzesz tej opcji, musisz ręcznie udzielić dostępu do każdego potoku korzystającego z tego połączenia z usługą.
Wybierz pozycję Zapisz , aby zweryfikować i utworzyć połączenie usługi.
Wykonywanie zapytań i używanie wpisów tajnych w potoku
Za pomocą zadania usługi Azure Key Vault możemy pobrać wartość naszego wpisu tajnego i użyć jej w kolejnych zadaniach w naszym potoku. Należy pamiętać, że wpisy tajne muszą być jawnie mapowane na zmienną env, jak pokazano w poniższym przykładzie.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'SERVICE_CONNECTION_NAME'
KeyVaultName: 'KEY_VAULT_NAME'
SecretsFilter: '*'
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(SECRET_NAME)
Dane wyjściowe z ostatniego polecenia powłoki bash powinny wyglądać następująco:
Secret Found! ***
Uwaga
Jeśli chcesz wykonać zapytanie dotyczące wielu wpisów tajnych z usługi Azure Key Vault, użyj argumentu SecretsFilter
, aby przekazać rozdzielaną przecinkami listę nazw wpisów tajnych: "secret1, secret2".