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 Terraform Infrastructure as Code 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 Terraform Infrastructure as Code, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Terraform Infrastructure as Code 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.dataCheckov 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 terraformSkanowanie 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.jsonOpen 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=falseNakł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 Terraform Infrastructure as Code, przejdź na CoddyKit PRO. Kurs Terraform Infrastructure as Code 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 Terraform Infrastructure as Code 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ąć Terraform Infrastructure as Code?
Nie wymagamy żadnego doświadczenia. Terraform Infrastructure as Code 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 Terraform Infrastructure as Code?
Tak. Każda lekcja Terraform Infrastructure as Code 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
- `validate` i `fmt` w Terraform
- Testy jednostkowe za pomocą Terratest
- Testy integracyjne zasobów chmurowych
- Policy as Code i kontrole zgodności