Configurazione delle credenziali del database in AWS Secrets Manager Proxy RDS - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle credenziali del database in AWS Secrets Manager Proxy RDS

Per ogni proxy creato, utilizza innanzitutto il servizio Secrets Manager per memorizzare set di credenziali composti da nome utente e password. Si crea un segreto Secrets Manager separato per ogni account utente del database a cui il proxy si connette sul cluster Aurora dell'istanza DB.

Nella console Secrets Manager, crei questi segreti con valori per i password campi username e. In questo modo il proxy può connettersi agli utenti del database corrispondenti su un RDS cluster Aurora DB di DB associato al proxy. A tale scopo, è possibile utilizzare l'impostazione Credenziali per altro database, Credenziali per RDS database o Altro tipo di segreti. Inserisci i valori appropriati per i campi Nome utente e Password e i valori per tutti gli altri campi obbligatori. Il proxy ignora altri campi, ad esempio Host e Port (Porta) se sono presenti nel segreto. Tali dettagli sono forniti automaticamente dal proxy.

Puoi anche scegliere Other type of secrets (Altro tipo di segreti). In questo caso, crei il segreto con le chiavi denominate username e password.

Per connetterti tramite il proxy come utente specifico del database, assicurati che la password associata a un segreto corrisponda alla password del database di quell'utente. In caso di mancata corrispondenza, è possibile aggiornare il segreto associato in Secrets Manager. In questo caso, è comunque possibile connettersi ad altri account in cui le credenziali segrete e le password del database corrispondono.

Quando crei un proxy tramite AWS CLI o RDSAPI, specifichi gli Amazon Resource Names (ARNs) dei segreti corrispondenti. per tutti gli account utente del database a cui il proxy può accedere. In AWS Management Console, scegli i segreti in base ai loro nomi descrittivi.

Per istruzioni sulla creazione di segreti in Secrets Manager, consulta la pagina Creazione di un segreto nella documentazione di Secrets Manager. Puoi utilizzare una delle seguenti tecniche:

  • Utilizza Secrets Manager nella console.

  • Per utilizzare CLI per creare un segreto di Secrets Manager da utilizzare con RDS Proxy, utilizzare un comando come il seguente.

    aws secretsmanager create-secret --name "secret_name" --description "secret_description" --region region_name --secret-string '{"username":"db_user","password":"db_user_password"}'
  • Puoi anche creare una chiave personalizzata per cifrare il tuo segreto di Secrets Manager. Il comando seguente crea una chiave di esempio.

    PREFIX=my_identifier aws kms create-key --description "$PREFIX-test-key" --policy '{ "Id":"$PREFIX-kms-policy", "Version":"2012-10-17", "Statement": [ { "Sid":"Enable IAM User Permissions", "Effect":"Allow", "Principal":{"AWS":"arn:aws:iam::account_id:root"}, "Action":"kms:*","Resource":"*" }, { "Sid":"Allow access for Key Administrators", "Effect":"Allow", "Principal": { "AWS": ["$USER_ARN","arn:aws:iam:account_id::role/Admin"] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource":"*" }, { "Sid":"Allow use of the key", "Effect":"Allow", "Principal":{"AWS":"$ROLE_ARN"}, "Action":["kms:Decrypt","kms:DescribeKey"], "Resource":"*" } ] }'

Ad esempio, i seguenti comandi creano segreti di Secrets Manager per due utenti del database:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}'

Per creare questi segreti crittografati con la tua AWS KMS chiave personalizzata, usa i seguenti comandi:

aws secretsmanager create-secret \ --name secret_name_1 --description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id aws secretsmanager create-secret \ --name secret_name_2 --description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password"}' --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

Per visualizzare i segreti di proprietà del tuo AWS account, usa un comando come il seguente.

aws secretsmanager list-secrets

Quando crei un proxy utilizzandoCLI, passi gli Amazon Resource Names (ARNs) di uno o più segreti al --auth parametro. Il seguente esempio Linux mostra come preparare un report con solo il nome e ogni segreto ARN di proprietà del tuo AWS account. In questo esempio viene utilizzato il parametro --output table disponibile in AWS CLI versione 2. Se stai usando la AWS CLI versione 1, usa --output text invece.

aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table

Per verificare di aver memorizzato le credenziali corrette e nel formato corretto in un segreto, utilizza un comando come il seguente. Sostituisci il nome breve o ARN il segreto con. your_secret_name

aws secretsmanager get-secret-value --secret-id your_secret_name

L'output dovrebbe includere una riga che mostri un valore JSON con codifica come il seguente.

"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",