Étape 1. Créer un rôle IAM pour Amazon Redshift
Votre cluster doit être autorisé à accéder à votre catalogue de données externe dans AWS Glue ou Amazon Athena, ainsi qu'à vos fichiers de données dans Amazon S3. Pour fournir cette autorisation, vous référencez un rôle AWS Identity and Access Management (IAM) qui est attaché à votre cluster. Pour plus d'informations sur l'utilisation des rôles avec Amazon Redshift, consultez la rubrique Autoriser les opérations de COPY et UNLOAD à l'aide des rôles IAM.
Note
Dans certains cas, vous pouvez migrer votre catalogue de données Athena vers un catalogue de données AWS Glue. Vous pouvez le faire si votre cluster se trouve dans une région AWS où AWS Glue est pris en charge et si vous avez des tables externes Redshift Spectrum dans le catalogue de données Athena. Pour utiliser le catalogue de données AWS Glue avec Redshift Spectrum, vous devrez peut-être modifier vos politiques IAM. Pour plus d'informations, veuillez consulter la rubrique Mise à niveau vers le catalogue de données AWS Glue dans le Guide de l'utilisateur Athena.
Lorsque vous créez un rôle pour Amazon Redshift, choisissez une des approches suivantes :
Si vous utilisez Redshift Spectrum avec un catalogue de données Athena ou un catalogue de données AWS Glue, suivez les étapes décrites dans Pour créer un rôle IAM pour Amazon Redshift.
Si vous utilisez Redshift Spectrum avec un AWS Glue Data Catalog qui est activé pour AWS Lake Formation, suivez les étapes décrites dans ces procédures :
Pour créer un rôle IAM pour Amazon Redshift
-
Ouvrez la console IAM
. -
Dans le panneau de navigation, choisissez Roles (Rôles).
-
Sélectionnez Create role (Créer un rôle).
-
Choisissez Service AWS comme entité de confiance, puis choisissez Redshift comme cas d'utilisation.
-
Sous Use case for other Services AWS (Cas d'utilisation pour autres ), choisissez Redshift - Customizable (Redshift – Personnalisable), puis Next (Suivant).
-
La page Add permissions policy (Ajouter une politique d'autorisations) s'affiche. Choisissez
AmazonS3ReadOnlyAccess
etAWSGlueConsoleFullAccess
si vous utilisez le catalogue de données AWS Glue. Ou choisissezAmazonAthenaFullAccess
si vous utilisez le catalogue de données Athena. Choisissez Next (Suivant).Note
La politique
AmazonS3ReadOnlyAccess
accorde à votre cluster un accès en lecture seule à tous les compartiments Amazon S3. Pour accorder l'accès uniquement au compartiment de données d'exemple AWS, créez une nouvelle politique, à laquelle vous ajouterez les autorisations qui suivent.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::redshift-downloads/*" } ] }
-
Pour Nom du rôle, indiquez le nom de votre rôle, par exemple
myspectrum_role
. -
Passez en revue les informations, puis choisissez Créer un rôle.
-
Dans le panneau de navigation, choisissez Roles (Rôles). Choisissez le nom de votre nouveau rôle pour afficher le récapitulatif, puis copiez l'ARN de rôle dans le presse-papiers. Il s'agit de l'ARN (Amazon Resource Name) du rôle que vous venez de créer. Vous utilisez cette valeur lorsque vous créez des tables externes pour référencer vos fichiers de données sur Amazon S3.
Pour créer un rôle IAM pour Amazon Redshift à l'aide d'un AWS Glue Data Catalog activé pour AWS Lake Formation
-
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation, choisissez Policies (Politiques).
Si vous sélectionnez Politiques pour la première fois, la page Bienvenue dans les politiques gérées s'affiche. Sélectionnez Get started (Mise en route).
-
Sélectionnez Créer une politique.
-
Choisissez de créer la politique dans l'onglet JSON.
-
Collez le document de politique JSON suivant, qui accorde l'accès au catalogue de données mais refuse les autorisations d'administrateur pour Lake Formation.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftPolicyForLF", "Effect": "Allow", "Action": [ "glue:*", "lakeformation:GetDataAccess" ], "Resource": "*" } ] }
-
Lorsque vous avez terminé, choisissez Review (Vérifier) pour vérifier la politique. Le programme de validation des politiques signale les éventuelles erreurs de syntaxe.
-
Sur la page Vérifier la politique, dans le champ Nom, saisissez
myspectrum_policy
pour nommer la politique que vous créez. (Facultatif) Entrez une description. Vérifiez le récapitulatif de politique pour voir les autorisations accordées par votre politique. Sélectionnez ensuite Créer une politique pour enregistrer votre travail.Une fois que vous avez créé une politique, vous pouvez fournir un accès à vos utilisateurs.
Pour activer l'accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
-
Utilisateurs et groupes dans AWS IAM Identity Center :
Créez un jeu d'autorisations. Suivez les instructions de la rubrique Création d'un jeu d'autorisations du Guide de l'utilisateur AWS IAM Identity Center.
-
Utilisateurs gérés dans IAM par un fournisseur d'identité :
Créez un rôle pour la fédération d'identité. Pour plus d'informations, voir la rubrique Création d'un rôle pour un fournisseur d'identité tiers (fédération) du Guide de l'utilisateur IAM.
-
Utilisateurs IAM :
-
Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique Création d'un rôle pour un utilisateur IAM du Guide de l'utilisateur IAM.
-
(Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d'utilisateurs. Suivez les instructions de la rubrique Ajout d'autorisations à un utilisateur (console) du Guide de l'utilisateur IAM.
-
Pour accorder des droits SELECT sur la table à interroger dans la base de données Lake Formation
-
Ouvrez la console Lake Formation à l'adresse https://console.aws.amazon.com/lakeformation/
. -
Dans le volet de navigation, sélectionnez Clusters, puis Grant (Accorder).
-
Saisissez les informations suivantes :
-
Pour le rôle IAM, choisissez celui que vous avez créé,
myspectrum_role
. Lorsque vous exécutez l'éditeur de requêtes Amazon Redshift, il utilise ce rôle IAM pour l'autorisation des données.Note
Pour accorder l'autorisation SELECT sur la table d'un catalogue de données Lake Formation afin d'interroger, procédez comme suit :
Enregistrez le chemin d'accès aux données dans Lake Formation.
Accordez les autorisations utilisateur sur ce chemin dans Lake Formation..
Les tables créées se trouvent dans le chemin enregistré dans Lake Formation..
-
Pour Database (Base de données), choisissez votre base de données Lake Formation.
-
Pour Table, choisissez une table de la base de données à interroger.
-
Pour Columns (Colonnes), choisissez All Columns (Toutes les colonnes).
-
Choisissez l'autorisation Select.
-
-
Choisissez Enregistrer.
Important
La bonne pratique consiste à n'autoriser l'accès qu'aux objets Amazon S3 sous-jacents par le biais des autorisations Lake Formation. Pour empêcher tout accès non approuvé, supprimez toute autorisation accordée aux objets Amazon S3 en dehors de Lake Formation. Si vous accédiez précédemment aux objets Amazon S3 avant de configurer Lake Formation, supprimez toutes les politiques IAM ou les autorisations de compartiment qui étaient précédemment configurées. Pour plus d'informations, veuillez consulter les rubriques Mise à niveau des autorisations de données AWS Glue vers le modèle AWS Lake Formation et les Autorisations Lake Formation.