Udostępnij za pośrednictwem


Rejestrowanie inspekcji w usłudze Azure Database for PostgreSQL — serwer elastyczny

DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny

Rejestrowanie inspekcji działań bazy danych na serwerze elastycznym usługi Azure Database for PostgreSQL jest dostępne za pośrednictwem rozszerzenia Inspekcja bazy danych PostgreSQL: pgaudit. pgaudit Udostępnia szczegółowe rejestrowanie inspekcji sesji i/lub obiektów.

Jeśli chcesz, aby dzienniki na poziomie zasobów platformy Azure dla operacji, takich jak skalowanie zasobów obliczeniowych i magazynu, zobacz Dziennik aktywności platformy Azure.

Zagadnienia dotyczące użycia

Domyślnie pgaudit instrukcje dziennika i regularne instrukcje dziennika są emitowane przy użyciu standardowego obiektu rejestrowania postgres. Na serwerze elastycznym usługi Azure Database for PostgreSQL można skonfigurować wszystkie dzienniki, które mają być wysyłane do magazynu dzienników usługi Azure Monitor na potrzeby późniejszej analizy w usłudze Log Analytics. Jeśli włączysz rejestrowanie zasobów usługi Azure Monitor, dzienniki zostaną automatycznie wysłane (w formacie JSON) do dzienników usługi Azure Storage, usługi Event Hubs i/lub usługi Azure Monitor, w zależności od wybranej opcji.

Aby dowiedzieć się, jak skonfigurować rejestrowanie w dziennikach usługi Azure Storage, usługi Event Hubs lub usługi Azure Monitor, odwiedź sekcję dzienników zasobów w artykule dotyczącym dzienników serwera.

Instalowanie pgaudit

Przed zainstalowaniem pgaudit rozszerzenia na serwerze elastycznym usługi Azure Database for PostgreSQL należy użyć rozszerzenia allowlist pgaudit .

Korzystanie z witryny Azure Portal:

   1. Wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.    1. Na pasku bocznym wybierz pozycję Parametry serwera.    1. Wyszukaj azure.extensions parametr .    1. Wybierz pgaudit jako rozszerzenie, które chcesz zezwolić na listę.

Zrzut ekranu przedstawiający listę dozwolonych w usłudze Azure Database for PostgreSQL.

Korzystanie z interfejsu wiersza polecenia platformy Azure:

Rozszerzenia listy dozwolonych można uzyskać za pomocą polecenia zestawu parametrów interfejsu wiersza polecenia.

 az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value `pgaudit`

Aby zainstalować program pgaudit, należy uwzględnić go w udostępnionych bibliotekach wstępnego ładowania serwera. Zmiana parametru shared_preload_libraries bazy danych Postgres wymaga, aby ponowne uruchomienie serwera miało zastosowanie. Parametry można zmienić przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST.

Korzystanie z witryny Azure Portal:

  1. Wybierz wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.

  2. Na pasku bocznym wybierz pozycję Parametry serwera.

  3. shared_preload_libraries Wyszukaj parametr .

  4. Wybierz opcję pgaudit.

    Zrzut ekranu przedstawiający serwer elastyczny usługi Azure Database for PostgreSQL umożliwiający shared_preload_libraries dla narzędzia

  5. Możesz sprawdzić, czy pgauditplik został załadowany w shared_preload_libraries, wykonując następujące zapytanie w narzędziu psql:

    show shared_preload_libraries;
    

    Powinien zostać wyświetlony pgauditwynik zapytania, który zwróci shared_preload_libraries.

  6. Nawiąż połączenie z serwerem przy użyciu klienta (takiego jak psql) i włącz pgaudit rozszerzenie.

    CREATE EXTENSION `pgaudit`;
    

Napiwek

Jeśli zostanie wyświetlony błąd, upewnij się, że serwer został uruchomiony ponownie po zapisaniu pliku shared_preload_libraries.

Ustawienia usługipgaudit

pgaudit umożliwia skonfigurowanie rejestrowania inspekcji sesji lub obiektu. Rejestrowanie inspekcji sesji emituje szczegółowe dzienniki wykonanych instrukcji. Rejestrowanie inspekcji obiektów jest objęte inspekcją w zakresie określonych relacji. Możesz skonfigurować jeden lub oba typy rejestrowania.

