View a markdown version of this page

Autorisations d'accès à d'autres AWS Ressources - Amazon Redshift

Amazon Redshift ne prendra plus en charge l'utilisation des UDF Python après le 30 juin 2026. Nous allons commencer à l'appliquer par étapes. Pour plus d'informations sur les options de fin de vie et de migration de Python, consultez le billet de blog publié le 30 juin 2025.

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.

Autorisations d'accès à d'autres AWS Ressources

Pour déplacer des données entre votre cluster et une autre AWS ressource, telle qu'Amazon S3, Amazon DynamoDB, Amazon EMR ou Amazon EC2, votre cluster doit être autorisé à accéder à la ressource et à effectuer les actions nécessaires. Par exemple, pour charger des données depuis Amazon S3, la commande COPY doit disposer de l’accès LIST au compartiment et de l’accès GET pour les objets du compartiment. Pour plus d’informations sur les autorisations minimales, consultez Autorisations IAM pour les commandes COPY, UNLOAD et CREATE LIBRARY.

Pour obtenir l'autorisation d'accéder à la ressource, votre cluster doit être authentifié à l'aide de la méthode d'authentification suivante :

  • Role-based contrôle d'accès— Pour le contrôle d'accès basé sur les rôles, vous spécifiez un rôle Gestion des identités et des accès AWS (IAM) que votre cluster utilise pour l'authentification et l'autorisation. Pour protéger vos AWS informations d'identification et vos données sensibles, nous vous recommandons vivement d'utiliser l'authentification basée sur les rôles.

Role-based contrôle d'accès

Avec un contrôle d’accès basé sur les rôles, votre cluster assume temporairement un rôle IAM en votre nom. Puis, selon les autorisations accordées au rôle, votre cluster peut accéder aux ressources AWS requises.

La création d’un rôle IAM est similaire à l’octroi d’autorisations à un utilisateur, car il s’agit d’une identité AWS avec des politiques d’autorisation qui déterminent ce que l’identité peut et ne peut pas faire dans AWS. En revanche, plutôt que d’être associé de manière unique à un utilisateur, un rôle peut être assumé par toute entité le nécessitant. En outre, aucune information d’identification (mot de passe ou clés d’accès) n’est associée à celui-ci. Au lieu de cela, si un rôle est associé à un cluster, les clés d’accès sont créées de manière dynamique et fournies au cluster.

Nous vous recommandons d'utiliser le contrôle d'accès basé sur les rôles, car il permet un contrôle plus sûr et plus précis de l'accès aux AWS ressources et aux données utilisateur sensibles, en plus de protéger vos informations d'identification. AWS

Role-based l'authentification offre les avantages suivants :

  • Vous pouvez utiliser les outils IAM AWS standard pour définir un rôle IAM et l'associer à plusieurs clusters. Lorsque vous modifiez la stratégie d’accès d’un rôle, les modifications sont automatiquement appliquées à tous les clusters qui utilisent ce rôle.

  • Vous pouvez définir des politiques IAM détaillées qui accordent des autorisations à des clusters et à des utilisateurs de base de données spécifiques pour accéder à des AWS ressources et à des actions spécifiques.

  • Votre cluster obtient les informations d’identification de séance temporaires au moment de l’exécution et les actualise en fonction des besoins jusqu’à la fin de l’opération.

  • Votre ID de clé d’accès et ID de clé d’accès secrète ne sont pas stockés ou transmis dans votre code SQL.

Pour utiliser le contrôle d’accès basé sur les rôles, vous devez d’abord créer un rôle IAM à l’aide du type de rôle de service Amazon Redshift, puis attacher le rôle à votre cluster. Le rôle doit avoir, au minimum, les autorisations répertoriées dans Autorisations IAM pour les commandes COPY, UNLOAD et CREATE LIBRARY. Pour savoir comment créer un rôle IAM et l'associer à votre cluster, consultez la section Autoriser Amazon Redshift à accéder à AWS d'autres services en votre nom dans le guide de gestion Amazon Redshift.

