Przejdź do głównej zawartości

Jak awaryjnie wyłączyć serwer lub narzędzie

Na wypadek incydentu są dwa narzędzia, oba w Administracja w portalu:

Narzędzie Odcina Dodanie Usunięcie
Wyłączniki awaryjne Jeden serwer albo jedno narzędzie dla wszystkich Bez drugiego składnika Świeże MFA
Nadpisania To, co opisuje jedna polityka Cedar forbid Bez drugiego składnika Świeże MFA

Dodanie nie wymaga drugiego składnika celowo: incydent nie czeka na niego. Usunięcie znów poszerza dostęp, więc wymaga świeżego MFA (logowania z drugim składnikiem w ciągu ostatnich 5 minut).

  1. Otwórz Administracja, Wyłączniki awaryjne.
  2. W Wyłącz serwer lub narzędzie wybierz Serwer. Zostaw Narzędzie na Cały serwer albo wybierz jedno narzędzie.
  3. Wpisz Powód, od 1 do 200 znaków. Administratorzy widzą go na liście. Nie trafia do logów audytu.
  4. Wybierz Wyłącz i potwierdź Wyłączyć awaryjnie?.

Strona Wyłączniki awaryjne z jednym włączonym wyłącznikiem i formularzem wyłączenia serwera lub narzędzia

Najpóźniej po 5 sekundach, na każdej instancji gatewaya:

  • Narzędzie albo wszystkie narzędzia serwera znikają z tools/list i z katalogu.
  • Wywołanie jest odrzucane z tool_disabled i powodem audytu kill_switch. Użytkownik, który i tak nie mógłby wywołać narzędzia, nadal dostaje not_found_or_denied.
  • Wywołania, które już ruszyły, nie są przerywane.

Wyłącznik jest zapisany w bazie gatewaya. Przetrwa restart, zatwierdzenie definicji i nowy manifest. Usuwa go wyłącznie zdjęcie.

  1. W Włączone wyłączniki wybierz Zdejmij w wierszu wyłącznika.
  2. Potwierdź Zdjąć wyłącznik?.
  3. Jeśli Twoje ostatnie logowanie z drugim składnikiem jest starsze niż 5 minut, portal przekieruje Cię do dostawcy tożsamości. Zaloguj się z drugim składnikiem. Wracasz na stronę, a portal zdejmuje wyłącznik, który wybrano.

Strona po powrocie od dostawcy tożsamości: tożsamość potwierdzona i wyłącznik zdjęty

Jeśli ktoś zdjął wyłącznik i włączył go od nowa, gdy potwierdzałeś tożsamość, nic nie zostanie zdjęte, a portal pokaże nowy powód. Sprawdź go i zdejmij ponownie.

Zdjęcie wyłącznika narzędzia nie zdejmuje wyłącznika całego serwera, i odwrotnie. Po zdjęciu narzędzie, które nadal czeka na zatwierdzenie, pozostaje ukryte.

Jeśli instancja gatewaya nie może odczytać stanu wyłączników, odrzuca każde wywołanie z upstream_unavailable, nie wyświetla żadnych narzędzi, a na katalog odpowiada 503. Nigdy nie ufa wartości z pamięci podręcznej starszej niż 5 sekund. Miernik mcp_gateway_kill_switches_unreadable ma wartość 1, gdy stan jest nieczytelny, i warto na niego ustawić alert.

Nadpisanie to jedna polityka Cedar, która tylko zakazuje. Dotyczy decyzji gatewaya o wywołaniu, wszystkich serwerów albo jednego serwera, a każda instancja czyta ją w ciągu kilku sekund. Użyj jej, gdy wyłącznik jest zbyt zgrubny, na przykład aby zablokować jedną nazwę narzędzia na wszystkich serwerach.

  1. Otwórz Administracja, Nadpisania i wybierz Dodaj nadpisanie.
  2. Wpisz Identyfikator. Portal dodaje prefiks override-. Użyj małych liter, cyfr i myślników, do 55 znaków.
  3. Wybierz Cel: Gateway (decyzja o wywołaniu), Wszystkie serwery albo Jeden serwer (wtedy wybierz Serwer).
  4. Wpisz Polityka (Cedar, jedno forbid). Zacznij od szablonu wstawia punkt wyjścia. Adnotacja @id musi być równa identyfikatorowi z prefiksem. Dla gatewaya polityka rozstrzyga akcję call na narzędziu. Dla serwera nie może wymieniać narzędzi ani akcji call.
  5. Wybierz Zapisz.

Przykład dla celu Gateway, który blokuje każde wywołanie narzędzia o nazwie drop_table:

@id("override-block-drop-table")
forbid (principal, action == Action::"call", resource is Tool)
when { resource.name == "drop_table" };

Strona Nadpisania z jednym nadpisaniem, które zakazuje narzędzia

Gateway odrzuca politykę, która nadaje uprawnienia (permit), szablon albo więcej niż jedną politykę w tekście. Zastąpienie nadpisania przez Edytuj i jego usunięcie przez Usuń wymagają świeżego MFA, a po potwierdzeniu portal wraca do formularza. Po usunięciu to, co nadpisanie zakazywało, znów jest możliwe, gdy tylko każda instancja przeczyta zmianę.

Audyt: gateway zapisuje admin_change z powodami kill_switch_set i kill_switch_cleared dla wyłączników oraz override_set i override_removed dla nadpisań, z identyfikatorem użytkownika administratora (zobacz Audyt).