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à.
Impostazione delle credenziali del database per RDS Proxy
Il proxy RDS in Amazon RDS viene utilizzato AWS Secrets Manager per archiviare e gestire le credenziali del database in modo sicuro. Anziché essere incorporate nell’applicazione, le credenziali vengono impostate associando un proxy a un segreto Secrets Manager contenente i dettagli di autenticazione necessari. È necessario creare un segreto Secrets Manager separato per ogni account utente del database a cui si connette il proxy sull’sul cluster di database Aurora.
In alternativa, puoi configurare RDS Proxy per utilizzare l'autenticazione end-to-end IAM, che elimina la necessità di archiviare le credenziali del database in Secrets Manager. RDS Proxy utilizza l'autenticazione IAM per entrambe client-to-proxy le connessioni. proxy-to-database Ciò fornisce una soluzione di autenticazione basata su IAM completamente integrata che non richiede la gestione di segreti o password. Per informazioni sull'aggiunta di un nuovo utente IAM DB, consulta. Creazione di un account database tramite l’autenticazione IAM
Creazione di segreti da utilizzare con Server proxy per RDS
Prima di creare un proxy, devi creare almeno un segreto in cui archiviare le credenziali del database.
Per creare un segreto
Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/
. -
Scegli Archivia un nuovo segreto.
-
Scegli Credenziali per database Amazon RDS.
-
Inserisci un nome utente e una password. Le credenziali inserite devono corrispondere a quelle di un utente esistente nel database RDS associato. Server proxy per RDS utilizza queste credenziali per autenticare e stabilire connessioni al database per conto delle applicazioni.
In caso di mancata corrispondenza, puoi aggiornare il segreto in modo che corrisponda alla password del database. Finché non aggiorni il segreto, i tentativi di connessione effettuati tramite il proxy utilizzando tale segreto avranno esito negativo, ma le connessioni che utilizzano altri segreti validi continueranno a funzionare.
Nota
Per RDS per SQL Server, Server proxy per RDS richiede un segreto con distinzione tra maiuscole e minuscole in Secrets Manager, indipendentemente dalle impostazioni di confronto delle istanze database. Se l’applicazione consente nomi utente con uso di maiuscole e minuscole diverse, come “Admin” e “admin”, è necessario creare segreti separati per ciascuno. Server proxy per RDS non supporta l’autenticazione senza distinzione tra maiuscole e minuscole tra client e proxy.
Per ulteriori informazioni sul confronto in SQL Server, consulta la documentazione di Microsoft SQL Server
. -
Per Database, seleziona il database Amazon RDS a cui accederà il segreto.
-
Inserisci le altre impostazioni per il segreto, quindi scegli Archivia. Per le istruzioni complete, consulta Creazione di un segreto AWS Secrets Manager nella Guida per l’utente di AWS Secrets Manager .
Quando crei un proxy tramite AWS CLI, 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 creare un segreto Secrets Manager da utilizzare con Server proxy per RDS, utilizza il comando create-secret:
aws secretsmanager create-secret \ --name "secret_name" \ --description "secret_description" \ --regionregion_name\ --secret-string '{"username":"db_user","password":"db_user_password"}' -
Puoi anche creare una chiave personalizzata per crittografare il segreto Secrets Manager. Il comando seguente crea una chiave di esempio.
aws kms create-key --description "test-key" --policy '{ "Id":"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 comandi seguenti creano segreti Secrets Manager per due utenti di database:
aws secretsmanager create-secret \ --namesecret_name_1--description "db admin user" \ --secret-string '{"username":"admin","password":"choose_your_own_password"}' aws secretsmanager create-secret \ --namesecret_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 \ --namesecret_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_idaws secretsmanager create-secret \ --namesecret_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 vedere i segreti di proprietà del tuo AWS account, usa il comando list-secrets:
aws secretsmanager list-secrets
Quando crei un proxy utilizzando la CLI, passi gli Amazon Resource Names (ARNs) di uno o più segreti al --auth parametro. L’esempio seguente mostra come preparare un report con solo il nome e l’ARN di ogni segreto di proprietà del tuo account AWS . Questo esempio utilizza il --output table parametro disponibile nella 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 confermare che il segreto contenga le credenziali corrette nel formato corretto, utilizzate il get-secret-valuecomando. Sostituisci con il nome breve o l’ARN del segreto.your_secret_name
aws secretsmanager get-secret-value --secret-idyour_secret_name
L’output contiene una riga con un valore con codifica JSON simile al seguente:
... "SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}", ...