DataSunrise sponsorise AWS re:Invent 2024 à Las Vegas, veuillez nous rendre visite au stand n°2158 de DataSunrise

Redshift et RDS

Redshift et RDS

Redshift et RDS

Introduction

À l’ère du big data, les bases de données cloud sont devenues de plus en plus populaires. Elles offrent évolutivité, flexibilité et rentabilité. Deux des bases de données cloud les plus largement utilisées sont Amazon Redshift et RDS (Relational Database Service).

Cet article expliquera les bases de Redshift et RDS. Il se concentrera sur les différences en termes de requêtes de données, d’authentification et de paramètres de sécurité. Nous vous apprendrons comment rechercher des données en utilisant CLI et Python. Nous expliquerons également l’importance des certificats de connexion pour un accès à distance sécurisé.

Qu’est-ce qu’Amazon Redshift ?

Amazon Redshift est un service d’entrepôt de données entièrement géré et à l’échelle du pétaoctet. Il est conçu pour une analyse haute performance des données structurées et semi-structurées.

Redshift utilise un format de stockage en colonnes et des techniques de compression avancées pour atteindre des performances de requête rapides. Il est idéal pour les charges de travail analytiques, telles que l’intelligence d’affaires, l’exploration de données et l’analyse prédictive.

Qu’est-ce qu’Amazon RDS ?

Amazon RDS est un service de base de données relationnelle géré qui supporte plusieurs moteurs de bases de données. Ceux-ci incluent MySQL, PostgreSQL, Oracle, SQL Server et MariaDB. RDS simplifie les tâches d’administration des bases de données, telles que le provisionnement, la mise à l’échelle et la sauvegarde. Il offre une haute disponibilité et durabilité grâce à des fonctionnalités telles que le basculement automatique et les déploiements multi-AZ.

Différences dans les requêtes de données

Redshift et RDS diffèrent dans leur approche des requêtes de données. Redshift, un service d’entreposage de données, utilise SQL (Structured Query Language) pour interroger les données. Il propose certaines fonctionnalités propres à Redshift, comme les fonctions de fenêtre, les fonctions JSON et les commandes COPY pour le chargement des données.

Les fonctions de fenêtre aident à analyser les données, tandis que les fonctions JSON permettent aux utilisateurs de travailler avec des données JSON dans la base de données. Les utilisateurs utilisent la commande COPY pour charger efficacement de grandes quantités de données dans Redshift à partir de sources externes. Ces extensions améliorent la fonctionnalité de Redshift et en font un outil puissant pour analyser et gérer des jeux de données volumineux.

RDS, en revanche, supporte la syntaxe SQL standard du moteur de base de données spécifique utilisé. Par exemple, si vous utilisez PostgreSQL sur RDS, vous pouvez utiliser des commandes et extensions SQL propres à PostgreSQL.

Voici un exemple de requête SELECT simple dans Redshift :

SELECT customer_id, SUM(total_amount) AS total_spent
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY customer_id
ORDER BY total_spent DESC;

Et une requête similaire dans RDS (en supposant une base de données PostgreSQL) fonctionnera bien.

Authentification et sécurité

Redshift et RDS offrent tous deux des fonctionnalités robustes d’authentification et de sécurité. Redshift utilise AWS Identity and Access Management (IAM) pour l’authentification et le contrôle d’accès. Vous pouvez créer des utilisateurs et rôles IAM et leur accorder des permissions spécifiques pour accéder aux ressources Redshift.

RDS, en revanche, utilise les mécanismes d’authentification natifs du moteur de base de données spécifique. Par exemple, dans PostgreSQL sur RDS, vous pouvez créer des utilisateurs de base de données et leur accorder des permissions en utilisant des commandes SQL.

Pour sécuriser la connexion à Redshift ou RDS, vous devez utiliser le chiffrement SSL/TLS. Cela implique d’utiliser un certificat de connexion pour établir un canal sécurisé entre votre application et la base de données. Le certificat de connexion peut être téléchargé depuis la console de gestion AWS.

Interroger les données avec CLI et Python

