Fermer

janvier 11, 2022

C'est bien que Spark Security soit désactivé par défaut


La sécurité dans Spark est désactivée par défaut, ce qui signifie que vous êtes entièrement responsable de la sécurité dès le premier jour. Spark prend en charge une variété de types de déploiement, chacun avec son propre ensemble de niveaux de sécurité. Tous les types de déploiement ne sont pas sûrs dans tous les scénarios, et aucun n'est sécurisé par défaut. Prenez le temps d'analyser votre situation, ce que Spark peut faire et comment vous pouvez sécuriser votre installation Spark.

Connaître vos algorithmes

AES (Advanced Encryption Standard) est un algorithme de cryptage à clé symétrique utilisé pour crypter et déchiffrer les données.

RSA (Rivest-Shamir-Adleman) est un algorithme de chiffrement à clé asymétrique utilisé pour chiffrer et déchiffrer les données.

HMAC (Hash-based Message Authentication Code) est une méthode d'intégrité des messages qui crée une somme de contrôle de les données à l'aide d'une fonction de hachage cryptographique. La somme de contrôle est ensuite utilisée pour vérifier l'intégrité des données.

Le chiffrement à clé symétrique se produit lorsque la même clé est utilisée pour chiffrer et déchiffrer les données. Le chiffrement à clé asymétrique se produit lorsque différentes clés sont utilisées pour chiffrer et déchiffrer les données. Les hachages sont des algorithmes à sens unique qui prennent n'importe quelle chaîne d'entrée de n'importe quelle longueur et la modifient, résultant en une sortie de taille donnée.

Connaissez vos protocoles

Kerberos est un protocole d'authentification réseau qui utilise la cryptographie à clé secrète pour authentifier les utilisateurs et services sur un réseau. Il est destiné à empêcher l'accès non autorisé aux ressources du réseau.

Data Intelligence - The Future of Big Data
The Future of Big Data

Avec quelques conseils, vous pouvez créer une plate-forme de données adaptée aux besoins de votre organisation. et tire le meilleur parti de votre capital de données.

Obtenez le guide

SSL (Secure Sockets Layer) est un protocole de sécurité de cryptage. Avec SSL, le serveur dispose d'un certificat qu'il présente au client lorsqu'il lui est demandé de s'authentifier.

TLS (Transport Layer Security) est un protocole de sécurité de cryptage. Avec TLS, le client dispose d'un certificat qu'il présente au serveur lorsqu'il lui est demandé de s'authentifier.

Les magasins de clés sont utilisés par le côté serveur d'une connexion client-serveur TLS/SSL. Il contient généralement une clé privée pour le système hôte.

Les magasins de confiance sont utilisés par le côté client d'une connexion client-serveur TLS/SSL. Il ne contient aucune clé mais peut contenir des certificats racine pour les autorités de certification publiques.

Configuration SSL

SSL est configuré de manière hiérarchique. À moins que les paramètres spécifiques au protocole ne remplacent les paramètres SSL par défaut de l'utilisateur, ils peuvent définir les valeurs par défaut pour tous les protocoles pris en charge. Définissez ${ns}.enabled égal à true et définissez un protocole TLS à l'aide de ${ns}.protocol. Considérez comment vous allez implémenter votre keystore et votre truststore et si vous ne devez pas changer ${ns}.needClientAuth de false à true.

Spark RPC

RPC fait référence aux protocoles de communication utilisés entre Spark processus. Pour l'authentification, définissez le paramètre de configuration spark.authenticate. La distribution du secret partagé dépend du déploiement. YARN utilise le cryptage YARN RPC pour distribuer le secret partagé. Kubernetes générera automatiquement un secret pour chaque application et se propagera aux pods d'exécution.

Spark implémente le chiffrement basé sur AES pour les connexions RPC afin de garantir que les données sont sûres et sécurisées lors de la transmission entre les nœuds.

Stockage local

Spark chiffre les données ordinaires temporairement stockées sur des disques locaux. Cela inclut les fichiers aléatoires, les déversements aléatoires et les blocs de données enregistrés sur le disque. Définissez la propriété spark.io.encryption.enabled sur true (elle est false par défaut). La valeur par défaut de spark.io.encryption.keygen.algorithm est HMACSHA1.

Conclusion

L'authentification, la confidentialité et l'intégrité/l'authenticité des données sont les trois composants fondamentaux de la sécurité Spark. L'authentification garantit que seules les personnes autorisées peuvent accéder à vos données, tandis que le cryptage garantit leur sécurité. La confidentialité garantit que seules les personnes disposant des clés de déchiffrement correctes ont accès aux informations. L'intégrité et l'authenticité des données d'un message sont le degré auquel il a été modifié pendant la transmission de la source à la ou aux destinations. Dans tout scénario de sécurité basé sur Spark, chaque composant est vital.

À propos de l'auteur <!– :   dcallaghan, Solutions Architect–>

En tant qu'architecte de solutions avec Perficient, j'apporte vingt années d'expérience en développement et je suis actuellement en train de travailler avec Hadoop/Spark, blockchain et cloud, le codage en Java, Scala et Go. Je suis certifié et travaille beaucoup avec Hadoop, Cassandra, Spark, AWS, MongoDB et Pentaho. Plus récemment, j'ai apporté des solutions de blockchain intégrées (en particulier Hyperledger et Ethereum) et de Big Data au cloud en mettant l'accent sur l'intégration de produits de données modernes tels que HBase, Cassandra et Neo4J en tant que référentiel hors blockchain.

cet auteur




Source link