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.
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.
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.
Source link