Come posso creare una funzione di rotazione con un segreto di Secrets Manager per un database non supportato?
Desidero creare una funzione AWS Lambda per un segreto di AWS Secrets Manager. Il mio database o servizio non supporta la funzione di rotazione automatica.
Risoluzione
Prerequisito: installa e configura l'Interfaccia della linea di comando AWS (AWS CLI).
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori relativi ad AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Crea il codice per la funzione di rotazione Lambda
Per istruzioni, consulta Imposta la rotazione automatica per i segreti non relativi al database di AWS Secrets Manager.
Crea un set di modifiche di AWS CloudFormation basato sul modello di funzione di rotazione generico
- Esegui il comando AWS CLI create-cloud-formation-change-set.
- Sostituisci**--stack-name** con il nome dello stack CloudFormation.
- Sostituisci --parameter-overrides con gli endpoint Regionali di Secrets Manager per la tua Regione AWS e il nome della funzione di rotazione Lambda creata dal modello.
Esempio del comando AWS CLI create-cloud-formation-change-set:
aws serverlessrepo create-cloud-formation-change-set --application-id arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate --stack-name MyLambdaCreationStack --parameter-overrides Name=endpoint,Value=https://secretsmanager.REGION.amazonaws.com Name=functionName,Value=MySecretsManagerRotationFunction --capabilities CAPABILITY_IAM CAPABILITY_RESOURCE_POLICY
Nota: assicurati di utilizzare l'ARN di arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate esattamente come riportato.
Utilizza il set di modifiche di CloudFormation per aggiornare uno stack
Il comando create-cloud-formation-change-set restituisce i valori ApplicationId, ChangeSetId, SemanticVersion e StackId.
Completa i seguenti passaggi:
- Sostituisci change-set-name con il valore ChangeSetId quando esegui il comando execute-change-set.
- Esegui il comando AWS CLI execute-change-set:
aws cloudformation execute-change-set --change-set-name arn:aws:cloudformation:region:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE
Lo stack CloudFormation crea la funzione Lambda e un ruolo AWS Identity and Access Management (AWS IAM). Il ruolo IAM ha le autorizzazioni richieste per la funzione Lambda.
Verifica la creazione della funzione Lambda
Esegui il comando AWS CLI list-functions:
aws lambda list-functions Output { ... "FunctionName": "MySecretsManagerRotationFunction", ... "FunctionArn": "arn:aws:lambda:region:123456789012:function:MySecretsManagerRotationFunction", ... }
Nota: il valore FunctionName corrisponde al nome della funzione specificato nell'opzione**--parameter-overrides**.
Configura l'accesso della funzione Lambda a un Amazon Virtual Private Cloud
Se il database o servizio si trova in un Amazon Virtual Private Cloud (Amazon VPC), esegui il comandoupdate-function-configuration per configurare la funzione di rotazione Lambda da eseguire in Amazon VPC. Assicurati di fornire gli ID della sottorete VPC e gli ID dei gruppi di sicurezza. Per ulteriori informazioni, consulta Consentire alle funzioni Lambda l'accesso alle risorse in un Amazon VPC.
Nota: se il database o servizio non si trova in un Amazon VPC, salta questo passaggio.
Esempio del comando AWS CLI update-function-configuration:
$ aws lambda update-function-configuration --function-name your-lambda-function \ --vpc-config SubnetIds=subnet-076c28105d486f3bd,subnet-0af00c796ccdc725f,SecurityGroupIds=sg-0aed64f81acc4c037
Crea un endpoint Amazon VPC per Secrets Manager
Se l'Amazon VPC con il database o servizio e la funzione di rotazione Lambda non ha accesso a Internet, crea un endpoint Amazon VPC. Configura un endpoint di servizio privato in Amazon VPC per accedere a Secrets Manager e attivare la funzione di rotazione in un endpoint all'interno del VPC. Esegui il comando AWS CLI create-vpc-endpoint.
Nota: se il database o servizio non si trova in un Amazon VPC, salta questo passaggio.
$ aws ec2 create-vpc-endpoint --vpc-id vpc-0abb11f5a28a8abe7 --vpc-endpoint-type Interface \ --service-name com.amazonaws.your-region.secretsmanager --subnet-ids subnet-076c28105d486f3bd subnet-0af00c796ccdc725f \ --security-group-ids sg-0bacf4bbed67e4df5
Configurare la connettività di rete tra la funzione Lambda e il database o servizio
Assicurati che la funzione Lambda possa essere indirizzata al database o servizio tramite le porte di rete richieste. Le porte e i requisiti di routing variano in base al database o servizio e alla configurazione del VPC associata.
Nota: se il database o servizio non si trova in un Amazon VPC, salta questo passaggio.
Personalizza la funzione di rotazione in base al caso d'uso
Il modello di rotazione effettua automaticamente i passaggi createSecret e finishSecret. Devi invece modificare la funzione Lambda per effettuare i passaggi setSecret e testSecret per il caso d'uso e il database. Per ulteriori informazioni, consulta Quattro passaggi in una funzione di rotazione.
Attiva la rotazione per il segreto
Specifica il numero di giorni tra le rotazioni con i parametri --rotation-rules e AutomaticallyAfterDays.
aws secretsmanager rotate-secret --secret-id production/MyAwesomeAppSecret --rotation-lambda-arn arn:aws:lambda:region:123456789012:function:MySecretsManagerRotationFunction --rotation-rules AutomaticallyAfterDays=7
Per ulteriori informazioni, consulta Ruota i segreti di AWS Secrets Manager.
Informazioni correlate
Modelli di funzione di rotazione di AWS Secrets Manager
How to connect to AWS Secrets Manager service within a Virtual Private Cloud (Come collegarsi al servizio AWS Secrets Manager all'interno di un cloud privato virtuale)
- Argomenti
- Security, Identity, & Compliance
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 10 mesi fa
AWS UFFICIALEAggiornata 2 anni fa