Proxmox VE i PBS: token API i szyfrowanie po stronie klienta | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

PBS: bezpieczne połączenie PVE za pośrednictwem API i szyfrowania

Wprowadzenie

Ten poradnik wyjaśnia, jak połączyć Proxmox VE z Proxmox Backup Server za pomocą tokenów API Proxmox, uprawnień ograniczonych do namespace oraz szyfrowania po stronie klienta. Takie podejście zwiększa bezpieczeństwo Proxmox VE, ponieważ Proxmox VE nie potrzebuje pełnego hasła użytkownika PBS, a serwer kopii zapasowych nie ma dostępu do niezaszyfrowanych danych kopii maszyn wirtualnych.

Skonfigurujesz bezpieczne uwierzytelnianie za pomocą tokenu API, zarejestrujesz storage Proxmox Backup Server w Proxmox VE, włączysz szyfrowanie kopii zapasowych po stronie klienta oraz ustawisz harmonogramy prune i garbage collection, aby datastore nie zajął całej dostępnej przestrzeni.

Wymagania wstępne

Odbiorcy: Administratorzy systemów na poziomie średniozaawansowanym.
Szacowany czas realizacji: od 45 do 60 minut.
Cel: Po ukończeniu tego poradnika będziesz mieć bezpieczne repozytorium kopii zapasowych Proxmox połączone z Proxmox VE, z ograniczonym dostępem przez token API, zaszyfrowanymi kopiami maszyn wirtualnych i ustawieniami retencji dopasowanymi do pojemności magazynu.

Wymagane środowisko:

  • Proxmox VE 8.x lub nowszy.
  • Proxmox Backup Server 3.x lub nowszy.
  • Dostęp administracyjny do interfejsu webowego lub powłoki Proxmox VE.
  • Dostęp administracyjny do interfejsu webowego lub powłoki Proxmox Backup Server.
  • Istniejący datastore PBS.
  • Łączność sieciowa z Proxmox VE do PBS na porcie TCP 8007.
  • Wystarczająca pojemność datastore na planowany okres retencji kopii zapasowych.

Przykładowe wartości używane w tym poradniku:

Symbol zastępczy Przykładowa wartość Opis
<PBS_HOST> pbs.example.com Nazwa hosta lub adres IP serwera PBS
<PBS_PORT> 8007 Domyślny port API PBS
<DATASTORE> backup-store Nazwa datastore PBS
<NAMESPACE> pve-prod Namespace dla tego źródła Proxmox VE
<PBS_USER> pve-backup@pbs Użytkownik PBS utworzony dla Proxmox VE
<TOKEN_NAME> pve-token Nazwa tokenu API
<TOKEN_ID> pve-backup@pbs!pve-token Pełny identyfikator tokenu API PBS
<PVE_STORAGE_ID> pbs-secure Identyfikator storage widoczny w Proxmox VE
<PBS_FINGERPRINT> AA:BB:CC:... Fingerprint certyfikatu PBS

Info

Tokeny API Proxmox Backup Server składają się z identyfikatora tokenu i sekretu. Sekret jest wyświetlany tylko raz, podczas tworzenia tokenu, dlatego zapisz go od razu w menedżerze haseł. Według dokumentacji Proxmox tokeny API ułatwiają unieważnianie dostępu i pozwalają ograniczać uprawnienia dla każdego klienta osobno.

Krok 1: Zaplanuj bezpieczną architekturę kopii zapasowych Proxmox

Zanim zmienisz jakąkolwiek konfigurację, określ, w jaki sposób Proxmox VE ma uzyskiwać dostęp do PBS.

Zastosuj następującą architekturę:

Komponent Zalecane ustawienie
Uwierzytelnianie Token API zamiast hasła użytkownika
Zakres dostępu Namespace w datastore, a nie cały datastore
Rola PBS DatastoreBackup oraz DatastoreReader, jeśli wymagane jest przeglądanie kopii podczas przywracania
Szyfrowanie Szyfrowanie po stronie klienta włączone w Proxmox VE
Retencja Zadanie prune w PBS lub polityka retencji datastore
Zwalnianie miejsca Zaplanowana garbage collection po operacji prune
Reakcja na naruszenie bezpieczeństwa Unieważnij token i utwórz nowy

