Denne artikkelen viser hvordan du administrerer hemmeligheter ved å bruke AWS Secrets Manager og RDS.
Hva er en hemmelig leder?
Sikkerhetstrusler og personvernbekymringer har også blitt tatt opp av eksperter og mennesker over hele verden. For å beskytte dine digitale hemmeligheter som databaselegitimasjon, API og tokens, er AWS Secret Manager ditt verktøy for dette formålet.
AWS Secret Manager hjelper bedrifter og organisasjoner med å beskytte ressursene og tjenestene deres mot ondsinnede hensikter og cyberangrep for å kapre eller stjele sensitive data. Denne tjenesten legger til et ekstra lag med sikkerhet til ressursene og lar deg enkelt skalere og administrere hemmelighetene.
Hvordan administrere hemmeligheter ved å bruke AWS Secret Manager og RDS?
Når en bruker konfigurerer RDS-klyngen, krever den informasjon om regionen, brukernavnet og passordet til klyngen og identifiserer den ved å bruke en unik identifikator for klyngen. Ved å integrere RDS med Secret Manager kan du beskytte RDS-legitimasjonen din og administrere dem deretter.
Ved å bruke Secret Manager kan du definere livssyklusen til disse hemmelighetene og integrere dem med andre ressurser. Her i denne artikkelen vil vi legge til AWS Secret Manager med Lambda-funksjon til RDS-klyngen vår.
Nedenfor er noen trinn for dette formålet:
Trinn 1: Opprett RDS-klynge
Secret Manager er mye brukt for å beskytte databaselegitimasjonen. Så det første trinnet er å lage en RDS-klynge. For dette formålet, se denne artikkelen: ' Hvordan opprette en RDS-klynge på AWS? '. Vi har RDS-klyngen oppe og går:
Trinn 2: AWS Secret Manager
På AWS Management Console, søk og velg ' Secrets Manager ':
På Secret Manager-grensesnittet klikker du på 'Lagre en ny hemmelighet' knapp:
I Hemmelig type , velg 'Påloggingsinformasjon for Amazon RDS-database' alternativet når vi konfigurerer det for RDS:
Neste er Legitimasjon seksjon. I denne delen oppgir du Brukernavn og Passord for RDS-databasen som vi nettopp har opprettet:
I Krypteringsnøkkel seksjonen, kan brukeren enten bruke standarden levert av AWS Secret Manager eller opprette en ny ved å klikke på 'Legg til ny nøkkel' alternativ. Tilsvarende i Database seksjon, velg 'DB-forekomst' som du har opprettet og trykket på 'Neste' knapp:
Oppgi et unikt navn for 'Hemmelig' som vil hjelpe oss å identifisere det senere. Beskrivelsen er valgfri. Imidlertid kan brukeren også gi en egendefinert beskrivelse her:
På grensesnittet , Secret Manager gir oss også muligheten til å gjenskape hemmeligheten. For dette, velg en region der du vil opprette replikasjonen. I denne demoen krever vi ingen replikering, så ved å beholde resten av innstillingene som standard, trykk på 'Neste' knapp:
Ved å beholde standarden gjennomgår og redigerer vi nå informasjonen. Etter å ha bekreftet informasjonen som er gitt, klikk på 'Butikk' knappen for å opprette og lagre hemmeligheten:
Her er hemmeligheten vellykket opprettet . Klikk på ' Hemmelighetens navn ' for å se konfigurasjonene:
Når du ruller nedover grensesnittet, vil vi ha prøvekodedelen. I denne delen genereres en kode av Hemmelig leder. Kopier denne koden slik den vil bli brukt i Lambda funksjon:
// Bruk denne kodebiten i appen din.// Hvis du trenger mer informasjon om konfigurasjoner eller implementering av eksempelkoden, besøk AWS-dokumentene:
// https: // docs.aws.amazon.com / sdk-for-javascript / v3 / utviklerveiledning / komme i gang.html
import {
SecretsManagerClient,
GetSecretValueCommand,
} fra '@aws-sdk/client-secrets-manager' ;
const hemmelig_navn = 'mysecret1/sh' ;
const klient = ny SecretsManagerClient ( {
region: 'ap-sørøst-1' ,
} ) ;
la respons;
prøve {
respons = avventer klient.send (
ny GetSecretValueCommand ( {
SecretId: secret_name,
Versjonsstadium: 'AWSCURRENT' , // VersionStage har som standard AWSCURRENT hvis uspesifisert
} )
) ;
} å fange ( feil ) {
// For en liste over kastet unntak, se
// https: // docs.aws.amazon.com / secretsmanager / siste / apireference /
API_GetSecretValue.html
kaste feil;
}
const secret = respons.SecretString;
// Koden din kommer her
Trinn 3: Lag Lambda-funksjon
På Lambda Function-grensesnittet klikker du på ' Lag en funksjon ”-knapp:
Klikk på «Forfatter fra bunnen av» alternativ fra 'Opprett en funksjon' grensesnitt:
Deretter beveger vi oss mot 'Grunnleggende informasjon' seksjon. Oppgi funksjonsnavnet i 'Funksjonsnavn' feltet og deretter oppgi «Kjøretid» miljø. Her har vi valgt ut «Node.js 16. x» i Runtime-feltet:
Klikk på 'Opprett funksjon' knapp:
Her har vi limt inn koden som ble generert av Hemmelig leder . Etter å ha limt inn koden, klikk på 'Utplassere' knapp:
Etter å ha implementert alle endringene, klikk på 'Konfigurasjon' fanen for å tillate tillatelser for Secret Manager:
Klikk på «Tillatelser» alternativ fra 'Konfigurasjoner' fanen. Dette vil vise ' Gjennomføringsrolle' grensesnitt og klikk på følgende lenke under «Rollenavn» felt:
I «Retningslinjer for tillatelser» seksjonen, klikk på 'Legg til tillatelser' knapp. Fra rullegardinmenyen klikker du på 'Legg ved retningslinjer' alternativ:
I «Andre retningslinjer for tillatelser» seksjon, søk og velg 'SecretsManagerReadWrite' alternativ. Slå den 'Legg til tillatelser' knapp:
Her er policyen vedlagt og konfigurert:
Trinn 4: Bekreft den hemmelige tilgangen
Gå nå til Lambda Dashboard Interface. Klikk på 'Test' fane:
På neste grensesnitt, oppgi et navn for testhendelsen i 'Arrangementsnavn' felt. Klikk på 'Lagre' knapp for å bruke konfigurasjoner:
Her er testen vellykket konfigurert. Klikk på 'Test' knapp:
Her klikker vi på 'Test' knappen igjen, og den vil vise følgende utgang:
Det er alt fra denne guiden.
Konklusjon
For å administrere hemmeligheter i Secret Manager, opprett RDS-klyngen, koble den til Secret Manager, og kjør deretter den koden i den konfigurerte Lambda-funksjonen. Lambda-funksjonen vil definere om hemmeligheten kan nås eller ikke ved å utføre koden i den som inneholder spesifikasjonen til RDS-klyngen. Denne artikkelen er en trinn-for-trinn-guide for å administrere hemmeligheter ved å bruke AWS Secret Manager og RDS.