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 |
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
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:
- Otwórz interfejs webowy PBS.
- Przejdź do Datastore.
- Wybierz
<DATASTORE>. - Otwórz Content.
- Kliknij Add Namespace.
- Wpisz
<NAMESPACE>. - 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>
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.
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
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.
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:
- Otwórz Datacenter.
- Przejdź do Storage.
- Kliknij Add.
- Wybierz Proxmox Backup Server.
- Ustaw ID na
<PVE_STORAGE_ID>. - Ustaw Server na
<PBS_HOST>. - Ustaw Datastore na
<DATASTORE>. - Ustaw Namespace na
<NAMESPACE>. - Ustaw Username na
<TOKEN_ID>. - Ustaw Password na sekret tokenu API.
- W razie potrzeby ustaw Fingerprint na
<PBS_FINGERPRINT>. - 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:
- Otwórz Datacenter.
- Przejdź do Storage.
- Wybierz
<PVE_STORAGE_ID>. - Kliknij Edit.
- Przejdź na kartę Encryption i wybierz Auto-generate a client encryption key.
- Wygeneruj nowy klucz, jeśli jest to nowe, bezpieczne repozytorium kopii zapasowych.
- Zapisz kopię zapasową klucza szyfrowania w menedżerze haseł lub w offline'owym sejfie na sekrety.
- Kliknij OK.

Oczekiwany wynik: nowe kopie zapasowe w tym storage PBS są szyfrowane po stronie klienta.
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:
- Otwórz Datacenter.
- Przejdź do Backup.
- Kliknij Add.
- Wybierz węzły, maszyny wirtualne lub kontenery do ochrony.
- Ustaw Storage na
<PVE_STORAGE_ID>. - Wybierz harmonogram, na przykład codziennie o 02:00.
- Ustaw tryb zgodnie z charakterem obciążenia.
- Pozostaw retencję pustą, jeśli za prune będzie odpowiadać PBS.
- Kliknij Create.

Oczekiwany wynik: Proxmox VE tworzy zaplanowane zadanie kopii zapasowej, które zapisuje zaszyfrowane kopie 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.
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.
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 |
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:
- Otwórz Datacenter.
- Przejdź do Backup.
- Wybierz zadanie kopii zapasowej.
- Kliknij Run now.
- 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:
- Datastore.
<DATASTORE>.- Content.
<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:
- Otwórz Proxmox VE.
- Wybierz kopię maszyny wirtualnej w storage PBS.
- Upewnij się, że operacje przywracania są dostępne z poziomu Proxmox VE.
- 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.
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
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.
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