Taka architektura opiera się na zasadzie najmniejszych uprawnień. Proxmox Backup Server stosuje uprawnienia oparte na rolach i ścieżkach. Dostęp można przydzielić do konkretnego datastore lub ścieżki namespace, na przykład /datastore/<DATASTORE>/<NAMESPACE>.

Krok 2: Utwórz dedykowanego użytkownika PBS

Zaloguj się do powłoki PBS jako root lub inny administrator.

Utwórz dedykowanego użytkownika w realmie PBS dla Proxmox VE:

proxmox-backup-manager user create <PBS_USER> \ --comment "Proxmox VE backup user"

Oczekiwany wynik: puste wyjście lub komunikat

User '<PBS_USER>' created.

Sprawdź, czy użytkownik istnieje:

proxmox-backup-manager user list

Oczekiwany wynik:

userid enable expire comment <PBS_USER> 1 Proxmox VE backup user root@pam 1 Superuser

Info

Nowo utworzony użytkownik lub token API PBS domyślnie nie ma żadnych uprawnień. Zanim Proxmox VE będzie mógł go używać, musisz jawnie przydzielić dostęp.

Krok 3: Utwórz namespace dla kopii zapasowych Proxmox VE

Namespace pozwala oddzielić jeden host lub klaster Proxmox VE od innych źródeł kopii zapasowych w tym samym datastore. Jest to przydatne przy bezpiecznym uwierzytelnianiu kopii Proxmox, ponieważ uprawnienia można ograniczyć wyłącznie do tego namespace.

Namespace można utworzyć w interfejsie webowym PBS:

  1. Otwórz interfejs webowy PBS.
  2. Przejdź do Datastore.
  3. Wybierz <DATASTORE>.
  4. Otwórz Content.
  5. Kliknij Add Namespace.
  6. Wpisz <NAMESPACE>.
  7. Kliknij Create.

Oczekiwany wynik: PBS tworzy namespace w wybranym datastore.

Jeśli wolisz wiersz poleceń, użyj polecenia namespace klienta PBS:

proxmox-backup-client namespace create <NAMESPACE> \ --repository root@pam@localhost:<DATASTORE>

Info

Podczas tworzenia namespace musisz podać hasło. W skryptach automatycznych ustaw zmienne środowiskowe PBS_PASSWORD i PBS_FINGERPRINT.

Oczekiwany wynik: puste wyjście lub komunikat

Namespace '<NAMESPACE>' created.

Krok 4: Wygeneruj token API

Utwórz token API dla użytkownika PBS w interfejsie webowym, przechodząc do Configuration → Access Control → API Token → Add:

Alternatywnie wygeneruj token API dla użytkownika PBS za pomocą CLI:

proxmox-backup-manager user generate-token <PBS_USER> <TOKEN_NAME>

Oczekiwane wyjście:

{ "tokenid": "<TOKEN_ID>", "value": "<TOKEN_SECRET>" }

Zapisz <TOKEN_SECRET> natychmiast. Po utworzeniu nie można go wyświetlić ponownie.

Warning

Nie wklejaj sekretu tokenu do komunikatorów, dokumentacji, historii powłoki, systemów zgłoszeń ani zrzutów ekranu. Przechowuj go w menedżerze haseł lub innym zatwierdzonym magazynie sekretów.

Krok 5: Przydziel uprawnienia zgodnie z zasadą najmniejszych uprawnień

Uprawnienia tokenu API w PBS są obliczane na podstawie ACL tokenu, a następnie przecinane z uprawnieniami użytkownika nadrzędnego. W praktyce zarówno użytkownik, jak i token potrzebują odpowiedniego dostępu, a token nigdy nie może mieć więcej uprawnień niż jego użytkownik nadrzędny.

