Integrowanie interfejsu wiersza polecenia Defender dla Chmury z potokami ciągłej integracji/ciągłego wdrażania
Defender dla Chmury interfejs wiersza polecenia to aplikacja, której można używać w potokach ciągłej integracji i ciągłego wdrażania (CI/CD). Uruchamia narzędzia do analizy statycznej i łączy kod z usługami w chmurze. Interfejs wiersza polecenia Defender dla Chmury można używać w dowolnym procesie kompilacji do skanowania obrazów pod kątem luk w zabezpieczeniach za pomocą wbudowanych skanerów zabezpieczeń. Wysyła wyniki skanowania do portalu Defender dla Chmury. Eksplorator zabezpieczeń chmury może następnie uzyskać dostęp do obrazu kontenera i jego luk w zabezpieczeniach.
Wymagania wstępne
Subskrypcja platformy Azure z dołączonym Defender dla Chmury. Jeśli nie masz jeszcze konta platformy Azure, utwórz je bezpłatnie.
Jedno z następujących narzędzi potoku ciągłej integracji/ciągłego wdrażania: Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services, AWS CodeBuild
W przypadku usługi Azure DevOps rozszerzenie Microsoft Security DevOps (MSDO) zainstalowane w organizacji usługi Azure DevOps.
Włączono CSPM w usłudze Defender.
Uprawnienia administratora zabezpieczeń do tworzenia identyfikatora klienta i wpisu tajnego.
Ustawienia
W poniższych sekcjach wyjaśniono, jak pobrać identyfikator klienta i wpisy tajne, zaktualizować skrypt potoku ciągłej integracji/ciągłego wdrażania i dodać zmienne środowiskowe do potoku ciągłej integracji/ciągłego wdrażania.
Pobieranie tokenu interfejsu API
Aby umożliwić przekazywanie danych zabezpieczeń z interfejsu wiersza polecenia Defender dla Chmury do zaplecza Defender dla Chmury, administrator zabezpieczeń w Defender dla Chmury musi najpierw wygenerować klucz interfejsu API z Defender dla Chmury na potrzeby uwierzytelniania.
Po wygenerowaniu tokenów administrator zabezpieczeń wybierze zakres subskrypcji, który ma zostać skojarzony z tokenem. Dane "wypychane" do Defender dla Chmury z tego tokenu są ograniczone do subskrypcji, z czym jest skojarzony token. Te tokeny interfejsu API są niezmienne i można je wygenerować/usunąć tylko.
Z tego miejsca administrator zabezpieczeń musi bezpiecznie przekazać token deweloperom, aby został dodany do potoku ciągłej integracji/ciągłego wdrażania.
Zaloguj się w witrynie Azure Portal.
Przejdź do pozycji Microsoft Defender dla Chmury> Integracja ustawień>środowiska zarządzania.>
Wybierz pozycję Dodaj integrację , a następnie wybierz pozycję Pozyskiwanie metodyki DevOps.
Wprowadź opisową nazwę tokenu, wybraną dzierżawę przechowują informacje o tokenie. Wpis tajny klienta jest generowany po wprowadzeniu opisu wpisu tajnego i daty wygaśnięcia.
Włącz token w konfiguracji i utwórz tokeny.
Skopiuj każdy token. Nie można ich edytować ani pobierać po wybraniu przycisku OK/
W tabeli Integrations zostanie wyświetlone nowe pozyskiwanie.
Aktualizowanie skryptu potoku ciągłej integracji/ciągłego wdrażania
Każde narzędzie potoku ciągłej integracji/ciągłego wdrażania ma inną składnię. Ten kod jest przykładem potoku bitbucket:
image: atlassian/default-image:3
pipelines:
default:
- parallel:
- step:
name: 'MSDO trivy test'
script:
- curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
- unzip ./msdo_linux.zip
- chmod +x tools/guardian
- chmod +x tools/Microsoft.Guardian.Cli
- ls -lah .
- tools/guardian init --force
- tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif
Zmienne potoku
Po bezpiecznym otrzymaniu tokenów deweloper musi skonfigurować zmienną środowiskową dla klucza. Zmienna środowiskowa jest przekazywana do interfejsu wiersza polecenia za pośrednictwem skryptu powłoki, który deweloper może odebrać z narzędzia curl lub ręcznie skopiować skrypt powłoki do repozytorium.
Nazwa/nazwisko | Wartość |
---|---|
GDN_PUSH_TOKEN_CLIENT_ID | <Identyfikator klienta> |
GDN_PUSH_TOKEN_CLIENT_ID | <Identyfikator klienta> |
GDN_PUSH_TOKEN_CLIENT_SECRET | <Client Secret (Wpis tajny klienta)> |
GDN_PIPELINENAME | bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws |
GDN_PUSH_TOKEN_TENANT_ID | <Identyfikator dzierżawy> |
Przeglądanie wyników w Eksploratorze zabezpieczeń w chmurze
Po pomyślnym uruchomieniu potoku przejdź ponownie do Microsoft Defender dla Chmury.
W menu Defender dla Chmury wybierz pozycję Cloud Security Explorer.
Wybierz listę rozwijaną Wybierz typy zasobów, wybierz pozycję DevOps, a następnie wybierz pozycję Gotowe.
Wybierz ikonę, + aby dodać nowe kryteria wyszukiwania.
Wybierz listę rozwijaną Wybierz warunek . Następnie wybierz pozycję Dane, a następnie wybierz pozycję Wypchnięcia.
Wybierz listę rozwijaną Wybierz typy zasobów. Następnie wybierz pozycję Kontenery, a następnie pozycję Obrazy kontenerów , a następnie wybierz pozycję Gotowe.
Wybierz zakres wybrany podczas tworzenia integracji w obszarze Ustawienia środowiska.
Wybierz Wyszukaj.
Zobacz wyniki mapowania potoku na obrazy.
Korelowanie z monitorowanych kontenerów
W Eksploratorze zabezpieczeń w chmurze wprowadź następujące zapytanie: Potok ciągłej integracji/ciągłego wdrażania —> Obrazy + kontenerów potoku —> zawarte w + rejestrach kontenerów (grupa).
Przejrzyj nazwy zasobów, aby wyświetlić mapowanie kontenera.