Accès aux objets de base de données Amazon Redshift Serverless avec des autorisations de rôle de base de données - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d'informations, consultez le billet de blog.

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.

Accès aux objets de base de données Amazon Redshift Serverless avec des autorisations de rôle de base de données

Cette procédure montre comment accorder une autorisation d'interroger une table via un rôle de base de données Amazon Redshift. Le rôle est attribué au moyen d'une balise attachée à un utilisateur dans IAM et transmise à Amazon Redshift au moment où il se connecte. Il s'agit d'une explication par l'exemple des concepts décrits dans Définition des rôles de base de données à accorder aux utilisateurs fédérés dans Amazon Redshift sans serveur. L'avantage de ces étapes est que vous pouvez associer un utilisateur à un rôle de base de données sans avoir à lui définir des autorisations pour chaque objet de base de données. Il est ainsi plus simple de gérer le pouvoir de l'utilisateur d'interroger, modifier ou ajouter des données à des tables et d'effectuer d'autres actions.

La procédure suppose que vous avez déjà configuré une base de données Amazon Redshift sans serveur et que vous êtes en mesure d'accorder des autorisations dans la base de données. Cela suppose également que vous êtes autorisé à créer un utilisateur IAM dans la AWS console, à créer un rôle IAM et à attribuer des autorisations de politique.

  1. Créez un utilisateur IAM à l'aide de la console IAM. Vous vous en servirez par la suite pour vous connecter à la base de données.

  2. Créez un rôle de base de données Redshift à l'aide de l'éditeur de requête v2 ou d'un autre client SQL. Pour en savoir plus sur la création de rôles de base de données, consultez CREATE ROLE.

    CREATE ROLE urban_planning;

    Interrogez la vue système SVV_ROLES pour vérifier que votre rôle est créé. Elle renvoie également les rôles système.

    SELECT * from SVV_ROLES;
  3. Accordez au rôle de base de données que vous avez créé l'autorisation d'effectuer une sélection dans une table. (Par la suite, l'utilisateur IAM que vous avez créé se connectera et sélectionnera des enregistrements dans la table au moyen du rôle de base de données.) Le nom de rôle et le nom de table figurant dans l'exemple de code suivant sont des exemples. Ici, autorisation est donnée d'effectuer une sélection dans une table nommée cities.

    GRANT SELECT on TABLE cities to ROLE urban_planning;
  4. Utilisez la AWS Identity and Access Management console pour créer un rôle IAM. Ce rôle accorde l'autorisation d'utiliser l'éditeur de requête v2. Créez un nouveau rôle IAM puis, pour le type d'entité de confiance, choisissez Compte AWS . Choisissez ensuite Ce compte. Accordez au rôle les autorisations de politique suivantes :

    • AmazonRedshiftReadOnlyAccess

    • tag:GetResources

    • tag:GetTagKeys

    • Toutes les actions pour sqlworkbench, dont sqlworkbench:ListDatabases et sqlworkbench:UpdateConnection.

  5. Dans la console IAM, ajoutez une balise avec la Clé RedshiftDbRoles à l'utilisateur IAM que vous avez créé précédemment. La valeur de la balise doit correspondre au rôle de base de données que vous avez créé à la première étape. Dans l'exemple, il s'agit de urban_planning.

Une fois ces étapes terminées, attribuez le rôle IAM à l'utilisateur que vous avez créé dans la console IAM. Lorsque l'utilisateur se connecte à la base de données avec l'éditeur de requête v2, son nom de rôle de base de données qui figure dans la balise est transmis à Amazon Redshift et lui est associé. Ainsi, il peut interroger les tables appropriées au moyen du rôle de base de données. À titre d'exemple, l'utilisateur de cet exemple peut interroger la table cities via le rôle de base de données urban_planning.