Nadaj użytkownikowi nadrzędnemu dostęp do kopii zapasowych wyłącznie do wybranego namespace:

proxmox-backup-manager acl update \ /datastore/<DATASTORE>/<NAMESPACE> DatastoreBackup \ --auth-id <PBS_USER>

Nadaj tokenowi tę samą rolę kopii zapasowych:

proxmox-backup-manager acl update \ /datastore/<DATASTORE>/<NAMESPACE> DatastoreBackup \ --auth-id <TOKEN_ID>

Jeśli Proxmox VE ma przeglądać i przywracać istniejące kopie, których jest właścicielem, w tym samym namespace, dodaj także DatastoreReader:

proxmox-backup-manager acl update \ /datastore/<DATASTORE>/<NAMESPACE> DatastoreReader \ --auth-id <PBS_USER> proxmox-backup-manager acl update \ /datastore/<DATASTORE>/<NAMESPACE> DatastoreReader \ --auth-id <TOKEN_ID>

Sprawdź ACL:

proxmox-backup-manager acl list

Oczekiwane wyjście:

ugid path roleid <PBS_USER> /datastore/<DATASTORE>/<NAMESPACE> DatastoreBackup <TOKEN_ID> /datastore/<DATASTORE>/<NAMESPACE> DatastoreBackup <PBS_USER> /datastore/<DATASTORE>/<NAMESPACE> DatastoreReader <TOKEN_ID> /datastore/<DATASTORE>/<NAMESPACE> DatastoreReader

Nie przypisuj ról Admin ani DatastoreAdmin tokenowi kopii zapasowych Proxmox VE bez konkretnego powodu operacyjnego. W przypadku większości zaszyfrowanych kopii maszyn wirtualnych token ograniczony do namespace z rolą DatastoreBackup i opcjonalnie DatastoreReader to bezpieczniejsza dobra praktyka dla kopii zapasowych Proxmox.

Krok 6: Zapisz fingerprint certyfikatu PBS

Jeśli PBS używa certyfikatu z podpisem własnym, Proxmox VE musi zaufać fingerprintowi PBS.

Na serwerze PBS uruchom:

proxmox-backup-manager cert info | grep Fingerprint

Oczekiwane wyjście:

Fingerprint (sha256): <PBS_FINGERPRINT>

Zapisz fingerprint na potrzeby następnego kroku.

Info

Dokumentacja Proxmox opisuje procedurę z fingerprintem dla certyfikatów PBS z podpisem własnym przy dodawaniu storage PBS do Proxmox VE.

Krok 7: Dodaj storage PBS do Proxmox VE

Zaloguj się do powłoki Proxmox VE jako root.

Dodaj storage PBS, używając identyfikatora tokenu API jako nazwy użytkownika. Po wyświetleniu monitu podaj sekret tokenu:

pvesm add pbs <PVE_STORAGE_ID> \ --server <PBS_HOST> \ --port <PBS_PORT> \ --datastore <DATASTORE> \ --namespace <NAMESPACE> \ --username <TOKEN_ID> \ --fingerprint <PBS_FINGERPRINT> \ --password

Po wyświetleniu monitu wklej sekret tokenu API:

Enter Password: <TOKEN_SECRET>

Oczekiwany wynik: Proxmox VE dodaje konfigurację storage PBS.

Sprawdź storage:

pvesm status --storage <PVE_STORAGE_ID>

Oczekiwane wyjście:

Name Type Status Total Used Available % <PVE_STORAGE_ID> pbs active ...

Przy użyciu tokenu API ograniczonego do namespace wartości Total, Used i Available mogą być wyświetlane jako 0, nawet jeśli status to active. To zachowanie jest normalne.