Po włączeniu pgauditprogramu można skonfigurować jego parametry w celu rozpoczęcia rejestrowania.
Aby skonfigurować pgaudit , możesz wykonać poniższe instrukcje.
Korzystanie z witryny Azure Portal:

  1. Wybierz serwer usługi Azure Database for the PostgreSQL.

  2. Na pasku bocznym wybierz pozycję Parametry serwera.

  3. pgaudit Wyszukaj parametry.

  4. Wybierz parametr ustawień do edycji. Na przykład aby rozpocząć rejestrowanie ustawione pgaudit.log na WRITE

  5. Wybierz przycisk Zapisz , aby zapisać zmiany

Dokumentacja pgaudit zawiera definicję każdego parametru. Najpierw przetestuj parametry i upewnij się, że otrzymujesz oczekiwane zachowanie.

Ustawienie pgaudit.log_client włączone spowoduje przekierowanie dzienników do procesu klienta (na przykład psql) zamiast zapisywania w pliku. To ustawienie powinno być zwykle wyłączone.

Parametr pgaudit.log_level jest włączony tylko wtedy, gdy parametr pgaudit.log_client jest ustawiony jako włączony.

Na serwerze pgaudit.log elastycznym usługi Azure Database for PostgreSQL nie można ustawić skrótu do znaku (minus), zgodnie z opisem - w pgaudit dokumentacji. Wszystkie wymagane klasy instrukcji (READ, WRITE itp.) powinny być określone indywidualnie.

Jeśli ustawisz parametr log_statement na DDL lub ALL i uruchomisz CREATE ROLE/USER ... WITH PASSWORD ... ; polecenie lub ALTER ROLE/USER ... WITH PASSWORD ... ;, usługa PostgreSQL utworzy wpis w dziennikach bazy danych PostgreSQL, gdzie hasło jest rejestrowane w postaci zwykłego tekstu, co może spowodować potencjalne zagrożenie bezpieczeństwa. Jest to oczekiwane zachowanie zgodnie z projektem aparatu PostgreSQL.

Można jednak użyć pgaudit rozszerzenia i ustawić pgaudit.log=DDL parametr na stronie parametrów serwera, która nie rejestruje żadnej CREATE/ALTER ROLE instrukcji w dzienniku Postgres, w przeciwieństwie do ustawienia Postgres log_statement=DDL . Jeśli musisz zarejestrować te instrukcje, możesz dodać pgaudit.log ='ROLE' je dodatkowo, co spowoduje zredagowanie hasła z dzienników podczas rejestrowania CREATE/ALTER ROLE.

Format dziennika inspekcji

Każdy wpis inspekcji jest wskazywany przez AUDIT: blisko początku wiersza dziennika. Format pozostałej części wpisu został szczegółowo opisany w pgaudit dokumentacji.

Wprowadzenie

Aby szybko rozpocząć, ustaw wartość pgaudit.log WRITEi otwórz dzienniki serwera, aby przejrzeć dane wyjściowe.

Wyświetlanie dzienników inspekcji

Sposób uzyskiwania dostępu do dzienników zależy od wybranego punktu końcowego. Zobacz artykuł dotyczący konta magazynu dzienników dla usługi Azure Storage. Zobacz artykuł dotyczący strumieniowego rejestrowania dzienników platformy Azure dla usługi Event Hubs.

W przypadku dzienników usługi Azure Monitor dzienniki są wysyłane do wybranego obszaru roboczego. Dzienniki bazy danych Postgres używają trybu kolekcji AzureDiagnostics , aby można było wykonywać zapytania z tabeli AzureDiagnostics. Pola w tabeli zostały opisane poniżej. Dowiedz się więcej na temat wykonywania zapytań i alertów w temacie Omówienie zapytań dzienników usługi Azure Monitor.

Możesz użyć tego zapytania, aby rozpocząć pracę. Alerty można skonfigurować na podstawie zapytań.

Wyszukaj wszystkie pgaudit wpisy w dziennikach bazy danych Postgres dla określonego serwera w ostatnim dniu

AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"