Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration des informations d'identification de base de données AWS Secrets Manager pour le proxy RDS
Le proxy RDS dans Amazon RDS est utilisé AWS Secrets Manager pour stocker et gérer les informations d'identification de base de données en toute sécurité. Au lieu d'intégrer des informations d'identification dans votre application, vous associez un proxy à un secret Secrets Manager contenant les informations d'authentification nécessaires. Vous créez un secret Secrets Manager distinct pour chaque compte utilisateur de base de données auquel le proxy se connecte sur le cluster de base de données Aurora de l'instance de base de données .
Création de secrets à utiliser avec RDS Proxy
Avant de créer un proxy, vous devez d'abord créer au moins un secret qui stocke les informations d'identification de votre base de données.
Pour créer un secret
Ouvrez la console Secrets Manager à l'adresse https://console.aws.amazon.com/secretsmanager/
. -
Choisissez Store a new secret (Stocker un nouveau secret).
-
Choisissez Credentials for Amazon RDS database.
-
Entrez un nom d'utilisateur et un mot de passe. Les informations d'identification que vous entrez doivent correspondre aux informations d'identification d'un utilisateur de base de données existant dans la base de données RDS associée. Le proxy RDS utilise ces informations d'identification pour authentifier et établir des connexions à la base de données pour le compte des applications.
En cas de non-concordance, vous pouvez mettre à jour le secret pour qu'il corresponde au mot de passe de la base de données. Tant que vous ne mettez pas à jour le secret, les tentatives de connexion via le proxy utilisant ce secret échouent, mais les connexions utilisant d'autres secrets valides fonctionnent toujours.
Note
Pour RDS for SQL Server, RDS Proxy nécessite un secret distinguant majuscules et minuscules dans Secrets Manager, quels que soient les paramètres de classement des instances de base de données. Si votre application autorise des noms d'utilisateur avec des majuscules différentes, tels que « Admin » et « admin », vous devez créer des secrets distincts pour chacun d'eux. RDS Proxy ne prend pas en charge l'authentification du nom d'utilisateur sans distinction majuscules/majuscules entre le client et le proxy.
Pour plus d'informations sur le classement SQL Server, consultez la documentation Microsoft SQL Server
. -
Pour Base de données, sélectionnez la base de données Amazon RDS à laquelle le secret doit accéder.
-
Renseignez les autres paramètres pour le secret, puis choisissez Store. Pour obtenir des instructions complètes, reportez-vous à la section Création d'un AWS Secrets Manager secret dans le guide de AWS Secrets Manager l'utilisateur.
Lorsque vous créez un proxy via le AWS CLI, vous spécifiez les Amazon Resource Names (ARNs) des secrets correspondants. Vous le faites pour tous les comptes utilisateur de base de données auxquels le proxy peut accéder. Dans le AWS Management Console, vous choisissez les secrets par leurs noms descriptifs.
-
Pour créer un secret Secrets Manager à utiliser avec le proxy RDS, utilisez la commande create-secret :
aws secretsmanager create-secret \ --name "
secret_name
" \ --description "secret_description
" \ --regionregion_name
\ --secret-string '{"username":"db_user","password":"db_user_password"}' -
Vous pouvez également créer une clé personnalisée pour chiffrer le secret de votre Secrets Manager. La commande suivante crée un exemple de clé.
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":"*" } ] }'
Par exemple, les commandes suivantes créent des secrets Secrets Manager pour deux utilisateurs de base de données :
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 \ --namesecret_name_2
--description "application user" \ --secret-string '{"username":"app-user","password":"choose_your_own_password
"}'
Pour créer ces secrets chiffrés avec votre AWS KMS clé personnalisée, utilisez les commandes suivantes :
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 \ --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
Pour voir les secrets détenus par votre AWS compte, utilisez la commande list-secrets :
aws secretsmanager list-secrets
Lorsque vous créez un proxy à l'aide de la CLI, vous transmettez les Amazon Resource Names (ARNs) d'un ou de plusieurs secrets au --auth
paramètre. L'exemple suivant montre comment préparer un rapport avec uniquement le nom et l'ARN de chaque secret détenu par votre AWS compte. Cet exemple utilise le --output table
paramètre disponible dans la AWS CLI version 2. Si vous utilisez AWS CLI la version 1, utilisez --output
text
plutôt.
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
Pour vérifier que le secret contient les informations d'identification correctes au format approprié, utilisez la get-secret-valuecommande. Remplacez
par le nom abrégé ou l'ARN du secret.your_secret_name
aws secretsmanager get-secret-value --secret-id
your_secret_name
La sortie contient une ligne avec une valeur codée en JSON similaire à la suivante :
... "SecretString": "{\"username\":\"
your_username
\",\"password\":\"your_password
\"}", ...