Możesz to również skonfigurować w interfejsie webowym Proxmox VE:

  1. Otwórz Datacenter.
  2. Przejdź do Storage.
  3. Kliknij Add.
  4. Wybierz Proxmox Backup Server.
  5. Ustaw ID na <PVE_STORAGE_ID>.
  6. Ustaw Server na <PBS_HOST>.
  7. Ustaw Datastore na <DATASTORE>.
  8. Ustaw Namespace na <NAMESPACE>.
  9. Ustaw Username na <TOKEN_ID>.
  10. Ustaw Password na sekret tokenu API.
  11. W razie potrzeby ustaw Fingerprint na <PBS_FINGERPRINT>.
  12. Kliknij Add.

Oczekiwany wynik: storage pojawia się w storage Proxmox VE i ma status aktywny.

Krok 8: Włącz szyfrowanie po stronie klienta

Szyfrowanie po stronie klienta chroni dane kopii zapasowych, zanim opuszczą Proxmox VE. PBS przechowuje zaszyfrowane kopie maszyn wirtualnych, ale klucz szyfrowania pozostaje po stronie Proxmox VE. To zwiększa bezpieczeństwo kopii zapasowych Proxmox VE, ponieważ samo przejęcie datastore PBS nie ujawnia zawartości dysków maszyn wirtualnych.

W interfejsie webowym Proxmox VE:

  1. Otwórz Datacenter.
  2. Przejdź do Storage.
  3. Wybierz <PVE_STORAGE_ID>.
  4. Kliknij Edit.
  5. Przejdź na kartę Encryption i wybierz Auto-generate a client encryption key.
  6. Wygeneruj nowy klucz, jeśli jest to nowe, bezpieczne repozytorium kopii zapasowych.
  7. Zapisz kopię zapasową klucza szyfrowania w menedżerze haseł lub w offline'owym sejfie na sekrety.
  8. Kliknij OK.

Oczekiwany wynik: nowe kopie zapasowe w tym storage PBS są szyfrowane po stronie klienta.

Danger

Utrata klucza szyfrowania może sprawić, że zaszyfrowane kopie zapasowe staną się nie do odzyskania. Przechowuj klucz oddzielnie od hosta Proxmox VE i przetestuj dostęp do przywracania, zanim zaczniesz polegać na zestawie kopii.

Zalecane zasady postępowania z kluczem:

Praktyka Powód
Przechowuj klucz poza klastrem Proxmox VE Chroni przed utratą klastra
Ogranicz uprawnienia do pliku Zmniejsza ryzyko lokalnego ujawnienia
Wykonaj kopię klucza offline Umożliwia odtwarzanie po awarii
Nie przechowuj klucza wyłącznie na PBS Utrata lub przejęcie PBS nie może blokować odzyskiwania danych
Przetestuj przywracanie z użyciem klucza Potwierdza, że odzyskiwanie działa, zanim dojdzie do incydentu

Krok 9: Utwórz zadanie kopii zapasowej w Proxmox VE

Utwórz zadanie kopii zapasowej zapisujące dane w zaszyfrowanym storage PBS.

W interfejsie webowym Proxmox VE:

  1. Otwórz Datacenter.
  2. Przejdź do Backup.
  3. Kliknij Add.
  4. Wybierz węzły, maszyny wirtualne lub kontenery do ochrony.
  5. Ustaw Storage na <PVE_STORAGE_ID>.
  6. Wybierz harmonogram, na przykład codziennie o 02:00.
  7. Ustaw tryb zgodnie z charakterem obciążenia.
  8. Pozostaw retencję pustą, jeśli za prune będzie odpowiadać PBS.
  9. Kliknij Create.

Oczekiwany wynik: Proxmox VE tworzy zaplanowane zadanie kopii zapasowej, które zapisuje zaszyfrowane kopie w PBS.

Zachowaj retencję w jednym miejscu. W większości architektur PBS skonfiguruj retencję w PBS za pomocą zadań prune lub ustawień retencji datastore, a retencję w zadaniu Proxmox VE pozostaw pustą. Pozwoli to uniknąć mylących nakładań się retencji Proxmox VE i operacji prune w PBS.

