0Pricing
DevOps Bootcamp · Lekcja

Policy as Code i kontrole zgodności

Dodaj warstwę zabezpieczeń do strategii testowania, skanując plany Terraform pod kątem naruszeń bezpieczeństwa i zgodności, zanim trafią na produkcję.

Policy as Code i kontrole zgodności to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Testowanie to nie tylko funkcjonalność

Testy jednostkowe i integracyjne potwierdzają, że infrastruktura działa. Policy as code potwierdza, że jest dozwolona: nie ma publicznych bucketów S3, używane są tylko zatwierdzone typy instancji, a wymagane tagi są obecne. Kontrole te są uruchamiane automatycznie dla każdej zmiany.

Gdzie pasują kontrole zasad

Kontrole zasad umieszcza się między plan a apply. Wynik planu jest analizowany, a wykryte naruszenie blokuje operację apply, podobnie jak niezaliczony test blokuje scalenie.

Skanowanie statyczne za pomocą tfsec

tfsec skanuje kod HCL w poszukiwaniu znanych błędnych konfiguracji i nie wymaga poświadczeń chmurowych. Jest wystarczająco szybki, aby uruchamiać go przy każdym commitcie.

tfsec .

Odczytywanie wyników skanera

Skanery zgłaszają identyfikator reguły, poziom ważności i zasób, którego dotyczy problem. Użyj identyfikatora, aby znaleźć wskazówki dotyczące naprawy lub wyciszyć zaakceptowane ryzyko.

Result: aws-s3-enable-bucket-encryption
Severity: HIGH
Resource: aws_s3_bucket.data

Checkov do skanowania wielu frameworków

Checkov obsługuje Terraform oraz inne formaty IaC i przypisuje wykryte problemy do frameworków zgodności, takich jak CIS i SOC2.

checkov -d . --framework terraform

Skanowanie planu, nie tylko kodu

Aby wykryć problemy pojawiające się dopiero po rozwiązaniu wartości zmiennych, wyeksportuj plan do formatu JSON i zeskanuj ten artefakt.

terraform plan -out=tfplan.binary
terraform show -json tfplan.binary > plan.json
checkov -f plan.json

Open Policy Agent i Conftest

W przypadku niestandardowych reguł organizacji połączenie OPA z conftest pozwala pisać zasady w języku Rego i testować je względem kodu JSON planu.

conftest test plan.json --policy policy/

Prosta zasada Rego

Ta reguła Rego odrzuca każdy bucket S3, którego ACL ustawiono na public-read. Conftest kończy uruchomienie niepowodzeniem, jeśli reguła znajdzie dopasowanie.

package main

deny[msg] {
  r := input.resource_changes[_]
  r.type == "aws_s3_bucket"
  r.change.after.acl == "public-read"
  msg := "S3 buckets must not be public-read"
}

Wyciszanie zaakceptowanych zagrożeń

Czasami wykryty problem jest znanym wyjątkiem. Komentarze umieszczone w kodzie pozwalają pominąć konkretną regułę wraz ze ścieżką audytową, zamiast wyłączać całe skanowanie.

resource "aws_s3_bucket" "logs" {
  # tfsec:ignore:aws-s3-enable-bucket-encryption
  bucket = "public-logs"
}

Niepowodzenie kompilacji

W CI narzędzia te zwracają niezerowy kod wyjścia w przypadku naruszeń, co powoduje niepowodzenie potoku i uniemożliwia wykonanie niezgodnej z zasadami operacji apply.

tfsec . --soft-fail=false

Nakładanie kontroli

Dojrzały potok najpierw uruchamia fmt i validate, następnie statyczne skanowanie zasad (tfsec/checkov), potem niestandardowe reguły OPA, a dopiero na końcu zestaw testów funkcjonalnych Terratest. Każda warstwa wykrywa inną klasę problemów.

Szybki test

Sprawdź swoją wiedzę na temat policy as code.

Podsumowanie: zabezpieczenia infrastruktury

Dodano warstwę zgodności do testowania:

  • tfsec i Checkov do skanowania znanych błędnych konfiguracji.
  • OPA/conftest z Rego do niestandardowych reguł organizacji.
  • Skanowanie planu w formacie JSON w celu wykrywania problemów z rozwiązanymi wartościami.
  • Niezerowe kody wyjścia blokują w CI operacje apply niezgodne z zasadami.

Często zadawane pytania

Czy lekcja „Policy as Code i kontrole zgodności” jest bezpłatna?

Tak — pełny tekst „Policy as Code i kontrole zgodności” 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Policy as Code i kontrole zgodności”?

Dodaj warstwę zabezpieczeń do strategii testowania, skanując plany Terraform pod kątem naruszeń bezpieczeństwa i zgodności, zanim trafią na produkcję. Ćwiczysz DevOps Bootcamp 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ąć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 4 z 4.

Ile czasu zajmuje lekcja „Policy as Code i kontrole zgodności”?

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 DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp 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. `validate` i `fmt` w Terraform
  2. Testy jednostkowe za pomocą Terratest
  3. Testy integracyjne zasobów chmurowych
  4. Policy as Code i kontrole zgodności
← Powrót do DevOps Bootcamp