0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lekcja

Zarządzanie sekretami za pomocą GitHub

Dogłębnie poznają Państwo bezpieczne przechowywanie i uzyskiwanie dostępu do poufnych danych uwierzytelniających z użyciem GitHub Secrets i OpenID Connect (OIDC).

Zarządzanie sekretami za pomocą GitHub to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CI/CD with GitHub Actions & DevOps Pipelines, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.

Dlaczego bezpieczne zarządzanie sekretami jest ważne

W każdym projekcie programistycznym często trzeba korzystać z poufnych informacji, takich jak klucze API, dane uwierzytelniające do baz danych czy tokeny dostępu. Przechowywanie ich bezpośrednio w kodzie lub repozytorium stanowi poważne zagrożenie dla bezpieczeństwa.

Zarządzanie sekretami to praktyka bezpiecznego przechowywania tych poufnych danych i zarządzania nimi. Gwarantuje, że dostęp do nich mają wyłącznie autoryzowane systemy i użytkownicy, zapobiegając ich nieuprawnionemu ujawnieniu.

Czym są GitHub Secrets?

GitHub oferuje bezpieczny sposób przechowywania poufnych informacji o nazwie GitHub Secrets. Są to zaszyfrowane zmienne środowiskowe, których można używać w przepływach pracy GitHub Actions.

  • Domyślnie nie są zapisywane w dziennikach.
  • Po utworzeniu nie są widoczne w interfejsie użytkownika.
  • Są dostępne wyłącznie dla wybranych przepływów pracy.

Chroni to dane uwierzytelniające przed przypadkowym ujawnieniem.

Konfigurowanie sekretów repozytorium

Sekrety można definiować na różnych poziomach: repozytorium, środowiska lub organizacji. Najczęściej zaczyna się od sekretów repozytorium.

Aby utworzyć sekret:

  1. Należy przejść do karty Ustawienia repozytorium.
  2. Należy przejść do sekcji Sekrety i zmienne > Actions.
  3. Należy kliknąć Nowy sekret repozytorium.

Należy nadać mu unikalną nazwę (np. API_KEY) i wkleić wartość sekretu.

Uzyskiwanie dostępu do sekretów w przepływach pracy

Po zdefiniowaniu sekretu można używać go w plikach YAML przepływu pracy. GitHub Actions automatycznie wstrzykuje sekrety jako zmienne środowiskowe do zadań.

Dostęp do nich uzyskuje się za pomocą kontekstu ${{ secrets.SECRET_NAME }}. Ten skrypt symuluje krok, który korzystałby z takiego sekretu. Aby go uruchomić, należy założyć, że zmienna środowiskowa MY_API_KEY została ustawiona przez GitHub Actions.

#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.

echo "Attempting to use an API key..."

# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.

if [ -z "$MY_API_KEY" ]; then
  echo "Error: MY_API_KEY is not set!"
  echo "Please define it as a secret in your workflow."
else
  echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fi

Szersze zakresy sekretów

Poza sekretami repozytorium GitHub oferuje dwa dodatkowe, bardziej rozbudowane zakresy:

  • Sekrety organizacji: Dostępne dla wielu repozytoriów w ramach organizacji. Przydatne w przypadku sekretów współdzielonych przez wiele projektów (np. tokenu wdrażania używanego w całej firmie).
  • Sekrety środowiska: Powiązane z konkretnymi środowiskami wdrażania (np. staging, production). Mogą mieć reguły ochrony, takie jak konieczność ręcznego zatwierdzenia przed wdrożeniem.

Dla zapewnienia maksymalnego bezpieczeństwa należy zawsze używać najmniejszego niezbędnego zakresu.

Czym jest OpenID Connect (OIDC)?

OpenID Connect (OIDC) to warstwa uwierzytelniania zbudowana na bazie OAuth 2.0. Jest to standard, który umożliwia klientom weryfikowanie tożsamości użytkownika końcowego na podstawie uwierzytelnienia przeprowadzonego przez serwer autoryzacji.

W CI/CD OIDC umożliwia przepływom pracy bezpieczne uwierzytelnianie się u dostawców chmury (takich jak AWS, Azure czy GCP) bez konieczności przechowywania długotrwałych danych uwierzytelniających (takich jak klucze API) jako GitHub Secrets.

Jak OIDC działa z Actions

GitHub Actions może pełnić rolę dostawcy OIDC. Po uruchomieniu przepływu pracy GitHub generuje unikalny, krótkotrwały token OIDC dla konkretnego zadania.