Krok 10: Skonfiguruj ustawienia prune

Prune decyduje, które snapshoty kopii zapasowych pozostają widoczne i możliwe do przywrócenia. Nie usuwa on natychmiast z dysku wszystkich chunków, do których nie ma już odwołań. Zadania prune w PBS można skonfigurować na karcie Prune & GC lub za pomocą proxmox-backup-manager prune-job. Dokumentacja Proxmox podaje, że konfiguracja zadań prune jest przechowywana w /etc/proxmox-backup/prune.cfg.

Typowa polityka retencji dla codziennych kopii maszyn wirtualnych to:

Ustawienie Wartość Znaczenie
keep-daily 7 Zachowaj jedną kopię dziennie przez ostatnie 7 dni
keep-weekly 4 Zachowaj jedną kopię tygodniowo przez ostatnie 4 tygodnie
keep-monthly 6 Zachowaj jedną kopię miesięcznie przez ostatnie 6 miesięcy

Skonfiguruj tę politykę dla datastore:

proxmox-backup-manager prune-job create <JOB_ID> \ --store <DATASTORE> \ --ns <NAMESPACE> \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 \ --prune-schedule "03:00"

Oczekiwany wynik: PBS stosuje retencję i uruchamia prune codziennie o 03:00.

Dla mniejszego datastore użyj krótszej polityki:

proxmox-backup-manager prune-job create <JOB_ID> \ --store <DATASTORE> \ --ns <NAMESPACE> \ --keep-daily 3 \ --keep-weekly 2 \ --keep-monthly 1 \ --prune-schedule "03:00"

Oczekiwany wynik: PBS przechowuje mniej punktów przywracania i zajmuje mniej miejsca.

Warning

Nie ustawiaj dużych wartości, takich jak keep-daily 90, keep-weekly 52 i keep-monthly 36, bez obliczenia wymaganej pojemności. Deduplikacja kopii zapasowych pomaga, ale nie sprawia, że miejsce staje się nieograniczone.

Krok 11: Oszacuj zapotrzebowanie na miejsce dla kopii zapasowych

PBS deduplikuje chunki, więc zużycie miejsca nie jest po prostu pełnym rozmiarem maszyny wirtualnej pomnożonym przez liczbę kopii. Mimo to potrzebne jest ostrożne oszacowanie.

Użyj tego wzoru:

Estimated required capacity = initial full protected data + changed data per backup * retained backup points + safety margin

Przykład 1: Małe środowisko

Wartość Wielkość
Chronione dane maszyn wirtualnych 600 GiB
Średni dzienny współczynnik zmian 3 procent
Zmienione dane dziennie 18 GiB
Retencja 7 dziennych, 4 tygodniowe, 6 miesięcznych
Przybliżona liczba zachowanych punktów przywracania 17
Szacowana ilość zmienionych danych 306 GiB
Margines bezpieczeństwa 30 procent

Obliczenia:

600 GiB + (18 GiB * 17) = 906 GiB 906 GiB * 1.30 = 1177.8 GiB

Zalecana pojemność datastore: co najmniej 1,2 TiB, najlepiej 1,5 TiB lub więcej.

Przykład 2: Większe środowisko produkcyjne

Wartość Wielkość
Chronione dane maszyn wirtualnych 4 TiB
Średni dzienny współczynnik zmian 5 procent
Zmienione dane na kopię 204.8 GiB
Retencja 14 dziennych, 8 tygodniowych, 12 miesięcznych
Przybliżona liczba zachowanych punktów przywracania 34
Szacowana ilość zmienionych danych 6.8 TiB
Margines bezpieczeństwa 30 procent

Obliczenia:

4 TiB + (204.8 GiB * 34) = 10.8 TiB 10.8 TiB * 1.30 = 14.04 TiB

Zalecana pojemność datastore: co najmniej 14 TiB, najlepiej 16 TiB lub więcej.

Info

