Jak szyfrować ETCD Kubernetes za pomocą OVHcloud KMS
Dowiedz się, jak skonfigurować Kubernetes do szyfrowania magazynu ETCD za pomocą interfejsu KMIP OVHcloud KMS
Wprowadzenie
Ten przewodnik wyjaśnia, jak skonfigurować dostawcę szyfrowania kube-apiserver, umożliwiającego klastrom Kubernetes szyfrowanie i deszyfrowanie danych w spoczynku za pomocą OVHcloud KMS poprzez protokół KMIP.
Wymagania początkowe
- Posiadanie konta klienta OVHcloud.
- Zamówienie domeny OKMS.
W praktyce
Instalacja pliku binarnego
Plik binarny można zainstalować bezpośrednio z pakietów Go.
Możesz go również skompilować ze źródeł.
Konfiguracja OVHcloud KMS (OKMS)
Aby korzystać z OVHcloud KMS jako dostawcy szyfrowania dla Kubernetes, potrzebujesz następujących elementów:
- Użytkownika OVHcloud oraz uprawnień do zarządzania kluczami KMIP OKMS.
- Certyfikatu dostępu dla domeny OKMS.
- Klucza KMIP AES w OKMS.
Tworzenie użytkownika i praw dostępu
Utwórz lokalnego użytkownika IAM z prawami dostępu do domeny.
Jeśli zamiast tego korzystasz z polityk IAM, użytkownik powinien mieć co najmniej następujące prawa do domeny OKMS:
okms:kmip:encryptokms:kmip:decryptokms:kmip:locate
W przeciwnym razie użytkownik powinien należeć do grupy z rolą ADMIN.
Możesz również utworzyć użytkownika za pomocą CLI OVHcloud:
Tworzenie certyfikatu dostępu
Utwórz certyfikat dostępu OKMS i połącz go z wcześniej utworzonym użytkownikiem.
Zapisz wygenerowany certyfikat cert.pem oraz klucz prywatny key.pem, ponieważ będą one wymagane do konfiguracji dostawcy szyfrowania.
Tworzenie klucza KMIP AES
Aby utworzyć klucz KMIP AES, możesz użyć CLI OKMS:
Zacznij od pobrania pliku binarnego z najnowszej wersji lub skompilowania go ze źródeł.
Następnie możesz utworzyć klucz za pomocą:
Zachowaj Key ID wygenerowanego klucza. W dalszej części przewodnika jako przykład wykorzystamy Key ID 70001308-5674-43fe-93dd-6270ecac0710.
Więcej informacji na temat korzystania z okms-cli znajdziesz w repozytorium GitHub.
Konfiguracja dostawcy szyfrowania
Dostawcę szyfrowania można uruchomić bezpośrednio na hostach kube-apiserver za pomocą następującego polecenia:
Dostawca szyfrowania obsługuje następujące opcje:
Konfiguracja Kubernetes
W oparciu o oficjalny przewodnik Kubernetes dotyczący szyfrowania danych za pomocą dostawcy KMS dodaj następujące flagi do kube-apiserver:
Upewnij się, że katalog zawierający gniazdo Unix, na którym nasłuchuje serwer KMS, został zamontowany w kube-apiserver.
Przykład pliku encryption-config.yaml:
Weryfikacja konfiguracji
Utwórz secret za pomocą kubectl create secret generic okms-test-secret -n default --from-literal=mykey=mydata, a następnie sprawdź zawartość tego secret w magazynie ETCD, uruchamiając następujące polecenie:
Wynik powinien być nieczytelny:
Wdrażanie rotacji kluczy
Aby rotować klucz, musisz uruchomić dwóch dostawców szyfrowania, z których każdy nasłuchuje na innym gnieździe Unix.
Poniżej znajduje się przykładowy plik konfiguracji szyfrowania dla wszystkich serwerów API przed rozpoczęciem korzystania z nowego klucza:
Po ponownym uruchomieniu wszystkich serwerów API i uzyskaniu przez nie możliwości deszyfrowania za pomocą nowego klucza, przenieś dostawcę z nowym kluczem na górę.
Po ponownym zaszyfrowaniu wszystkich obiektów secret nowym kluczem możesz usunąć starego dostawcę szyfrowania.
Sprawdź również
Dołącz do grona naszych użytkowników.
Dowiedz się, jak korzystać z Kubernetes External Secrets Operator z Secret Manager.