Autoriser Amazon Redshift à accéder aux services AWS en votre nom - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Autoriser Amazon Redshift à accéder aux services AWS en votre nom

Certaines fonctionnalités d'Amazon Redshift nécessitent qu'Amazon Redshift accède à d'autres services AWS en votre nom. Par exemple, les commandes COPY et UNLOAD peuvent charger ou décharger les données de votre cluster Amazon Redshift à l'aide d'un compartiment Amazon S3. La commande CREATE EXTERNAL FUNCTION peut appeler une fonction Lambda AWS à l'aide d'une fonction Lambda définie par l'utilisateur (UDF) scalaire. Amazon Redshift Spectrum peut utiliser un catalogue de données dans Amazon Athena ou AWS Glue. Pour que vos clusters Amazon Redshift agissent en votre nom, vous fournissez les informations d'identification de sécurité à vos clusters. La méthode recommandée pour fournir des informations d’identification de sécurité consiste à spécifier un rôle AWS Identity and Access Management (IAM). Pour COPY et UNLOAD, vous pouvez fournir des informations d'identification temporaires.

Les utilisateurs ont besoin d’un accès programmatique s’ils souhaitent interagir avec AWS en dehors de la AWS Management Console. La manière d’octroyer un accès par programmation dépend du type d’utilisateur qui accède à AWS.

Pour accorder aux utilisateurs un accès programmatique, choisissez l’une des options suivantes.

Quel utilisateur a besoin d’un accès programmatique ? Pour Par

Identité de la main-d’œuvre

(Utilisateurs gérés dans IAM Identity Center)

Utilisez des informations d’identification temporaires pour signer des demandes par programmation destinées à la AWS CLI, aux AWS SDK ou aux API AWS.

Suivez les instructions de l’interface que vous souhaitez utiliser.

IAM Utilisez des informations d’identification temporaires pour signer des demandes par programmation destinées à la AWS CLI, aux AWS SDK ou aux API AWS. Suivez les instructions de la section Utilisation d’informations d’identification temporaires avec des ressources AWS dans le Guide de l’utilisateur IAM.
IAM

(Non recommandé)

Utilisez des informations d’identification à long terme pour signer des demandes par programmation destinées à la AWS CLI, aux AWS SDK ou aux API AWS.

Suivez les instructions de l’interface que vous souhaitez utiliser.

La section suivante décrit la création d'un rôle IAM disposant des autorisations appropriées pour accéder aux autres services AWS. Vous devez également associer le rôle à votre cluster et spécifier l'Amazon Resource Name (ARN) du rôle lorsque vous exécutez la commande Amazon Redshift. Pour plus d'informations, consultez Autorisation des opérations COPY, UNLOAD, CREATE EXTERNAL FUNCTION et CREATE EXTERNAL SCHEMA à l'aide des rôles IAM.

De plus, un super-utilisateur peut accorder le privilège ASSUMEROLE à des utilisateurs et des groupes spécifiques pour fournir l'accès à un rôle pour les opérations COPY et UNLOAD. Pour plus d'informations, consultez la rubrique GRANT dans le Guide du développeur de la base de données Amazon Redshift.

Création d'un rôle IAM pour autoriser votre cluster Amazon Redshift à accéder aux services AWS

Création d’un rôle IAM avec des autorisations

Pour créer un rôle IAM afin d’autoriser votre cluster Amazon Redshift à communiquer avec d’autres services AWS en votre nom, procédez comme suit. Les valeurs utilisées dans cette section sont des exemples. Vous pouvez choisir des valeurs en fonction de vos besoins.

Pour créer un rôle IAM afin d’autoriser Amazon Redshift à accéder aux services AWS
  1. Ouvrez la console IAM.

  2. Dans le panneau de navigation, choisissez Rôles.

  3. Sélectionnez Create role (Créer un rôle).

  4. Choisissez Service AWS, puis Redshift.

  5. Sous Sélectionner votre cas d’utilisation, choisissez Redshift - Personnalisable, puis Suivant : Autorisations. La page Attacher une politique d’autorisations s’affiche.

  6. Pour accéder à Amazon S3 à l'aide de COPY, par exemple, vous pouvez utiliser AmazonS3ReadOnlyAccess et l'ajouter. Pour accéder à Amazon S3 à l'aide de COPY ou UNLOAD, nous vous suggérons de créer des politiques gérées qui restreignent l'accès au compartiment souhaité et utilisent les préfixes appropriés en conséquence. Pour les opérations de lecture et d'écriture, nous vous recommandons d'appliquer les moindres privilèges, ainsi que de restreindre uniquement les compartiments Amazon S3 et les préfixes de clé requis par Amazon Redshift.

    Pour accéder à l'appel des fonctions Lambda pour la commande CREATE EXTERNAL FUNCTION, ajoutez AWSLambdaRole.

    Pour Redshift Spectrum, en plus de l'accès à Amazon S3, ajoutez AWSGlueConsoleFullAccess ou AmazonAthenaFullAccess.

    Choisissez Suivant : Balises.

  7. La page Ajouter des balises s’affiche. Si vous le souhaitez, vous pouvez ajouter des balises. Choisissez Suivant : Vérification.

  8. Pour Nom du rôle, indiquez le nom de votre rôle, par exemple RedshiftCopyUnload. Sélectionnez Create role (Créer un rôle).

  9. Le nouveau rôle est disponible pour tous les utilisateurs des clusters qui utilisent ce rôle. Pour limiter l’accès à des utilisateurs spécifiques uniquement sur certains clusters, ou sur des clusters dans des régions spécifiques, modifiez la relation d’approbation de ce rôle. Pour plus d'informations, consultez Restriction de l'accès aux rôles IAM.

  10. Associez le rôle à votre cluster. Vous pouvez associer un rôle IAM à un cluster lors de la création du cluster, ou vous pouvez ajouter le rôle à un cluster existant. Pour plus d'informations, consultez Association des rôles IAM aux clusters.

    Note

    Pour restreindre l'accès à des données spécifiques, utilisez un rôle IAM qui accorde les moindres privilèges requis.