Te przykłady są celowo ostrożne. Rzeczywiste zużycie zależy od intensywności zmian w maszynach wirtualnych, zachowania systemu plików gościa, kompresji, deduplikacji, częstotliwości kopii oraz od tego, jak często duże pliki są nadpisywane wewnątrz systemów gości.

Krok 12: Skonfiguruj garbage collection

Garbage collection (GC) to proces, który faktycznie usuwa z datastore chunki, do których nie ma już odwołań. Prune usuwa snapshoty kopii zapasowych zgodnie z regułami retencji, ale chunki mogą pozostać na dysku, jeśli nadal odwołują się do nich inne snapshoty lub jeśli znajdują się jeszcze w oknie bezpieczeństwa.

Garbage collection w PBS składa się z dwóch faz:

Faza Co się dzieje
Mark PBS odczytuje pliki indeksów i aktualizuje czas dostępu chunków, do których istnieją odwołania
Sweep PBS skanuje chunki i usuwa te starsze niż czas graniczny, jeśli nie odwołuje się do nich żaden snapshot

PBS stosuje czas graniczny wyznaczany na podstawie najstarszego działającego procesu zapisującego kopię lub 24 godzin i 5 minut przed rozpoczęciem GC. Chunki w tym okresie karencji są odnotowywane jako oczekujące na usunięcie zamiast być usuwane natychmiast. Chroni to aktualnie wykonywane kopie zapasowe i uwzględnia zachowanie relatime systemu plików.

Zaplanuj GC po operacji prune:

proxmox-backup-manager datastore update <DATASTORE> \ --gc-schedule "04:30"

Oczekiwany wynik: PBS uruchamia garbage collection codziennie o 04:30.

Zalecany harmonogram dla codziennej kopii zapasowej o 02:00:

Zadanie Przykładowa godzina Cel
Kopia zapasowa Proxmox VE 02:00 Tworzenie zaszyfrowanych kopii maszyn wirtualnych
Prune w PBS 03:00 Zastosowanie polityki retencji
Garbage collection w PBS 04:30 Odzyskanie chunków bez odwołań, gdy jest to bezpieczne

Warning

Uruchomienie GC bezpośrednio po prune nie gwarantuje natychmiastowego odzyskania miejsca na dysku. Niektóre chunki są celowo zachowywane jako oczekujące na usunięcie, dopóki nie będą wystarczająco stare, aby można je było bezpiecznie usunąć.

Sprawdź status GC:

proxmox-backup-manager garbage-collection status <DATASTORE>

W razie potrzeby uruchom GC ręcznie:

proxmox-backup-manager garbage-collection start <DATASTORE>

Oczekiwany wynik: PBS uruchamia zadanie garbage collection na poziomie datastore. Oficjalna dokumentacja PBS również zawiera te polecenia oraz opcję w interfejsie webowym na karcie Prune & GC datastore.

Krok 13: Wykonaj testową kopię zapasową

Uruchom zadanie kopii zapasowej ręcznie z Proxmox VE:

  1. Otwórz Datacenter.
  2. Przejdź do Backup.
  3. Wybierz zadanie kopii zapasowej.
  4. Kliknij Run now.
  5. Potwierdź operację.

Oczekiwany wynik: zadanie kopii zapasowej kończy się powodzeniem.

Możesz też sprawdzić to z poziomu powłoki Proxmox VE:

pvesm status --storage <PVE_STORAGE_ID>

Oczekiwane wyjście:

Name Type Status <PVE_STORAGE_ID> pbs active

W PBS otwórz:

  1. Datastore.
  2. <DATASTORE>.
  3. Content.
  4. <NAMESPACE>.

Oczekiwany wynik: nowa kopia maszyny wirtualnej lub kontenera pojawia się w namespace.

Weryfikacja

Sprawdź uprawnienia tokenu w PBS:

proxmox-backup-manager user permissions <TOKEN_ID> \ --path /datastore/<DATASTORE>/<NAMESPACE>

