HBase
 sql >> Base de données >  >> NoSQL >> HBase

Conversion des ACL HBase en stratégies Ranger

CDP utilise Apache Ranger pour la gestion de la sécurité des données. Si vous souhaitez utiliser Ranger pour disposer d'une administration de sécurité centralisée, les ACL HBase doivent être migrées vers des stratégies. Cela peut être fait via l'interface Web de Ranger, accessible depuis Cloudera Manager. Mais d'abord, prenons un aperçu rapide de la méthode HBase pour le contrôle d'accès.

Autorisation HBase

Si l'autorisation est configurée (par exemple avec Kerberos et la définition de hbase.security.authorization propriété à true ), les utilisateurs peuvent définir des règles sur les ressources auxquelles ils sont autorisés à accéder. Ces règles peuvent être définies pour des tableaux, colonnes et cellules individuels dans un tableau.

Niveaux d'accès HBase

Les niveaux d'accès HBase sont accordés indépendamment les uns des autres et permettent différents types d'opérations à une portée donnée.

Autorisations possibles (zéro ou plusieurs lettres de l'ensemble "RWXCA") :

  • Read (R) – peut lire les données à la portée donnée
  • Write (W) - peut écrire des données à la portée donnée
  • Exécuter (X) - peut exécuter les points de terminaison du coprocesseur à la portée donnée
  • Create (C) - peut créer des tables ou supprimer des tables à la portée donnée
  • Admin (A) - peut effectuer des opérations de cluster telles que l'équilibrage du cluster ou l'attribution de régions à la portée donnée

Étendues possibles :

  • Superutilisateur – Les superutilisateurs peuvent effectuer n'importe quelle opération disponible dans HBase, sur n'importe quelle ressource. L'utilisateur qui exécute HBase sur votre cluster est un superutilisateur. Tous les principaux affectés à la propriété de configuration hbase.superuser dans le fichier hbase-site.xml fichier de configuration sur le HMaster sont également des superutilisateurs.
  • Global – Les autorisations accordées à l'échelle mondiale permettent à l'administrateur d'opérer sur toutes les tables du cluster.
  • Espace de noms :les autorisations accordées au niveau de l'espace de noms s'appliquent à toutes les tables d'un espace de noms donné.
  • Table – Les autorisations accordées au niveau de la table s'appliquent aux données ou aux métadonnées d'une table donnée.
  • ColumnFamily – Les autorisations accordées au niveau de ColumnFamily s'appliquent aux cellules de cette ColumnFamily.
  • Cellule – Les autorisations accordées au niveau de la cellule s'appliquent à cette coordonnée de cellule exacte.

Exportation des ACL HBase

1. Connectez-vous via Kerberos avec les informations d'identification du service HBase.

2. Lancez le shell hbase et répertoriez les ACL.

Pour répertorier les LCA, utilisez les commandes suivantes : 

  • user_permission ‘.*’
  • Alternativement avec le privilège de superutilisateur :scan ‘hbase:acl’

Exemple de sortie de scan 'hbase:acl' :

LIGNE COLONNE+CELLULE

emp column=l:hbase, timestamp=1612190971868, value=RWXCAemp2 column=l:hbase, timestamp=1612191218963, value=RWXCAemp2 column=l:user1, timestamp=1612191426624, value=RWCemp column=l:test,personal data, timestamp=1612273141925, value=RWemp column=l:test,personal data,1, timestamp=1612273322678, value=RWemp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RW 

Exemple de sortie de user_permission '.*' :

User Namespace,Table,Family,Qualifier:Permissionhbase default,emp,,:[Permission :actions=READ,WRITE,EXEC,CREATE,ADMIN]user1 default,emp2,,:[Permission :actions=READ,WRITE, CREATE]hbase default,emp2,, :[Permission :actions=READ,WRITE,EXEC,CREATE,ADMIN]test default,emp,personal data, :[Permission :actions=READ,WRITE]test default,emp,personal data, 1 :[Permission :actions=READ,WRITE]@group-usr default,emp,personal data,1 :[Permission :actions=READ,WRITE]

Remarque : Les groupes et les utilisateurs se voient accorder l'accès de la même manière, mais les groupes sont préfixés par un caractère "@". Les tables et les espaces de noms sont spécifiés de la même manière, mais les espaces de noms sont préfixés par un caractère "@".

Exemple d'autorisation au niveau de la cellule :

test             default,emp,personal data,1 :[Permission :actions=READ,WRITE]

Le ‘test’ l'utilisateur a des permissions RW sur 'par défaut' espace de noms, sur la table 'emp' , colonne 'données personnelles' et ligne ‘1’..

Créer des politiques Ranger 

  1. Dans Cloudera Manager, sélectionnez le service Ranger.
  2. Trouvez l'interface Web lien qui vous redirige vers l'interface utilisateur Ranger.
  3. Connectez-vous à l'interface utilisateur Ranger.

Le Gestionnaire d'accès page affichée :

1. Sélectionnez un service HBase existant.
La Liste des politiques la page s'affiche.

2. Cliquez sur Ajouter une nouvelle politique .
La page Créer une politique s'affiche.

3. Complétez la page Créer une stratégie comme suit :

3.1 Détails de la politique

Nom de la politique Entrez un nom de stratégie approprié. Ce nom ne peut pas être dupliqué dans le système. Ce champ est obligatoire.
Étiquette de politique Spécifiez une étiquette pour cette stratégie. Vous pouvez rechercher des rapports et filtrer les règles en fonction de ces libellés.
normal/remplacer Vous permet de spécifier une stratégie de remplacement. Lorsque le remplacement est sélectionné, les autorisations d'accès dans la stratégie remplacent les autorisations d'accès dans les stratégies existantes. Cette fonctionnalité peut être utilisée avec Ajouter une période de validité pour créer des politiques d'accès temporaires qui remplacent les politiques existantes.
Tableau HBase Sélectionnez la base de données appropriée. Plusieurs bases de données peuvent être sélectionnées pour une politique particulière. Ce champ est obligatoire.
Famille de colonne HBase Pour la table sélectionnée, spécifiez les familles de colonnes auxquelles la politique s'applique.
Colonne HBase Pour les familles de tables et de colonnes sélectionnées, spécifiez les colonnes auxquelles la politique s'applique.
Description (Facultatif) Décrivez l'objectif de la politique.
Journalisation d'audit Spécifiez si cette stratégie est auditée. (Décochez pour désactiver l'audit).
Ajouter une période de validité Spécifiez une heure de début et de fin pour la stratégie.