Token ten zawiera weryfikowalne deklaracje dotyczące przepływu pracy, takie jak repozytorium, gałąź i identyfikator zadania. Dostawców chmury można następnie skonfigurować tak, aby ufali tokenom wystawianym przez GitHub i przyznawali tymczasowy dostęp na podstawie tych deklaracji.

Najważniejsze zalety OIDC

Korzystanie z OIDC wraz z GitHub Actions zapewnia istotne korzyści w zakresie bezpieczeństwa:

  • Brak długoterminowych danych uwierzytelniających: Nie przechowuje się statycznych kluczy API chmury w GitHub Secrets.
  • Zmniejszone ryzyko: Krótkotrwałe tokeny ograniczają skutki ewentualnego przejęcia tokenu.
  • Precyzyjnie nadawany dostęp: Role w chmurze można powiązać z konkretnymi warunkami przepływu pracy (np. zezwolić na wdrażanie wyłącznie z gałęzi main).
  • Audytowanie: Łatwiej śledzić, kto wykonał daną czynność, ponieważ tożsamości są powiązane z uruchomieniem przepływu pracy.

Integracja OIDC z chmurą

Aby korzystać z OIDC, należy skonfigurować dostawcę chmury (np. AWS IAM, Azure AD czy GCP IAM) tak, aby ufał wystawcy OIDC firmy GitHub.

Zazwyczaj obejmuje to:

  1. Skonfigurowanie dostawcy tożsamości (IdP) na koncie w chmurze.
  2. Zdefiniowanie roli lub zasad przyznających określone uprawnienia.
  3. Dodanie „polityki zaufania” do roli, która pozwala tokenom OIDC GitHub przyjąć tę rolę, często z warunkami opartymi na deklaracjach tokenu (np. wyłącznie z określonego repozytorium).

Następnie przepływ pracy żąda tokenu i używa go do uwierzytelnienia.

Szybki test: bezpieczny dostęp

Poznali Państwo GitHub Secrets służące do przechowywania poufnych danych oraz OpenID Connect umożliwiający uwierzytelnianie w chmurze bez przechowywania danych uwierzytelniających.

Które z poniższych stwierdzeń dotyczących zarządzania sekretami GitHub Actions są PRAWDZIWE?

Podsumowanie: zabezpieczanie danych uwierzytelniających

Świetnie! Poznali Państwo sposoby bezpiecznego zarządzania poufnymi danymi w potokach CI/CD.

  • GitHub Secrets zapewniają zaszyfrowane przechowywanie kluczy API i tokenów w ramach repozytorium, organizacji lub określonych środowisk.
  • OpenID Connect (OIDC) zapewnia jeszcze bezpieczniejszy sposób uwierzytelniania u dostawców chmury dzięki użyciu krótkotrwałych, weryfikowalnych tokenów zamiast statycznych danych uwierzytelniających.

Praktyki te mają kluczowe znaczenie dla tworzenia solidnych i bezpiecznych potoków DevOps.

Często zadawane pytania

Czy lekcja „Zarządzanie sekretami za pomocą GitHub” jest bezpłatna?

Tak — pełny tekst „Zarządzanie sekretami za pomocą GitHub” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CI/CD with GitHub Actions & DevOps Pipelines, przejdź na CoddyKit PRO. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.

Co nauczysz się w „Zarządzanie sekretami za pomocą GitHub”?

Dogłębnie poznają Państwo bezpieczne przechowywanie i uzyskiwanie dostępu do poufnych danych uwierzytelniających z użyciem GitHub Secrets i OpenID Connect (OIDC). Ćwiczysz CI/CD with GitHub Actions & DevOps Pipelines z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć CI/CD with GitHub Actions & DevOps Pipelines?

Nie wymagamy żadnego doświadczenia. CI/CD with GitHub Actions & DevOps Pipelines w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Zarządzanie sekretami za pomocą GitHub”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji CI/CD with GitHub Actions & DevOps Pipelines?

Tak. Każda lekcja CI/CD with GitHub Actions & DevOps Pipelines zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Najlepsze praktyki bezpieczeństwa w CI/CD
  2. Zarządzanie sekretami za pomocą GitHub
  3. Statyczne testowanie bezpieczeństwa aplikacji (SAST)
  4. Bezpieczeństwo zależności i łańcucha dostaw (SCA)
← Powrót do CI/CD with GitHub Actions & DevOps Pipelines