Oczekiwany wynik: token ma uprawnienia do datastore wyłącznie dla docelowego namespace.

Sprawdź dostęp do storage z poziomu Proxmox VE:

pvesm status --storage <PVE_STORAGE_ID>

Oczekiwany wynik:

<PVE_STORAGE_ID> pbs active

Sprawdź, czy kopie zapasowe są zaszyfrowane:

  1. Otwórz Proxmox VE.
  2. Wybierz kopię maszyny wirtualnej w storage PBS.
  3. Upewnij się, że operacje przywracania są dostępne z poziomu Proxmox VE.
  4. Upewnij się, że kopia klucza jest przechowywana poza klastrem.

Sprawdź konfigurację prune i GC:

proxmox-backup-manager datastore show <DATASTORE>

Oczekiwany wynik: konfiguracja datastore pokazuje harmonogramy prune i garbage collection.

Co zrobić w razie naruszenia bezpieczeństwa tokenu API

Jeśli sekret tokenu został ujawniony, natychmiast go unieważnij.

W PBS usuń token:

proxmox-backup-manager user delete-token <PBS_USER> <TOKEN_NAME>

Oczekiwany wynik: PBS usuwa token.

Następnie utwórz token zastępczy:

proxmox-backup-manager user generate-token <PBS_USER> <NEW_TOKEN_NAME> proxmox-backup-manager acl update /datastore/<DATASTORE>/<NAMESPACE> DatastoreBackup --auth-id '<PBS_USER>!<NEW_TOKEN_NAME>' proxmox-backup-manager acl update /datastore/<DATASTORE>/<NAMESPACE> DatastoreReader --auth-id '<PBS_USER>!<NEW_TOKEN_NAME>'

Zaktualizuj hasło storage w Proxmox VE:

pvesm set <PVE_STORAGE_ID> --username '<PBS_USER>!<NEW_TOKEN_NAME>' pvesm set <PVE_STORAGE_ID> --password

Po wyświetleniu monitu wklej nowy sekret tokenu.

Oczekiwany wynik: Proxmox VE używa nowego tokenu do bezpiecznego uwierzytelniania za pomocą tokenu API.

Info

Tokeny API zaprojektowano tak, aby można je było łatwo unieważnić w razie przejęcia klienta. To jeden z głównych powodów, dla których warto używać tokenów zamiast przechowywać hasło użytkownika w Proxmox VE.

Cofanie zmian

Danger

Przed usunięciem storage zapisz kopię klucza szyfrowania poza klastrem.

Usuń wpis storage z Proxmox VE:

pvesm remove <PVE_STORAGE_ID>

Oczekiwany wynik: Proxmox VE usuwa konfigurację storage PBS. Istniejące kopie zapasowe w PBS pozostają w datastore.

Usuń token API:

proxmox-backup-manager user delete-token <PBS_USER> <TOKEN_NAME>

Oczekiwany wynik: PBS unieważnia token API.

Usuń wpisy ACL:

proxmox-backup-manager acl update /datastore/<DATASTORE>/<NAMESPACE> DatastoreReader \ --auth-id <ID> --delete 1 proxmox-backup-manager acl update /datastore/<DATASTORE>/<NAMESPACE> DatastoreBackup \ --auth-id <ID> --delete 1

Oczekiwany wynik: PBS usuwa uprawnienia do namespace.

Usuń dedykowanego użytkownika, jeśli nie jest już potrzebny:

proxmox-backup-manager user remove <PBS_USER>

Oczekiwany wynik: PBS usuwa użytkownika.

Warning

Nie usuwaj namespace ani datastore, chyba że świadomie chcesz usunąć dane kopii zapasowych. Usunięcie konfiguracji dostępu to nie to samo co usunięcie kopii zapasowych.

Rozwiązywanie problemów

Proxmox VE wyświetla storage PBS jako nieaktywny

Sprawdź dostęp sieciowy:

nc -vz <PBS_HOST> 8007

Oczekiwane wyjście:

