Configuration des informations d'identification de base de données dans AWS Secrets Manager for RDS Proxy - Amazon Relational Database Service

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 dans AWS Secrets Manager for RDS Proxy

Pour chaque proxy que vous créez, vous utilisez d'abord le service Secrets Manager pour stocker des ensembles d'informations de nom d'utilisateur et de mot de passe. Vous créez un secret Secrets Manager distinct pour chaque compte utilisateur de base de données auquel le proxy se connecte sur le de données.

Dans la console Secrets Manager, vous créez ces secrets avec des valeurs pour les password champs username et. Cela permet au proxy de se connecter aux utilisateurs de base de données correspondants sur un RDS que vous associez au proxy. Pour ce faire, vous pouvez utiliser le paramètre Informations d'identification pour une autre base de données, Informations d'identification pour une RDS base de données ou Autre type de secret. Renseignez les valeurs appropriées pour les champs Nom d'utilisateur et Mot de passe, ainsi que les valeurs pour tous les autres champs obligatoires. Le proxy ignore d'autres champs tels que Hôte et Port s'ils sont présents dans le secret. Ces détails sont automatiquement fournis par le proxy.

Vous pouvez également choisir Autre type de secrets. Dans ce cas, vous créez le secret avec des clés nommées username et password.

Pour vous connecter via le proxy en tant qu'utilisateur de base de données spécifique, assurez-vous que le mot de passe associé à un secret correspond au mot de passe de base de données de cet utilisateur. En cas d'incompatibilité, vous pouvez mettre à jour le secret associé dans Secrets Manager. Dans ce cas, vous pouvez toujours vous connecter à d'autres comptes où les informations d'identification secrètes et les mots de passe de base de données correspondent.

Note

RDSPour le SQL serveur, le RDS proxy a besoin d'un secret dans Secrets Manager qui distingue les majuscules et minuscules du code de l'application, quels que soient les paramètres de classement de l'instance de base de données. Par exemple, si votre application peut utiliser les deux noms d'utilisateur « Admin » ou « admin », configurez le proxy avec des secrets pour « Admin » et « admin ». RDSLe proxy ne tient pas compte de la distinction majuscules/majuscules entre le nom d'utilisateur et le proxy dans le processus d'authentification entre le client et le proxy.

Pour plus d'informations sur le classement dans SQL Server, consultez la documentation Microsoft SQL Server.

Lorsque vous créez un proxy via le AWS CLI ou RDSAPI, 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 obtenir des instructions sur la création de secrets dans Secrets Manager, reportez-vous à la page Création d'un secret dans la documentation Secrets Manager. Utilisez l'une des techniques suivantes :

  • Utilisez Secrets Manager dans la console.

  • CLIPour créer un secret du Gestionnaire de Secrets Manager à utiliser avec le RDS proxy, utilisez une commande telle que la suivante.

    aws secretsmanager create-secret --name "secret_name" --description "secret_description" --region region_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é.

    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":"*" } ] }'

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 \ --name secret_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 \ --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

Pour voir les secrets détenus par votre AWS compte, utilisez une commande telle que la suivante.

aws secretsmanager list-secrets

Lorsque vous créez un proxy à l'aide duCLI, vous transmettez les Amazon Resource Names (ARNs) d'un ou de plusieurs secrets au --auth paramètre. L'exemple Linux suivant montre comment préparer un rapport avec uniquement le nom et le nom ARN de chaque secret détenu par votre AWS compte. Cet exemple utilise le paramètre --output table disponible dans 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 vous avez stocké les informations d'identification appropriées et au bon format dans un secret, utilisez une commande semblable à la suivante. Remplacez le nom abrégé ou le nom ARN du secret paryour_secret_name.

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

La sortie doit inclure une ligne affichant une valeur JSON codée comme suit.

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