Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Comment créer un accès intercompte Amazon Redshift Spectrum à AWS Glue et Amazon S3 ?
Je souhaite utiliser Amazon Redshift Spectrum pour accéder à AWS Glue et à Amazon Simple Storage Service (Amazon S3) depuis un autre compte AWS.
Résolution
Créer un rôle IAM qui approuve Amazon Redshift
Pour accéder aux ressources AWS intercomptes avec Amazon Redshift Spectrum, vous devez créer un rôle Gestion des identités et des accès AWS (AWS IAM) qui approuve Amazon Redshift. Puis, associez le rôle au cluster Amazon Redshift.
Procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, sélectionnez Rôles.
- Sélectionnez Créer un rôle.
- Dans le champ Sélectionner le type d’entité de confiance, choisissez Service AWS.
- Sélectionnez Redshift.
- Dans Sélectionner votre cas d’utilisation, choisissez Redshift - Personnalisable.
- Sélectionnez Étape suivante : Autorisations, Suivant : Identifications, puis ** Suivant : Vérifier**.
Remarque : Il n’est pas nécessaire des politiques ou des identifications. - Saisissez un Nom de rôle, puis sélectionnez Créer un rôle. Dans les exemples suivants, le rôle est redshift_role1.
- Associez redshift_role1 au cluster Amazon Redshift. Cette association permet à votre cluster d’assumer le rôle nouvellement créé pour accéder à Amazon S3, Amazon Athena et AWS Glue.
Créer un nouveau rôle IAM disposant d’un accès à AWS Glue et Amazon S3
Dans un autre compte, créez un nouveau rôle IAM avec accès à la fois à AWS Glue et à Amazon S3. Amazon Redshift endosse le rôle d'accès aux ressources AWS Glue et S3 via la relation d’approbation.
Procédez comme suit :
-
Ouvrez la console IAM.
-
Sélectionnez Stratégies, puis Créer une stratégie.
-
Choisissez l’onglet JSON, puis saisissez une politique IAM similaire à l’exemple suivant :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "glue:BatchCreatePartition", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteDatabase", "glue:GetTables", "glue:GetPartitions", "glue:BatchDeletePartition", "glue:UpdateTable", "glue:BatchGetPartition", "glue:DeleteTable", "glue:GetDatabases", "glue:GetTable", "glue:GetDatabase", "glue:GetPartition", "glue:CreateDatabase", "glue:BatchDeleteTable", "glue:CreatePartition", "glue:DeletePartition", "glue:UpdatePartition" ], "Resource": "*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucketMultipartUploads", "s3:ListBucket", "s3:GetBucketLocation", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::your_bucket", "arn:aws:s3:::your_bucket/*" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "<KMS_KEY_ARN>" ] } ] }
Remarque : Remplacez your_bucket par le nom du compartiment S3 auquel vous souhaitez accéder avec Amazon Redshift Spectrum. Remplacez KMS_KEY_ARN par l’ARN de la clé KMS qui chiffre votre compartiment S3. Si les fichiers de votre compartiment S3 sont chiffrés, accordez les autorisations adéquates à Amazon Redshift.
-
Sélectionnez Vérifier la stratégie.
-
Saisissez un Nom pour la stratégie, puis sélectionnez Créer une stratégie.
-
Dans le volet de navigation, choisissez Rôles, puis Créer un rôle.
-
Dans Sélectionner le type d’entité d’approbation, choisissez Autre compte AWS.
-
Dans ID de compte, saisissez l’ID du compte qui utilise Amazon Redshift. Pour en savoir plus, consultez la section Utilisation d’un alias pour votre ID de compte AWS.
-
Sélectionnez Étape suivante : Autorisations.
-
Dans la liste des politiques, sélectionnez le nom de la politique que vous avez créée.
-
Sélectionnez Étape suivante : Identifications, puis Suivant : Vérifier.
Remarque : Il n’est pas nécessaire d’ajouter des identifications. -
Saisissez un Nom de rôle, puis sélectionnez Créer un rôle. Dans les exemples suivants, le rôle est glue_s3_role2.
-
Dans le volet de navigation, sélectionnez Rôles.
-
Sélectionnez le nom du rôle que vous avez créé, puis choisissez l’onglet Relations d’approbation.
-
Choisissez Modifier la relation d’approbation.
-
Supprimez la politique existante, puis remplacez-la par une politique similaire à la suivante.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::redshift_account1:role/redshift_role1" }, "Action": "sts:AssumeRole" } ] }
Remarque : Remplacez redshift_account1 par l’ID du compte qui utilise Amazon Redshift. Remplacez redshift_role1 par le nom du premier rôle que vous avez créé.
- Choisissez Mettre à jour la politique d’approbation.
Mettre à jour les autorisations pour le rôle IAM Amazon Redshift
Mettez à jour les autorisations pour le premier rôle IAM que vous avez créé. Procédez comme suit :
-
Ouvrez la console IAM.
-
Choisissez Rôles dans le volet de navigation, puis choisissez le nom du premier rôle (redshift_role1) créé précédemment.
-
Sous Autorisations, choisissez ** Ajouter une politique en ligne**.
-
Choisissez l’onglet JSON. Supprimez la politique existante, puis saisissez une politique IAM similaire à l’exemple suivant.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::glue_s3_account2:role/glue_s3_role2" } ] }
Remarque : Remplacez glue_s3_account2 par l’ID du compte qui utilise AWS Glue et Amazon S3. Remplacez glue_s3_role2 par le nom du deuxième rôle que vous avez créé.
-
Sélectionnez Vérifier la stratégie.
-
Saisissez un nom pour la stratégie, puis sélectionnez Créer une stratégie.
-
Créez un schéma externe qui utilise les rôles que vous avez créés dans les deux comptes. Reportez-vous à l’exemple suivant :
create external schema spectrum_schema from data catalog database 'your_db' iam_role 'arn:aws:iam::redshift_account1:role/redshift_role1,arn:aws:iam::glue_s3_account2:role/glue_s3_role2'
Remarque : Remplacez les valeurs suivantes :
your_db : le nom de votre base de données dans AWS Glue.
redshift_account1 : l’ID du compte Amazon Redshift.
redshift_role1 : le nom du rôle que vous avez créé dans le compte Amazon Redshift.
glue_s3_account2 : l’ID du compte AWS Glue et Amazon S3.
glue_s3_role2 : le nom du rôle que vous avez créé dans le compte AWS Glue et Amazon S3.Dans l'instruction DDL Créer un schéma externe, répertoriez les ARN des rôles IAM dans l'ordre suivant : redshift_cluster_role, destination_account_role. N'incluez pas d'espaces entre les rôles.
Vous pouvez maintenant utiliser Amazon Redshift Spectrum depuis votre cluster Amazon Redshift dans redshift_account1 pour interroger les tables AWS Glue dans glue_s3_account2. Toutes les ressources doivent se trouver dans la même région AWS. Il n’est pas nécessaire de recréer vos tables externes, car Amazon Redshift Spectrum peut accéder à vos tables AWS Glue existantes.
La requête suivante renvoie le nombre de lignes d’une table AWS Glue créée dans le schéma externe :
select count(*) from spectrum_schema.glue_table;
Remarque : Remplacez spectrum_schema et glue_table par le nom de votre schéma et de la table AWS Glue.
Informations connexes
Autoriser Amazon Redshift à accéder aux services AWS en votre nom
Vidéos associées


Contenus pertinents
- demandé il y a 2 anslg...
- demandé il y a 3 moislg...
- demandé il y a un anlg...
- demandé il y a un anlg...
- demandé il y a 2 anslg...
- AWS OFFICIELA mis à jour il y a 2 mois
- AWS OFFICIELA mis à jour il y a 3 ans