Vous pouvez interroger des données dans Redshift et RDS en utilisant divers outils et langages de programmation. Deux méthodes courantes sont l’utilisation de l’interface de ligne de commande (CLI) AWS et de Python.

Pour interroger des données en utilisant le CLI AWS, vous devez d’abord installer et configurer le CLI sur votre machine. Ensuite, vous pouvez utiliser les commandes aws redshift ou aws rds pour interagir avec vos bases de données.

Voici un exemple d’interrogation de données dans Redshift en utilisant le CLI AWS :

aws redshift execute-statement --cluster-identifier my-cluster \
--database my-database --sql "SELECT * FROM customers LIMIT 10"

Pour interroger des données en utilisant Python, vous devez installer le pilote de base de données approprié. Pour Redshift, vous pouvez utiliser les bibliothèques psycopg2 ou sqlalchemy. Pour RDS, le pilote dépend du moteur de base de données spécifique. À titre d’exemple, pour PostgreSQL sur RDS, vous pouvez utiliser psycopg2.

Voici un exemple d’interrogation de données dans RDS (PostgreSQL) en utilisant Python et psycopg2 :

import psycopg2
conn = psycopg2.connect(
host="my-rds-instance.123456789012.us-west-2.rds.amazonaws.com",
port=5432,
database="my-database",
user="my-user",
password="my-password"
)
cur = conn.cursor()
cur.execute("SELECT * FROM customers LIMIT 10")
results = cur.fetchall()
for row in results:
print(row)
cur.close()
conn.close()

Chiffrement des données en transit

Dans le cas mentionné ci-dessus, la connexion peut être établie sans chiffrement SSL/TLS. Cela est dû au comportement par défaut de connect().  Cela signifie que les données transférées entre votre application et la base de données peuvent être envoyées en texte clair, ce qui les rend vulnérables à l’interception et à l’accès non autorisé. Bien que cela fonctionne, il est fortement déconseillé de l’utiliser en environnement de production ou lors du traitement de données sensibles.

Omettre le certificat SSL et établir une connexion non chiffrée comporte plusieurs risques :

  • Confidentialité des données : des informations sensibles, telles que les identifiants utilisateurs, les informations personnellement identifiables (PII) ou les données commerciales confidentielles, peuvent être exposées si la connexion est interceptée par des parties non autorisées.
  • Violations de conformité : de nombreuses normes et réglementations industrielles, telles que le RGPD, HIPAA et PCI DSS, exigent l’utilisation du chiffrement pour protéger les données en transit. Ne pas utiliser le chiffrement SSL/TLS peut entraîner une non-conformité et des conséquences juridiques potentielles.
  • Vulnérabilité aux attaques : les connexions non chiffrées sont susceptibles d’attaques basées sur le réseau, telles que les attaques de type “man-in-the-middle” (MITM), où un attaquant peut intercepter et manipuler les données transmises.

Pour atténuer ces risques, il est fortement recommandé d’utiliser toujours le chiffrement SSL/TLS lors de la connexion à Redshift, RDS ou à tout autre service de base de données. Assurez-vous d’inclure les paramètres sslmode et sslcert dans votre appel psycopg2.connect() et de fournir le chemin vers le certificat SSL téléchargé en utilisant le paramètre sslcert.

import psycopg2
conn = psycopg2.connect(
    host="my-cluster.123456789012.us-west-2.redshift.amazonaws.com",
    port=5439,
    database="my-database",
    user="my-user",
    password="my-password",
    sslmode="verify-full",
    sslcert="/path/to/certificate.pem"
)

Téléchargement du certificat

Lorsque vous créez un nouveau cluster Redshift ou une instance RDS, AWS génère un certificat SSL/TLS unique pour cette ressource. Vous pouvez télécharger le certificat depuis la console de gestion AWS ou le récupérer de manière programmatique en utilisant le CLI AWS ou les SDK.

Pour télécharger le certificat pour un cluster Redshift :

  1. Ouvrez la console Redshift d’Amazon.
  2. Sélectionnez votre cluster.
  3. Dans la section “Configuration du cluster”, cliquez sur l’onglet “Certificats SSL”.
  4. Cliquez sur “Télécharger le certificat SSL” pour télécharger le fichier de certificat.

