Przejdź do głównej zawartości

8.31 Rozdzielenie środowisk rozwojowych, testowych i produkcyjnych

W skrócie: rozwój, testy i produkcja to oddzielne środowiska — zmiana trafia na produkcję tylko ustaloną ścieżką, a programista nie zmienia produkcji „na szybko”.

Cel: ochrona środowiska produkcyjnego i danych przed kompromitacją przez działania rozwojowe i testowe.

Atrybuty​

Typ atrybutuWartości
Typ zabezpieczenia#Preventive (prewencyjne)
Właściwości bezpieczeństwa informacji#Confidentiality (poufność), #Integrity (integralność), #Availability (dostępność)
Koncepcje cyberbezpieczeństwa#Protect (ochrona)
Zdolności operacyjne#System_and_network_security (bezpieczeństwo systemów i sieci), #Application_security (bezpieczeństwo aplikacji)
Domeny bezpieczeństwa#Protection (ochrona)

Znaczenie atrybutów opisuje 4.2 Tematy i atrybuty.

Wytyczne​

  • Organizacja określa i wdraża wymagany poziom rozdzielenia środowisk, aby zapobiec problemom w produkcji.
  • Rozważa się: oddzielenie systemów rozwojowych i produkcyjnych (osobne domeny, maszyny wirtualne lub fizyczne), zasady i autoryzację przenoszenia oprogramowania z rozwoju do produkcji, testowanie zmian w środowisku testowym lub przejściowym przed produkcją, brak testów na produkcji poza określonymi i zatwierdzonymi sytuacjami.
  • Kompilatory, edytory i inne narzędzia deweloperskie nie powinny być dostępne z systemów produkcyjnych, gdy nie jest to wymagane.
  • Środowiska są wyraźnie oznaczone w menu i systemach, aby ograniczyć ryzyko pomyłki.
  • Informacje wrażliwe nie są kopiowane do środowisk rozwojowych i testowych, chyba że zastosowano równoważne zabezpieczenia (8.33).
  • Środowiska rozwojowe i testowe też się chroni: aktualizacje i łatki, bezpieczna konfiguracja, kontrola dostępu, monitorowanie zmian, kopie zapasowe.
  • Ta sama osoba nie powinna mieć możliwości wprowadzania zmian w rozwoju i w produkcji bez przeglądu i zatwierdzenia — można to wymusić rozdzieleniem uprawnień.

W praktyce​

Przykłady i narzędzia poniżej to praktyka branżowa, nie treść normy.

  • Osobne konta lub subskrypcje chmurowe dla dev, test i prod z innymi uprawnieniami.
  • Wdrożenia na produkcję tylko przez potok CI/CD z zatwierdzeniem — bez ręcznego dostępu programistów do serwerów produkcyjnych.
  • Wyraźne kolory i etykiety środowisk w konsolach administracyjnych.

Powiązania​