Prérequis
- Si la posture de sécurité de votre Redshift nécessite la mise en liste blanche d’IP, ayez l’IP statique de notre service de synchronisation de données à portée de main lors des étapes suivantes. Elle sera requise à l’étape 2.
- Par défaut, l’authentification Redshift utilise un accès basé sur les rôles. Vous aurez besoin de la politique d’approbation préremplie avec l’identifiant du service de synchronisation des données pour accorder l’accès. Elle doit ressembler à l’objet JSON suivant avec un identifiant de compte de service approprié :
Étape 1 : Créer un utilisateur limité dans Redshift
- Connectez-vous à Redshift à l’aide du client SQL.
- Exécutez la requête suivante pour créer un utilisateur qui écrira les données (remplacez
<password>par un mot de passe de votre choix).
📘 Création d’un utilisateur sans mot de passe.
L’authentification basée sur les rôles ne nécessite pas de mot de passe. Vous pouvez créer l’utilisateur avec CREATE USER <username> PASSWORD DISABLE;.
- Accordez à l’utilisateur les privilèges
createettemporarysur la base de données.createpermet au service de créer de nouveaux schémas ettemporarypermet au service de créer des tables temporaires.
📘 Le schéma sera créé lors de la première synchronisation Le nom de schéma fourni à l’étape 4 sera créé lors de la première connexion. Il n’est pas nécessaire de le créer manuellement à l’avance dans la destination.
📘 🚧 Si leschemaexiste déjà Par défaut, le service crée un nouveau schéma en fonction de la configuration de destination. Si vous préférez créer le schéma vous-même avant de connecter la destination, vous devez vous assurer que l’utilisateur écrivain dispose des autorisations appropriées sur le schéma, en utilisantGRANT ALL ON schema <schema> TO <username>;Une fois que vous avez accordé l’autorisationGRANT ALLsur le schéma, vous pouvez supprimer en toute sécurité l’autorisationCREATEsur la base de données (mais vous devez conserver l’autorisationTEMPORARYsur la base de données).
Étape 2 : Mettre en liste blanche la connexion
- Dans la console Redshift, cliquez sur Clusters et notez le nom du cluster.
- Sélectionnez le cluster que vous souhaitez connecter.
- Dans le volet General information, notez les détails du Endpoint. Vous devrez peut-être utiliser l’icône copy pour copier les détails complets afin de découvrir l’endpoint complet et le numéro de port.
- Cliquez sur l’onglet Properties.
- Faites défiler jusqu’à la section Network and security settings.
- Dans le champ « VPC security group », sélectionnez un groupe de sécurité pour l’ouvrir.
- Dans la fenêtre Security Groups, cliquez sur Inbound rules.
- Cliquez sur Edit inbound rules.
- Dans la fenêtre Edit the Inbound rules, suivez les étapes ci-dessous pour créer des règles TCP personnalisées pour l’IP statique :
a. Sélectionnez Custom TCP dans le menu déroulant.
b. Saisissez le numéro de port Redshift. (probablement
5439) c. Saisissez l’IP statique. d. Cliquez sur Add rule.
Étape 3 : Créer un bucket de staging
Créer un bucket de staging
- Accédez à la page du service S3.
- Cliquez sur Create bucket.
- Saisissez un Bucket name et modifiez les paramètres par défaut selon vos besoins. Remarque : Object Ownership peut être réglé sur « ACLs disabled » et Block Public Access settings for this bucket peut être réglé sur « Block all public access » comme recommandé par AWS. Notez le nom du bucket et la région AWS.
- Cliquez sur Create bucket.
Créer la politique
- Accédez à la page du service IAM, cliquez sur l’onglet de navigation Policies, puis cliquez sur Create policy.
- Cliquez sur l’onglet JSON et collez la politique suivante, en veillant à remplacer
BUCKET_NAMEpar le nom du bucket choisi ci-dessus, et REGION_NAME, ACCOUNT_ID, CLUSTER_NAME, USERNAME et DATABASE_NAME par les valeurs Redshift appropriées.- Remarque : la première autorisation de bucket dans la liste s’applique à
BUCKET_NAMEtandis que la deuxième autorisation s’applique uniquement au contenu du bucket —BUCKET_NAME/*— une distinction importante.
- Remarque : la première autorisation de bucket dans la liste s’applique à
JSON policy
- Cliquez jusqu’à l’étape Review, choisissez un nom pour la politique, par exemple,
transfer-service-policy(qui sera référencé à l’étape suivante), ajoutez une description et cliquez sur Create policy.
Créer le rôle
- Accédez à la page du service IAM.
- Accédez à l’onglet de navigation Roles et cliquez sur Create role.
- Sélectionnez Custom trust policy et collez la politique d’approbation fournie (depuis le prérequis) pour autoriser l’accès AssumeRole à ce rôle. Cliquez sur Next.
- Ajoutez la politique d’autorisations créée ci-dessus et cliquez sur Next.
- Saisissez un Role name, par exemple,
transfer-role, et cliquez sur Create role. - Une fois créé avec succès, recherchez le rôle créé dans la liste des rôles, cliquez sur le nom du rôle et notez la valeur ARN.
🚧 Méthode d’authentification alternative : utilisateur AWS avec HMAC Access Key ID et Secret Access Key L’authentification basée sur les rôles est le mode d’authentification préféré pour Redshift selon les recommandations d’AWS, cependant, HMAC Access Key ID et Secret Access Key est une méthode d’authentification alternative qui peut être utilisée si vous le préférez.
- Accédez à la page du service IAM.
- Accédez à l’onglet de navigation Users et cliquez sur Add users.
- Saisissez un User name pour le service, par exemple,
transfer-service, cliquez sur Next. Sous Select AWS access type, sélectionnez l’option Access key - Programmatic access. Cliquez sur Next: Permissions.- Cliquez sur l’option Attach existing policies directly et recherchez le nom de la politique créée à l’étape précédente. Sélectionnez la politique et cliquez sur Next: Tags.
- Cliquez sur Next: Review et cliquez sur Create user.
- Dans l’écran Success, notez le Access key ID et le Secret access key.
Étape 4 : Ajouter votre destination
- Partagez en toute sécurité vos host, database, cluster, votre schema choisi, IAM role ARN et les détails du bucket de staging avec nous pour finaliser la connexion.