Comprendre le rôle rds_superuser - Amazon Aurora

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.

Comprendre le rôle rds_superuser

Dans PostgreSQL, un rôle peut définir un utilisateur, un groupe ou un ensemble d'autorisations spécifiques accordées à un groupe ou à un utilisateur pour différents objets de la base de données. Les SQL commandes Postgre destinées à CREATE USER et CREATE GROUP ont été remplacées par des commandes plus générales, CREATE ROLE avec des propriétés spécifiques pour distinguer les utilisateurs de la base de données. Un utilisateur de base de données peut être considéré comme un rôle doté du LOGIN privilège.

Note

Les commandes CREATE USER et CREATE GROUP peuvent toujours être utilisées. Pour plus d'informations, consultez la section Rôles de base de données dans la SQL documentation Postgre.

L'postgresutilisateur est l'utilisateur de base de données le plus privilégié de votre instance de base de SQL données Aurora Postgre RDS . Il présente les caractéristiques définies par l'instruction CREATE ROLE suivante.

CREATE ROLE postgres WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION VALID UNTIL 'infinity'

Les propriétésNOSUPERUSER, NOREPLICATIONINHERIT, et VALID UNTIL 'infinity' sont les options par défaut pour CREATEROLE, sauf indication contraire.

Par défaut, postgres fait en sorte que des privilèges soient octroyés au rôle rds_superuser ainsi que des autorisations permettant de créer des rôles et des bases de données. Le rôle rds_superuser permet à l'utilisateur postgres d'effectuer les opérations suivantes :

  • Ajoutez des extensions pouvant être utilisées avec Aurora Postgre SQL. Pour de plus amples informations, veuillez consulter Utilisation d'extensions avec encapsuleurs de données externes.

  • Créer des rôles pour les utilisateurs et leur accorder des privilèges. Pour plus d'informations, consultez CREATEROLEet consultez GRANTla SQL documentation Postgre.

  • Créer des bases de données. Pour plus d'informations, consultez CREATEDATABASEla SQL documentation Postgre.

  • Accorder des privilèges rds_superuser aux rôles utilisateur qui ne disposent pas de ces privilèges, et révoquer les privilèges si nécessaire. Nous vous recommandons d'accorder ce rôle uniquement aux utilisateurs effectuant des tâches de super-utilisateur. En d'autres termes, vous pouvez attribuer ce rôle aux administrateurs de base de données (DBAs) ou aux administrateurs système.

  • Accorder (et révoquer) le rôle rds_replication aux utilisateurs de base de données qui ne possèdent pas le rôle rds_superuser.

  • Accorder (et révoquer) le rôle rds_password aux utilisateurs de base de données qui ne possèdent pas le rôle rds_superuser.

  • Obtenir des informations d'état sur toutes les connexions à la base de données en utilisant la vue pg_stat_activity. En cas de besoin, rds_superuser peut arrêter toutes les connexions à l'aide de pg_terminate_backend ou pg_cancel_backend.

Dans la CREATE ROLE postgres... déclaration, vous pouvez voir que le rôle postgres utilisateur interdit spécifiquement les autorisations Postgre SQLsuperuser. Aurora Postgre SQL RDS est un service géré. Vous ne pouvez donc pas accéder au système d'exploitation hôte et vous ne pouvez pas vous connecter à l'aide du compte SQL superuser Postgre. La plupart des tâches nécessitant un superuser accès sur un Postgre autonome SQL sont gérées automatiquement par Amazon .

Pour plus d'informations sur l'octroi de privilèges, consultez GRANTla SQL documentation Postgre.

Le rds_superuser rôle est l'un des nombreux rôles prédéfinis d'un cluster de SQL base de données Aurora Postgre.

Note

Dans Postgre SQL 13 et les versions antérieures, les rôles prédéfinis sont appelés rôles par défaut.

Dans la liste suivante, vous trouverez certains des autres rôles prédéfinis créés automatiquement pour un nouveau cluster de SQL base de données Aurora Postgre. Les rôles prédéfinis et leurs privilèges ne peuvent pas être modifiés. Vous ne pouvez pas supprimer, renommer ou modifier les privilèges de ces rôles prédéfinis. Toute tentative de ce type génère une erreur.

  • rds_password : rôle pouvant modifier les mots de passe et configurer des contraintes de mot de passe pour les utilisateurs de base de données. Ce rds_superuser rôle est attribué par défaut au rôle et peut être accordé aux utilisateurs de la base de données. Pour de plus amples informations, veuillez consulter Contrôle de l'accès des utilisateurs à la base de données Postgre SQL.

    • RDSPour les SQL versions de Postgre antérieures à 14, le rds_password rôle peut modifier les mots de passe et configurer des contraintes de mot de passe pour les utilisateurs de la base de données et les utilisateurs ayant un rds_superuser rôle. À partir RDS de Postgre 14 et SQL versions ultérieures, le rds_password rôle peut modifier les mots de passe et configurer des contraintes de mot de passe uniquement pour les utilisateurs de la base de données. Seuls les utilisateurs ayant rds_superuser un rôle peuvent effectuer ces actions sur d'autres utilisateurs ayant rds_superuser un rôle.

  • rdsadmin — Rôle créé pour gérer de nombreuses tâches de gestion que l'administrateur doté de superuser privilèges exécuterait sur une base de données Postgre autonome. SQL Ce rôle est utilisé en interne par pour de nombreuses tâches de gestion.

Pour voir tous les rôles prédéfinis, vous pouvez vous connecter à l'instance principale de votre cluster de SQL base de données Aurora Postgre ou à et utiliser la psql \du métacomande. La sortie ressemble à ce qui suit :

List of roles Role name | Attributes | Member of --------------+-----------------------------------+------------------------------------ postgres | Create role, Create DB +| {rds_superuser} | Password valid until infinity | rds_superuser | Cannot login | {pg_monitor,pg_signal_backend, | +| rds_replication,rds_password} ...

Dans la sortie, vous pouvez voir que rds_superuser n'est pas un rôle utilisateur de base de données (il ne peut pas se connecter), mais qu'il dispose des privilèges de nombreux autres rôles. Vous pouvez également voir que l'utilisateur de base de données postgres est membre du rôle rds_superuser. Comme indiqué précédemment, postgres il s'agit de la valeur par défaut sur la page Créer une base de données de la RDS console Amazon. Si vous avez choisi un autre nom, ce nom apparaît dans la liste des rôles.

Note

Les SQL versions 15.2 et 14.7 d'Aurora Postgre ont introduit un comportement restrictif du rôle. rds_superuser Un SQL utilisateur Aurora Postgre doit disposer du CONNECT privilège sur la base de données correspondante pour se connecter même si le rds_superuser rôle lui est attribué. Avant les SQL versions 14.7 et 15.2 d'Aurora Postgre, un utilisateur pouvait se connecter à n'importe quelle base de données et à n'importe quelle table système s'il avait obtenu le rôle. rds_superuser Ce comportement restrictif est conforme à AWS et les engagements d'Amazon Aurora en faveur de l'amélioration continue de la sécurité.

Mettez à jour la logique correspondante dans vos applications si l'amélioration ci-dessus a un impact.