Pour télécharger le certificat pour une instance RDS :

  1. Ouvrez la console RDS d’Amazon.
  2. Sélectionnez votre instance RDS.
  3. Dans la section “Connectivité et sécurité”, cliquez sur le champ “Certificat SSL”.
  4. Cliquez sur “Télécharger” pour télécharger le fichier de certificat.

En incluant le certificat SSL et en activant le chiffrement SSL/TLS, vous vous assurez que la communication entre votre application et la base de données est sécurisée, protégeant ainsi les données sensibles et respectant les meilleures pratiques de sécurité.

Exemples et configuration préliminaire

Pour démontrer l’utilisation de Redshift et RDS, prenons un exemple simple. Supposons que nous ayons une application de commerce électronique qui stocke les données des clients et des commandes. Nous voulons analyser le montant total dépensé par chaque client au cours de la dernière année.

Avant d’exécuter les requêtes mentionnées précédemment, nous devons configurer les bases de données, les tables et les utilisateurs nécessaires.

Pour Redshift :

  1. Créez un cluster et une base de données Redshift en utilisant la console de gestion AWS ou le CLI.
  2. Créez une table nommée orders avec les colonnes order_id, customer_id, total_amount et order_date.
  3. Chargez des données d’exemple dans la table orders en utilisant la commande COPY de Redshift.
  4. Créez un utilisateur IAM avec des permissions pour accéder au cluster et à la base de données Redshift.

Pour RDS (PostgreSQL) :

  1. Créez une instance RDS et une base de données en utilisant la console de gestion AWS ou le CLI.
  2. Créez une table nommée orders avec les colonnes order_id, customer_id, total_amount et order_date.
  3. Insérez des données d’exemple dans la table orders en utilisant des instructions SQL INSERT.
  4. Enfin, créez un utilisateur de base de données avec des permissions pour accéder à la table orders.

Après avoir exécuté les requêtes, vous obtiendrez un ensemble de résultats montrant le montant total dépensé par chaque client, par ordre décroissant. Vous pouvez utiliser ces informations pour la segmentation des clients, le marketing ciblé ou l’identification des clients à haute valeur.

Résumé et conclusion

Dans cet article, nous avons exploré les bases d’Amazon Redshift et d’Amazon RDS, deux bases de données cloud populaires. Nous avons discuté de leurs différences en termes de requêtes de données dans le cloud, d’authentification et de paramètres de sécurité. Nous avons montré comment rechercher des données en utilisant CLI et Python, et parlé des pilotes pour chaque base de données.

Redshift et RDS offrent des capacités puissantes pour stocker et analyser des données dans le cloud. Redshift est optimisé pour les analyses haute performance, tandis que RDS fournit des bases de données relationnelles gérées avec support pour plusieurs moteurs.

Lors de l’utilisation des bases de données cloud, la sécurité est primordiale. L’utilisation de certificats de connexion et du chiffrement SSL/TLS garantit un accès sécurisé à distance à vos bases de données.

Apprenez à connaître Redshift et RDS pour choisir la meilleure base de données pour vos besoins. Les bases de données cloud d’Amazon offrent des solutions évolutives et fiables. Ces solutions sont idéales pour construire un entrepôt de données ou une application transactionnelle. Les bases de données ont un backend RDS qui supporte l’intelligence d’affaires.

DataSunrise : Sécurité complète des bases de données

DataSunrise propose des outils faciles à utiliser pour les organisations afin d’améliorer la sécurité, le masquage et la conformité de leurs bases de données Redshift et RDS. Il fournit une solution complète pour la sécurité des bases de données, incluant des fonctionnalités telles que la découverte des données, la classification, le contrôle d’accès et l’audit.

Visitez notre équipe DataSunrise pour une démonstration. Découvrez comment nos produits peuvent protéger vos bases de données cloud et vous aider à respecter les réglementations comme le RGPD, HIPAA et PCI DSS.

Suivant

Audit de Base de Données Snowflake

Audit de Base de Données Snowflake

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]