3.2 Conditions d'autorisation/de refus
Apache Ranger prend en charge les conditions d'accès suivantes :

  • Autoriser
  • Exclure de Autoriser
  • Refuser
  • Exclure de Refuser

Ces conditions d'accès vous permettent de mettre en place des politiques de contrôle d'accès fines.

Par exemple, vous pouvez autoriser l'accès à un dossier finances tableau à tous les utilisateurs de la finance groupe, mais refuser l'accès à tous les utilisateurs du groupe stagiaires grouper. Disons qu'un des membres des stagiaires groupe, scott , doit travailler sur une mission qui nécessite l'accès aux finances table. Dans ce cas, vous pouvez ajouter une condition Exclure de Refuser qui permettra à l'utilisateur scott pour accéder aux finances base de données.

Sélectionner un rôle Spécifiez les rôles auxquels cette politique s'applique.

Pour désigner un rôle en tant qu'administrateur, cochez la case Déléguer l'administrateur. Les administrateurs peuvent modifier ou supprimer la stratégie, et peuvent également créer des stratégies enfants basées sur la stratégie d'origine.
Sélectionner un groupe Spécifiez les groupes auxquels cette politique s'applique.

Pour désigner un groupe en tant qu'administrateur, cochez la case Déléguer l'administrateur. Les administrateurs peuvent modifier ou supprimer la stratégie, et peuvent également créer des stratégies enfants basées sur la stratégie d'origine.
Sélectionner l'utilisateur Spécifiez les utilisateurs auxquels cette politique s'applique.

Pour désigner un utilisateur en tant qu'administrateur, cochez la case Déléguer l'administrateur. Les administrateurs peuvent modifier ou supprimer la stratégie, et peuvent également créer des stratégies enfants basées sur la stratégie d'origine.
Autorisations Ajouter ou modifier des autorisations :lecture, écriture, création, administrateur, sélectionner/désélectionner tout.
Administrateur délégué Vous pouvez utiliser Delegate Admin pour attribuer des privilèges d'administrateur aux utilisateurs ou groupes spécifiés dans la politique. Les administrateurs peuvent modifier ou supprimer la stratégie, et peuvent également créer des stratégies enfants basées sur la stratégie d'origine.

3.3 Vous pouvez utiliser le symbole Plus (+) pour ajouter des conditions supplémentaires. Les conditions sont évaluées dans l'ordre indiqué dans la politique. La condition en haut de la liste est appliquée en premier, puis la deuxième, puis la troisième, et ainsi de suite. Les conditions de refus sont toujours plus fortes. L'organigramme suivant fournit des informations sur le flux d'évaluation de la politique Ranger.

3.4 Enfin, cliquez sur Ajouter.

Conclusion

Dans cet article de blog, nous avons examiné comment vous pouvez migrer vos ACL HBase vers des politiques Ranger, à l'aide de Cloudera Manager. Malheureusement, il n'y a pas d'automatisation pour la migration, car les deux méthodes d'autorisation diffèrent énormément. Bien qu'il existe une fonctionnalité d'importation dans Ranger pour les politiques de chargement en bloc, il n'y a aucun moyen d'exporter des ACL à partir de HBase dans le format que Ranger comprend (spécifiquement formaté JSON/CSV).