Connection to <PBS_HOST> 8007 port [tcp/*] succeeded!

Sprawdź fingerprint PBS:

proxmox-backup-manager cert info | grep Fingerprint

Jeśli fingerprint się zmienił, zaktualizuj go w Proxmox VE:

pvesm set <PVE_STORAGE_ID> --fingerprint <PBS_FINGERPRINT>

Uwierzytelnianie za pomocą tokenu API kończy się niepowodzeniem

Upewnij się, że nazwa użytkownika to pełny identyfikator tokenu:

<PBS_USER>!<TOKEN_NAME>

Przykład:

pve-backup@pbs!pve-token

Upewnij się, że pole hasła zawiera sekret tokenu, a nie hasło użytkownika PBS.

Sprawdź uprawnienia:

proxmox-backup-manager acl list

Token musi mieć wpisy ACL na ścieżce namespace, a użytkownik nadrzędny również musi mieć zgodne uprawnienia.

Kopia zapasowa kończy się błędami uprawnień

Sprawdź ścieżkę namespace:

/datastore/<DATASTORE>/<NAMESPACE>

Przy przydzielaniu ACL nie używaj ścieżki datastore w systemie plików, takiej jak /mnt/datastore/<DATASTORE>. Ścieżki ACL w PBS mają format /datastore/<DATASTORE>.

Datastore nadal rośnie po operacji prune

Zwykle jest to oczekiwane, jeśli GC jeszcze się nie uruchomiła lub chunki nadal znajdują się w oknie bezpieczeństwa. PBS nie usuwa chunków natychmiast po prune, ponieważ mogą się do nich nadal odwoływać inne snapshoty lub mogą być chronione oknem czasu granicznego GC.

Sprawdź status GC:

proxmox-backup-manager garbage-collection status <DATASTORE>

Jeśli GC nie jest zaplanowana, skonfiguruj ją:

proxmox-backup-manager datastore update <DATASTORE> \ --gc-schedule "04:30"

Nie można przywrócić zaszyfrowanych kopii zapasowych

Upewnij się, że storage Proxmox VE nadal ma dostęp do klucza szyfrowania.

Sprawdź wewnętrzny spis kluczy kopii zapasowych. Jeśli pierwotny klaster Proxmox VE został utracony, przywrócenie wymaga zapisanego klucza szyfrowania. Bez niego szyfrowanie kopii po stronie klienta może uniemożliwić odzyskanie danych.

Podsumowanie

Skonfigurowano bezpieczne połączenie Proxmox VE z Proxmox Backup Server z użyciem dedykowanego użytkownika PBS, tokenów API Proxmox, uprawnień ograniczonych do namespace i szyfrowania po stronie klienta. Skonfigurowano także harmonogramy prune i garbage collection, aby szyfrowanie kopii zapasowych w Proxmox pozostawało wydajne w miarę wzrostu historii kopii.

Ta konfiguracja usprawnia uwierzytelnianie kopii zapasowych Proxmox VE, chroni zaszyfrowane kopie maszyn wirtualnych przed ujawnieniem po stronie serwera i zapewnia praktyczne, bezpieczne repozytorium kopii zapasowych na potrzeby długoterminowej konfiguracji Proxmox Backup Server.

Zalecane dalsze kroki:

  • Przetestuj pełne przywrócenie maszyny wirtualnej.
  • Przetestuj przywracanie na poziomie plików.
  • Przechowuj klucz szyfrowania w co najmniej dwóch bezpiecznych lokalizacjach.
  • Monitoruj przyrost datastore po każdym cyklu prune i GC.
  • Dodaj zadania weryfikacji PBS, aby wykrywać ciche uszkodzenia kopii zapasowych.
  • Udokumentuj procedurę unieważniania tokenów w planie reagowania na incydenty.

Wersja dokumentu: 1.0
Ostatnia aktualizacja: czerwiec 2026
Właściciel: Zespół Dokumentacji Technicznej

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA