Autorisations d’accès aux autres ressources AWS - Amazon Redshift

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 aux autres ressources AWS

Pour déplacer des données entre votre cluster et une autre AWS ressource, telle qu'Amazon S3, Amazon DynamoDB, EMR Amazon ou EC2 Amazon, 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, vous COPY devez avoir LIST accès au compartiment et GET aux objets du compartiment. Pour plus d’informations sur les autorisations minimales, consultez IAMautorisations pour COPYUNLOAD, et CREATE LIBRARY.

Pour obtenir l’autorisation d’accéder à la ressource, votre cluster doit être authentifié. Vous pouvez choisir l’une des méthodes d’authentification suivantes :

  • Contrôle d’accès basé sur les rôles— Pour le contrôle d'accès basé sur les rôles, vous spécifiez un rôle AWS Identity and Access Management (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.

  • Contrôle d’accès basé sur les clés— Pour le contrôle d'accès par clé, vous fournissez les informations d' AWS accès (ID de clé d'accès et clé d'accès secrète) d'un utilisateur sous forme de texte brut.

Contrôle d’accès basé sur les rôles

Avec le contrôle d'accès basé sur les rôles, votre cluster assume temporairement un IAM rôle 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 IAM rôle est similaire à l'octroi d'autorisations à un utilisateur, dans la mesure où il s'agit AWS d'une identité dotée de politiques d'autorisation qui déterminent ce que l'identité peut et ne peut pas faire 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

L’authentification basée sur les rôles offre les avantages suivants :

  • Vous pouvez utiliser IAM des outils AWS standard pour définir un IAM rôle 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 IAM politiques précises 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. Si vous utilisez les informations d’identification temporaires basées sur la clé, l’opération échoue si celles-ci expirent avant la fin.

  • Votre identifiant de clé d'accès et votre identifiant de clé d'accès secrète ne sont ni stockés ni transmis dans votre SQL code.

Pour utiliser le contrôle d'accès basé sur les rôles, vous devez d'abord créer un IAM rôle à l'aide du type de rôle de service Amazon Redshift, puis associer le rôle à votre cluster. Le rôle doit avoir, au minimum, les autorisations répertoriées dans IAMautorisations pour COPYUNLOAD, et CREATE LIBRARY. Pour savoir comment créer un IAM rôle 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 consulter les rôles associés à un cluster à l'aide de la console de gestion Amazon RedshiftCLI, ou. API Pour plus d'informations, consultez la section Associer un IAM rôle à un cluster dans le guide de gestion Amazon Redshift.

Lorsque vous créez un IAM rôle, IAM renvoie un Amazon Resource Name (ARN) pour le rôle. Pour spécifier un IAM rôle, ARN indiquez-lui le IAM_ROLE paramètre ou le CREDENTIALS paramètre.

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

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

L'exemple de COPY commande suivant utilise le ROLE paramètre IAM _ avec celui de ARN 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';

L'exemple de COPY commande suivant utilise le CREDENTIALS paramètre pour spécifier le IAM rôle.

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

En outre, un superutilisateur peut accorder le ASSUMEROLE privilège aux utilisateurs et aux groupes de base de données de fournir l'accès à un rôle pour les COPY opérations. Pour plus d’informations, veuillez consulter GRANT.

Contrôle d’accès basé sur les clés

Avec le contrôle d'accès basé sur les clés, vous fournissez l'ID de clé d'accès et la clé d'accès secrète à un IAM utilisateur autorisé à accéder aux AWS ressources contenant les données. Vous pouvez utiliser les paramètres ACCESS_KEY_ID and SECRET_ACCESS_KEY ensemble ou le paramètre CREDENTIALS.

Note

Nous vous recommandons vivement d'utiliser un IAM rôle pour l'authentification au lieu de fournir un identifiant de clé d'accès en texte brut et une clé d'accès secrète. Si vous optez pour le contrôle d'accès par clé, n'utilisez jamais les informations d'identification de votre AWS compte (root). Créez toujours un IAM utilisateur et fournissez l'ID de la clé d'accès et la clé d'accès secrète de cet utilisateur. Pour connaître les étapes à suivre pour créer un IAM utilisateur, consultez la section Création IAM d'un utilisateur dans votre AWS compte.

Pour vous authentifier à l'aide de ACCESS _ KEY _ID et SECRET _ ACCESS _KEY, remplacez <access-key-id> and <secret-access-key> avec l'ID de clé d'accès d'un utilisateur autorisé et la clé d'accès secrète complète, comme indiqué ci-dessous.

ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>';

Pour vous authentifier à l'aide du CREDENTIALS paramètre, remplacez <access-key-id> and <secret-access-key> avec l'ID de clé d'accès d'un utilisateur autorisé et la clé d'accès secrète complète, comme indiqué ci-dessous.

CREDENTIALS 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>';

L'IAMutilisateur doit disposer, au minimum, des autorisations répertoriées dansIAMautorisations pour COPYUNLOAD, et CREATE LIBRARY.

informations d’identification de sécurité temporaires

Si vous utilisez un contrôle d’accès basé sur la clé, vous pouvez limiter davantage l’accès dont disposent les utilisateurs à vos données en utilisant des informations d’identification de sécurité temporaires. L’authentification basée sur les rôles utilise automatiquement des informations d’identification temporaires.

Note

Nous vous recommandons vivement d’utiliser role-based access control plutôt que de créer des identifiants temporaires et de fournir un ID de clé d’accès et une clé d’accès secrète sous forme de texte brut. Le contrôle d’accès basé sur les rôles utilise automatiquement des informations d’identification temporaires.

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. L’ID de clé d’accès et la clé d’accès secrète générés avec le jeton ne peuvent pas être utilisés sans le jeton et un utilisateur qui dispose de ces informations d’identification de sécurité temporaires peut accéder à vos ressources uniquement jusqu’à ce que les informations d’identification expirent.

Pour accorder aux utilisateurs un accès temporaire à vos ressources, vous devez appeler les API opérations AWS Security Token Service (AWS STS). Les AWS STS API opérations renvoient des informations de sécurité temporaires composées d'un jeton de sécurité, d'un identifiant de clé d'accès et d'une clé d'accès secrète. Vous pouvez délivrer des informations d’identification de sécurité temporaires aux utilisateurs qui doivent accéder temporairement à vos ressources. Ces utilisateurs peuvent être IAM des utilisateurs existants ou des AWS non-utilisateurs. Pour plus d'informations sur la création d'informations d'identification de sécurité temporaires, consultez la section Utilisation d'informations d'identification de sécurité temporaires dans le guide de IAM l'utilisateur.

Vous pouvez utiliser les paramètres ACCESS_KEY_ID and SECRET_ACCESS_KEY ensemble avec le paramètre SESSION_TOKEN ou le paramètre CREDENTIALS. Vous devez également fournir l’ID de clé d’accès et la clé d’accès secrète qui ont été fournis avec le jeton.

Pour vous authentifier à l'aide de ACCESS _ KEY _ID, SECRET _ ACCESS _ et SESSION _ KEYTOKEN, remplacez <temporary-access-key-id>, <temporary-secret-access-key>, et <temporary-token> comme indiqué ci-dessous.

ACCESS_KEY_ID '<temporary-access-key-id>' SECRET_ACCESS_KEY '<temporary-secret-access-key>' SESSION_TOKEN '<temporary-token>';

Pour vous authentifier en utilisantCREDENTIALS, incluez-le session_token=<temporary-token> dans la chaîne d'informations d'identification comme indiqué ci-dessous.

CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;session_token=<temporary-token>';

L'exemple suivant montre une COPY commande avec des informations d'identification de sécurité temporaires.

copy table-name from 's3://objectpath' access_key_id '<temporary-access-key-id>' secret_access_key '<temporary-secret-access-key>' session_token '<temporary-token>';

L'exemple suivant charge la LISTING table avec les informations d'identification temporaires et le chiffrement des fichiers.

copy listing from 's3://amzn-s3-demo-bucket/data/listings_pipe.txt' access_key_id '<temporary-access-key-id>' secret_access_key '<temporary-secret-access-key>' session_token '<temporary-token>' master_symmetric_key '<root-key>' encrypted;

L'exemple suivant charge la LISTING table à l'aide du CREDENTIALS paramètre avec des informations d'identification temporaires et le chiffrement des fichiers.

copy listing from 's3://amzn-s3-demo-bucket/data/listings_pipe.txt' credentials 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;session_token=<temporary-token>;master_symmetric_key=<root-key>' encrypted;
Important

Les informations d'identification de sécurité temporaires doivent être valides pendant toute la durée de l'COPYUNLOADopération. Si les informations d’identification de sécurité temporaires arrivent à expiration au cours de l’opération, la commande échoue et la transaction est annulée. Par exemple, si les informations d'identification de sécurité temporaires expirent au bout de 15 minutes et que l'COPYopération dure une heure, l'COPYopération échoue avant d'être terminée. Si vous utilisez l’accès basé sur les rôles, les informations d’identification de sécurité temporaires sont automatiquement actualisées jusqu’à la fin de l’opération.

IAMautorisations pour COPYUNLOAD, et CREATE LIBRARY

Le IAM rôle ou l'utilisateur référencé par le CREDENTIALS paramètre doit disposer au minimum des autorisations suivantes :

  • COPYDepuis Amazon S3, autorisation d'accéder LIST au compartiment Amazon S3 et GET aux objets Amazon S3 en cours de chargement, ainsi qu'au fichier manifeste, le cas échéant.

  • Pour COPY ceux provenant d'Amazon S3EMR, d'Amazon et d'hôtes distants (SSH) avec des données JSON formatées, l'autorisation LIST et GET le JSONPaths fichier sur Amazon S3, le cas échéant.

  • Pour COPY depuis DynamoDB, autorisation d'accéder à la table DynamoDB en cours de chargement SCAN et à DESCRIBE la table DynamoDB en cours de chargement.

  • Dans le COPY cas d'un EMR cluster Amazon, autorisation d'effectuer l'ListInstancesaction sur le EMR cluster Amazon.

  • UNLOADPour Amazon S3, GETLIST, et PUT les autorisations pour le compartiment Amazon S3 dans lequel les fichiers de données sont déchargés.

  • CREATELIBRARYDepuis Amazon S3, autorisation d'accéder LIST au compartiment Amazon S3 et GET aux objets Amazon S3 importés.

Note

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

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