Vous pouvez ajouter un rôle à un cluster ou afficher les rôles associés à un cluster à l’aide de la console de gestion, de la CLI ou de l’API Amazon Redshift. Pour plus d’informations, consultez Associer un rôle IAM à un cluster dans le Guide de gestion Amazon Redshift.

Lorsque vous créez un rôle IAM, IAM renvoie un Amazon Resource Name (ARN) pour le rôle. Pour spécifier un rôle IAM, indiquez l'ARN de rôle avec le paramètre Utilisation du paramètre IAM_ROLE.

Par exemple, supposons que le rôle suivant est attaché au cluster.

"IamRoleArn": "arn:aws:iam::0123456789012:role/MyRedshiftRole"

L’exemple suivant de commande COPY utilise le paramètre IAM_ROLE avec l’ARN dans l’exemple précédent pour l’authentification et l’accès à Amazon S3.

copy customer from 's3://amzn-s3-demo-bucket/mydata' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

En outre, un super-utilisateur peut accorder le privilège ASSUMEROLE à des utilisateurs et groupes de base de données afin de fournir l’accès à un rôle pour les opérations COPY. Pour plus d’informations, consultez GRANT.

informations d’identification de sécurité temporaires

Lorsque vous utilisez le contrôle d'accès basé sur les rôles, Amazon Redshift utilise automatiquement des informations d'identification de sécurité temporaires en votre nom. Les informations d’identification de sécurité temporaires offrent une sécurité améliorée parce qu’elles sont de courte durée et ne peuvent pas être réutilisées après leur expiration.

Lorsque vous autorisez l'utilisation d'un rôle IAM, votre cluster assume temporairement le rôle et obtient des informations d'identification de session temporaires au moment de l'exécution. Votre cluster actualise ces informations d'identification selon les besoins jusqu'à la fin de l'opération. Vous n'avez donc pas besoin de les fournir ou de les gérer vous-même. Pour plus d’informations, consultez Role-based contrôle d'accès.

Autorisations IAM pour les commandes COPY, UNLOAD et CREATE LIBRARY

Le rôle IAM référencé par le paramètre IAM_ROLE doit disposer au minimum des autorisations suivantes :

  • Pour exécuter la commande COPY depuis Amazon S3, l’autorisation d’exécuter LIST sur le compartiment Amazon S3 et d’exécuter GET sur les objets Amazon S3 en cours de chargement, ainsi que le fichier manifeste, le cas échéant.

  • Pour COPIER depuis Amazon S3, Amazon EMR et des hôtes distants (SSH) contenant des JSON-formatted données, autorisation de LISTER et de GET le fichier JSONPaths sur Amazon S3, le cas échéant.

  • Pour exécuter la commande COPY depuis DynamoDB, l’autorisation d’exécuter SCAN et DESCRIBE sur la table DynamoDB qui est en cours de chargement.

  • Pour exécuter la commande COPY depuis un cluster Amazon EMR, l’autorisation pour l’action ListInstances sur le cluster Amazon EMR.

  • Pour exécuter la commande UNLOAD sur Amazon S3, les autorisations d’exécuter GET, LIST et PUT pour le compartiment Amazon S3 vers lequel les fichiers de données sont en cours de déchargement.

  • Pour exécuter la commande CREATE LIBRARY depuis Amazon S3, l’autorisation d’exécuter LIST sur le compartiment Amazon S3 et d’exécuter GET sur les objets Amazon S3 qui sont importés

Note

Si vous recevez le message d’erreur S3ServiceException: Access Denied, lorsque vous exécutez une commande COPY, UNLOAD ou CREATE LIBRARY, votre cluster ne dispose pas des autorisations d’accès appropriées pour Amazon S3.

Vous pouvez gérer les autorisations IAM en attachant une politique IAM à un rôle IAM attaché à votre cluster, à votre utilisateur ou au groupe auquel appartient votre utilisateur. Par exemple, la politique gérée par AmazonS3ReadOnlyAccess accorde les autorisations LIST et GET aux ressources Amazon S3. Pour plus d’informations sur les politiques IAM, consultez Gestion des politiques IAM dans le Guide de l’utilisateur IAM.