AWS Secrets Manager
AWS Secrets Manager
Bezpieczne przechowywanie i zarzadzanie sekretami w chmurze AWS. Automatyczna rotacja hasel, kluczy API i tokenow - koniec z hardkodowanymi credentials w kodzie.
AWS Secrets Manager to usluga do bezpiecznego przechowywania, pobierania i automatycznej rotacji sekretow takich jak hasla do baz danych, klucze API, tokeny i certyfikaty. Zamiast trzymac hasla w plikach konfiguracyjnych czy zmiennych srodowiskowych, Twoja aplikacja pobiera je w runtime z Secrets Manager.
Kazdy sekret jest szyfrowany za pomoca AWS KMS i mozesz kontrolowac dostep do niego za pomoca polityk IAM. Kluczowa funkcja to automatyczna rotacja - Secrets Manager moze cyklicznie zmieniac hasla do RDS, Redshift i innych uslug bez przerwy w dzialaniu aplikacji.
Przed powstaniem Secrets Manager programisci czesto przechowywali hasla w plikach .env, zmiennych srodowiskowych lub nawet bezposrednio w kodzie zrodlowym. W 2019 roku GitHub ujawnil, ze na platformie znaleziono ponad 100 000 repozytoriow z hardkodowanymi credentials AWS! Secrets Manager rozwiazuje ten problem - aplikacja pobiera haslo w runtime i nigdy nie jest ono zapisane w kodzie.
Uzyj natywnej rotacji RDS (bez pisania Lambda) dla hasel do Aurora/RDS - Secrets Manager automatycznie zmieni haslo w bazie i w sekrecie. Dla aplikacji na ECS/Lambda uzywaj integracji natywnej (valueFrom w task definition / env variable reference) zamiast pobierania sekretu w kodzie - jest szybsze i cachowane.
Secrets Manager kosztuje $0.40/sekret/miesiac. Przy 100 sekretach to $40/mies. Jesli nie potrzebujesz automatycznej rotacji, Parameter Store SecureString jest darmowy i wystarczajacy dla wiekszosci przypadkow. Uzywaj Secrets Manager dla hasel do baz danych (natywna rotacja RDS) i tam gdzie rotacja jest wymagana przez compliance.
AWS Secrets Manager to serwis do bezpiecznego przechowywania, zarzadzania i automatycznej rotacji sekretow - hasel, kluczy API, tokenow i connection stringow do baz danych. Zamiast hardkodowac credentiale w kodzie lub zmiennych srodowiskowych, aplikacja pobiera je w runtime z Secrets Manager przez API.
Tworzenie sekretu
Sekret to zasob w Secrets Manager przechowujacy poufna wartosc. Moze to byc: plaintext string (np. klucz API), JSON z wieloma polami (np. username + password + host + port dla bazy danych) lub binary data (np. certyfikat). Sekret jest szyfrowany at-rest za pomoca klucza KMS (domyslny aws/secretsmanager lub wlasny CMK). Wlasny klucz KMS jest wymagany do udostepniania sekretow cross-account.
Automatyczna rotacja
Rotacja to automatyczna zmiana wartosci sekretu wedlug harmonogramu (np. co 30 dni). Secrets Manager wywoluje Lambda function, ktora: generuje nowe haslo, aktualizuje je w docelowym serwisie (np. RDS, Redshift) i zapisuje nowa wartosc w Secrets Manager. Dla RDS, Aurora i Redshift AWS dostarcza gotowe Lambda functions (rotation templates). Dla innych serwisow musisz napisac wlasna Lambda function.
Pobieranie sekretu z SDK
Aplikacja pobiera sekret wywolujac GetSecretValue API z AWS SDK. Uwierzytelnienie odbywa sie przez IAM - instancja EC2 potrzebuje IAM Role, Lambda function potrzebuje execution role z uprawnieniami secretsmanager:GetSecretValue. Nigdy nie loguj wartosci sekretu. SDK zwraca albo SecretString (tekst/JSON) albo SecretBinary (dane binarne). Parsuj JSON odpowiedzi, zeby wyciagnac poszczegolne pola (np. password, host).
Caching - redukcja kosztow i latencji
Kazde wywolanie GetSecretValue to request API, ktory kosztuje ($0.05 per 10,000 wywolan) i dodaje latency (ok. 20-50ms). AWS udostepnia klienty cache: aws-secretsmanager-caching-python, aws-secretsmanager-caching-java, aws-secretsmanager-caching-go. Cache przechowuje sekret w pamieci i odswieża go automatycznie (domyslnie co godzine). Dla Lambda, cache zyje przez czas zycia execution environment.
Cross-account access
Sekrety mozna udostepniac miedzy kontami AWS. Wymaga to: (1) resource-based policy na sekrecie zezwalajaca na dostep z innego konta, (2) IAM policy w koncie konsumenta z uprawnieniami secretsmanager:GetSecretValue i ARN sekretu, (3) klucza KMS CMK (nie domyslnego) z key policy zezwalajaca na kms:Decrypt z innego konta. Cross-account access jest typowy w architekturze multi-account - np. centralne konto z sekretami wspoldzelonymi.
Versioning - wersjonowanie sekretow
Secrets Manager automatycznie wersjonuje sekrety. Kazda wersja ma staging labels: AWSCURRENT (aktywna wersja pobierana domyslnie), AWSPREVIOUS (poprzednia wersja - do rollbacku) i AWSPENDING (nowa wersja podczas rotacji). Podczas rotacji Lambda tworzy wersje AWSPENDING, testuje ja, a potem przesuwa label AWSCURRENT. Jezeli rotacja sie nie powiedzie, AWSCURRENT pozostaje na starej wersji - bez impact na aplikacje.
Praktyczne wskazowki z produkcyjnego uzycia Secrets Manager - od strategii rotacji po optymalizacje kosztow i integracje z innymi serwisami AWS.
Rotation Lambda - gotowe szablony i custom
Dla RDS (MySQL, PostgreSQL, Oracle, SQL Server), Aurora i Redshift uzywaj gotowych rotation templates od AWS - sa przetestowane i obsluguja edge cases (np. multi-user rotation strategy). Dla custom sekretow (API keys, tokeny) napisz wlasna Lambda function implementujaca 4 kroki: createSecret, setSecret, testSecret, finishSecret. Testuj rotacje w srodowisku staging - bledna Lambda moze zablokowac dostep do bazy.
ZaawansowanyCaching z SDK - redukuj koszty i latency
Bez cachingu Lambda wywolujaca GetSecretValue przy kazdym invocation generuje tysiace zbednych API calls. Uzywaj oficjalnych bibliotek cache: secrets manager caching library przechowuje sekret w pamieci i odswieza go co godzine (konfigurowalny TTL). Dla EC2/ECS cache dziala przez caly czas zycia procesu. Dla Lambda cache przezywa miedzy invocations w ramach tego samego execution environment - cold start wymaga ponownego pobrania.
PoczatkujacyCross-account sharing z resource policies
W architekturze multi-account przechowuj wspoldzielone sekrety w dedykowanym koncie "shared-services". Uzyj resource-based policy na sekrecie, zeby zezwolic na GetSecretValue z kont konsumentow. Pamietaj o KMS key policy - domyslny klucz aws/secretsmanager nie wspiera cross-account. Stworz wlasny CMK i dodaj konta konsumentow do key policy. Monitoruj cross-account access przez CloudTrail - kazde pobranie sekretu jest logowane.
ZaawansowanyCloudFormation dynamic references
W szablonach CloudFormation odwoluj sie do sekretow przez dynamic references: {{resolve:secretsmanager:secret-id:SecretString:key}}. CloudFormation pobiera wartosc sekretu w momencie tworzenia/aktualizacji stacka i przekazuje ja do zasobu (np. RDS MasterUserPassword). Wartosc nigdy nie pojawia sie w szablonie ani w CloudFormation outputs. To bezpieczna alternatywa dla przekazywania hasel jako parametrow stacka.
PoczatkujacyRDS integration - natywna rotacja
Secrets Manager ma natywna integracje z RDS i Aurora. Przy tworzeniu bazy danych mozesz od razu wygenerowac haslo w Secrets Manager i wlaczyc automatyczna rotacje. RDS wspiera dwie strategie rotacji: single-user (jedno konto, krotki downtime podczas rotacji) i multi-user (dwa konta, rotowane naprzemiennie - zero downtime). Multi-user jest recommended dla produkcji, ale wymaga aplikacji obslugujacych oba konta.
ZaawansowanySecrets Manager vs Parameter Store - kiedy co
Secrets Manager ($0.40/sekret/miesiac + $0.05/10K API calls) vs SSM Parameter Store SecureString (darmowy standard tier, $0.05/10K advanced). Uzywaj Secrets Manager gdy: potrzebujesz automatycznej rotacji, cross-account sharing, lub zarzadzasz credentialami do baz danych. Uzywaj Parameter Store gdy: przechowujesz konfiguracje aplikacji, feature flags, lub masz ograniczony budzet. Wiele zespolow uzywa obu - Secrets Manager na hasla, Parameter Store na konfiguracje.
PoczatkujacyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS Secrets Manager bezposrednio w konsoli AWS.
Do czego sluzy AWS Secrets Manager?
Hasla do baz danych
Przechowuj i automatycznie rotuj hasla do RDS, Aurora, Redshift i DocumentDB. Aplikacja pobiera aktualne haslo przy kazdym polaczeniu.
Klucze API i tokeny
Bezpiecznie przechowuj klucze API do zewnetrznych serwisow (Stripe, Twilio, SendGrid) z kontrola dostepu przez IAM.
Sekrety miedzy kontami AWS
Udostepniaj sekrety miedzy kontami AWS w organizacji. Np. wspolne credentials do bazy dzielonej miedzy srodowiskami.
CI/CD pipeline
Pobieraj sekrety w pipeline (CodeBuild, GitHub Actions, Jenkins) zamiast trzymac je w zmiennych srodowiskowych pipeline.
Co musisz wiedziec?
Secret
Zasob w Secrets Manager przechowujacy poufne dane. Moze zawierac tekst (JSON, string) lub dane binarne. Kazdy sekret ma unikalna nazwe (ARN).
Automatic Rotation
Mechanizm automatycznej zmiany hasel w okreslonym cyklu (np. co 30 dni). Uzywa funkcji Lambda do generowania nowego hasla i aktualizacji bazy danych.
Versioning
Secrets Manager przechowuje wersje sekretu: AWSCURRENT (aktualna), AWSPREVIOUS (poprzednia), AWSPENDING (w trakcie rotacji). Zapewnia plynne przejscie przy rotacji.
Resource Policy
Polityka zasobow (resource-based policy) pozwala na wspoldzielenie sekretow miedzy kontami AWS bez koniecznosci tworzenia rol IAM w kazdym koncie.
KMS Encryption
Kazdy sekret jest szyfrowany za pomoca klucza AWS KMS. Mozesz uzyc domyslnego klucza AWS lub wlasnego Customer Managed Key (CMK) dla pelnej kontroli.
Architektura: Bezpieczne zarzadzanie sekretami z Secrets Manager
Aplikacje pobieraja credentiale w runtime z Secrets Manager zamiast hardkodowac je w kodzie. Automatyczna rotacja zmienia hasla bez przestoju, a CloudTrail audytuje kazdy dostep.
Porownanie Secrets Manager vs Parameter Store vs Vault
| Serwis | Automatyczna rotacja | Koszt | Cross-account | Max rozmiar | Szyfrowanie | Najlepszy dla |
|---|---|---|---|---|---|---|
| Secrets Manager | Tak (Lambda, natywna RDS) | $0.40/sekret/mies. + $0.05/10k API | Tak (resource policy) | 64 KB | KMS (obowiazkowe) | Hasla DB, klucze API z rotacja |
| SSM Parameter Store | Nie (reczna) | Darmowy (Standard) / $0.05 (Advanced) | Tak (od 2023) | 4 KB (Standard) / 8 KB (Advanced) | KMS (opcjonalne) | Konfiguracja, feature flags, low-cost secrets |
| HashiCorp Vault | Tak (dynamic secrets) | Open source lub Enterprise | Tak | Brak limitu | Transit engine | Multi-cloud, zaawansowane polityki |
Ile kosztuje AWS Secrets Manager?
Za sekret
Stala oplata miesieczna za kazdy przechowywany sekret.
$0.40 za sekret miesiecznie
Za wywolania API
Oplata za kazde pobranie wartosci sekretu (GetSecretValue).
$0.05 za 10 000 wywolan API
Rotacja
Automatyczna rotacja jest wliczona w cene. Funkcja Lambda do rotacji moze generowac minimalne koszty.
Rotacja co 30 dni: brak dodatkowych oplat za sama rotacje
Free Trial
30-dniowy darmowy okres probny dla nowych sekretow. Pozwala przetestowac usluge bez kosztow.
30 dni za darmo na nowy sekret
Przyklady AWS CLI
Utworz nowy sekret
Tworzy sekret z haslem do bazy danych w formacie JSON
aws secretsmanager create-secret \
--name produkcja/baza-danych/haslo \
--description "Haslo do produkcyjnej bazy PostgreSQL" \
--secret-string '{"username":"admin","password":"MojeSuperTajneHaslo123!","engine":"postgres","host":"moja-baza.cluster-xyz.eu-central-1.rds.amazonaws.com","port":5432}'
Pobierz wartosc sekretu
Odczytuje aktualna wartosc sekretu
aws secretsmanager get-secret-value \
--secret-id produkcja/baza-danych/haslo \
--query "SecretString" \
--output text
Wlacz automatyczna rotacje
Konfiguruje rotacje hasla co 30 dni z uzyciem funkcji Lambda
aws secretsmanager rotate-secret \
--secret-id produkcja/baza-danych/haslo \
--rotation-lambda-arn arn:aws:lambda:eu-central-1:123456789012:function:SecretsManagerRotation \
--rotation-rules AutomaticallyAfterDays=30
Lista wszystkich sekretow
Wyswietla liste sekretow z ich nazwami i datami rotacji
aws secretsmanager list-secrets \
--query "SecretList[].{Nazwa:Name,Rotacja:RotationEnabled,OstatniaZmiana:LastChangedDate}" \
--output table
Quiz: AWS Secrets Manager
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Jakiego serwisu AWS uzywa Secrets Manager do szyfrowania sekretow?
2. Co oznacza wersja AWSCURRENT sekretu?
3. Z jakim serwisem Secrets Manager integruje sie do automatycznej rotacji hasel?
4. Ile kosztuje przechowywanie jednego sekretu miesiecznie?
Czesto uzywane razem z AWS Secrets Manager
Chcesz poznac AWS Secrets Manager w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS Secrets Manager krok po kroku. Teoria + praktyka od zera.