±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË´óÊý¾Ý°²È«×é¼þ½éÉÜÓë¶Ô±È¡¢Apache
Rangerϵͳ¼Ü¹¹¼°Êµ¼ù¼°Rangerʵ¼ù¡£
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
Ò»¡¢ÒµÎñ±³¾°
´óÊý¾Ý¼¯Èº×î»ù±¾µÄ¾ÍÊÇÊý¾ÝÒÔ¼°ÓÃÓÚ¼ÆËãµÄ×ÊÔ´£¬ÊÇÒ»¸ö¹«Ë¾µÄ±¦¹ó²Æ¸»£¬ÎÒÃÇÐèÒª½«ËüÃǺܺùÜÀíÆðÀ´£¬½«ÏàÓ¦µÄÊý¾ÝºÍ×ÊÔ´¿ª·Å¸ø¶ÔÓ¦µÄÓû§Ê¹Ó㬷ÀÖ¹±»ÇÔÈ¡¡¢±»ÆÆ»µµÈ£¬Õâ¾ÍÉæ¼°µ½´óÊý¾Ý°²È«¡£
ÏÖ×´&&ÐèÇó
ĿǰÎÒÃÇ´óÊý¾Ý¼¯ÈºµÄÏÖ×´ÊÇ´¦ÓÚÂ㱼״̬£¬Ö»Òª¿ÉÒԵǼlinux»úÆ÷¼´¿É¶Ô¼¯Èº¼ÌÐøÏà¹Ø²Ù×÷
ËùÒÔ¼¯Èº°²È«¶ÔÓÚÎÒÃÇÀ´ËµÆÈÔÚü½Þ£¬Ö÷ÒªÐèÇóÓÐÒÔϼ¸¸ö·½Ã棺
Ö§³Ö¶à×é¼þ,×îºÃÄÜÖ§³Öµ±Ç°¹«Ë¾¼¼ÊõÕ»µÄÖ÷Òª×é¼þ£¬HDFS¡¢HBASE¡¢HIVE¡¢YARN¡¢STORM¡¢KAFKAµÈ
Ö§³ÖϸÁ£¶ÈµÄȨÏÞ¿ØÖÆ£¬¿ÉÒÔ´ïµ½HIVEÁУ¬HDFSĿ¼£¬HBASEÁУ¬YARN¶ÓÁУ¬STORMÍØÆË£¬KAKFAµÄTOPIC
¿ªÔ´£¬ÉçÇø»îÔ¾£¬°´ÕÕÏÖÓеļ¯Èº¸ÄÇé¿öÔì¸Ä¶¯¾¡¿ÉÄܵÄС£¬¶øÇÒÒª·ûºÏÒµ½çµÄÇ÷ÊÆ¡£
¶þ¡¢´óÊý¾Ý°²È«×é¼þ½éÉÜÓë¶Ô±È
Ŀǰ±È½Ï³£¼ûµÄ°²È«·½°¸Ö÷ÒªÓÐÈýÖÖ£º
Kerberos(Òµ½ç±È½Ï³£Óõķ½°¸)
Apache Sentry£¨ClouderaÑ¡Óõķ½°¸£¬cdh°æ±¾Öм¯³É£©
Apache Ranger(HortonworksÑ¡Óõķ½°¸£¬hdp·¢ÐаæÖм¯³É)
1¡¢Kerberos
KerberosÊÇÒ»ÖÖ»ùÓÚ¶Ô³ÆÃÜÔ¿µÄÉí·ÝÈÏÖ¤ÐÒ飬Ëü×÷Ϊһ¸ö¶ÀÁ¢µÄµÚÈý·½µÄÉí·ÝÈÏÖ¤·þÎñ£¬¿ÉÒÔΪÆäËü·þÎñÌṩÉí·ÝÈÏÖ¤¹¦ÄÜ£¬ÇÒÖ§³ÖSSO(¼´¿Í»§¶ËÉí·ÝÈÏÖ¤ºó£¬¿ÉÒÔ·ÃÎʶà¸ö·þÎñÈçHBase/HDFSµÈ)¡£

·þÎñÃû |
×÷ÓÃ |
KDC |
KerberosµÄ·þÎñ¶Ë³ÌÐò£¬ÓÃÓÚÑéÖ¤¸÷¸öÄ£¿é |
Client |
ÐèÒª·ÃÎÊ·þÎñµÄÓû§£¬KDCºÍService»á¶ÔÓû§µÄÉí·Ý½øÐÐÈÏÖ¤ |
Service |
¼´¼¯³ÉÁËKerberosµÄ·þÎñ£¬ÈçHDFS/YARN/HBaseµÈ |
KerberosÐÒé¹ý³ÌÖ÷ÒªÓÐÈý¸ö½×¶Î£¬µÚÒ»¸ö½×¶ÎClientÏòKDCÉêÇëTGT£¬µÚ¶þ½×¶ÎClientͨ¹ý»ñµÃµÄTGTÏòKDCÉêÇëÓÃÓÚ·ÃÎÊServiceµÄTicket,µÚÈý¸ö½×¶ÎÊÇClientÓ÷µ»ØµÄTicket·ÃÎÊService¡£
Óŵ㣺
·þÎñÈÏÖ¤£¬·ÀÖ¹broker datanode regionserverµÈ×é¼þð³ä¼ÓÈ뼯Ⱥ
½â¾öÁË·þÎñ¶Ëµ½·þÎñ¶ËµÄÈÏÖ¤£¬Ò²½â¾öÁ˿ͻ§¶Ëµ½·þÎñ¶ËµÄÈÏÖ¤
ȱµã£º
kerberosΪÁ˰²È«ÐÔʹÓÃÁÙʱticket£¬ÈÏÖ¤ÐÅÏ¢»áʧЧ£¬Óû§¶àµÄÇé¿öÏÂÖØÐÂÈÏÖ¤·±Ëö
kerberosÖ»ÄÜ¿ØÖÆÄã·ÃÎÊ»òÕ߾ܾø·ÃÎÊÒ»¸ö·þÎñ£¬²»ÄÜ¿ØÖƵ½ºÜϸµÄÁ£¶È£¬±ÈÈçhdfsµÄijһ¸ö·¾¶£¬hiveµÄijһ¸ö±í£¬¶ÔÓû§¼¶±ðÉϵÄÈÏÖ¤²¢Ã»ÓÐʵÏÖ(ÐèÒªÅäºÏLDAP)
2¡¢Apache Sentry
Apache SentryÊÇCloudera¹«Ë¾·¢²¼µÄÒ»¸öHadoop°²È«¿ªÔ´×é¼þ£¬ËüÌṩÁËϸÁ£¶È¼¶¡¢»ùÓÚ½ÇÉ«µÄÊÚȨ.

Óŵ㣺
SentryÖ§³ÖϸÁ£¶ÈµÄhdfsÔªÊý¾Ý·ÃÎÊ¿ØÖÆ£¬¶ÔhiveÖ§³ÖÁм¶±ðµÄ·ÃÎÊ¿ØÖÆ
Sentryͨ¹ý»ùÓÚ½ÇÉ«µÄÊÚȨ¼ò»¯Á˹ÜÀí£¬½«·ÃÎÊͬһÊý¾Ý¼¯µÄ²»Í¬ÌØÈ¨¼¶±ðÊÚÓè¶à¸ö½ÇÉ«
SentryÌṩÁËÒ»¸öͳһƽ̨·½±ã¹ÜÀí
SentryÖ§³Ö¼¯³ÉKerberos
ȱµã£º
×é¼þÖ»Ö§³Öhive,hdfs,impala ²»Ö§³Öhbase£¬yarn£¬kafka£¬stormµÈ
3¡¢Apache Ranger
Apache RangerÊÇHortonworks¹«Ë¾·¢²¼µÄÒ»¸öHadoop°²È«×é¼þ¿ªÔ´×é¼þ
Óŵ㣺
ÌṩÁËϸÁ£¶È¼¶£¨hiveÁм¶±ð£©
»ùÓÚ·ÃÎʲßÂÔµÄȨÏÞÄ£ÐÍ
ȨÏÞ¿ØÖƲå¼þʽ£¬Í³Ò»·½±ãµÄ²ßÂÔ¹ÜÀí
Ö§³ÖÉó¼ÆÈÕÖ¾£¬¿ÉÒԼǼ¸÷ÖÖ²Ù×÷µÄÉó¼ÆÈÕÖ¾£¬ÌṩͳһµÄ²éѯ½Ó¿ÚºÍ½çÃæ
·á¸»µÄ×é¼þÖ§³Ö(HDFS,HBASE,HIVE,YARN,KAFKA,STORM)
Ö§³ÖºÍkerberosµÄ¼¯³É
ÌṩÁËRest½Ó¿Ú¹©¶þ´Î¿ª·¢
4¡¢ÎªÊ²Ã´ÎÒÃÇÑ¡ÔñRanger
¶à×é¼þÖ§³Ö(HDFS,HBASE,HIVE,YARN,KAFKA,STORM)£¬»ù±¾¸²¸ÇÎÒÃÇÏÖÓм¼ÊõÕ»µÄ×é¼þ
Ö§³ÖÉó¼ÆÈÕÖ¾£¬¿ÉÒԺܺõIJéÕÒµ½ÄĸöÓû§ÔÚÄĄ̈»úÆ÷ÉÏÌá½»µÄÈÎÎñÃ÷ϸ£¬·½±ãÎÊÌâÅŲ鷴À¡
ÓµÓÐ×Ô¼ºµÄÓû§Ìåϵ£¬¿ÉÒÔÈ¥³ýkerberosÓû§Ìåϵ£¬·½±ãºÍÆäËûϵͳ¼¯³É£¬Í¬Ê±Ìṩ¸÷Àà½Ó¿Ú¿ÉÒÔµ÷ÓÃ
×ÛÉÏ£ºÎÒÃÇ¿¼Âǵ½ºÍ¿ª·Åƽ̨µÄ¼¯³É£¬ÒÔ¼°ÎÒÃǵļ¼ÊõÕ»ºÍ¼¯Èº²Ù×÷µÄÉó¼ÆµÈ¼¸¸öÎÊÌâ×îÖÕÑ¡ÓÃÁËapache
ranger
Èý¡¢Apache Rangerϵͳ¼Ü¹¹¼°Êµ¼ù
1¡¢¼Ü¹¹½éÉÜ 
2¡¢×é¼þ½éÉÜ
RangerAdmin
ÒÔRESTFULÐÎʽÌṩ²ßÂÔµÄÔöɾ¸Ä²é½Ó¿Ú£¬Í¬Ê±ÄÚÖÃÒ»¸öWeb¹ÜÀíÒ³Ãæ¡£
Service Plugin
ǶÈëµ½¸÷ϵͳִÐÐÁ÷³ÌÖУ¬¶¨ÆÚ´ÓRangerAdminÀÈ¡²ßÂÔ£¬¸ù¾Ý²ßÂÔÖ´ÐзÃÎʾö²ßÊ÷£¬²¢ÇҼǼ·ÃÎÊÉó¼Æ
²å¼þÃû³Æ |
°²×°½Úµã |
Hdfs-Plugin |
NameNode |
Hbase-Plugin |
HMaster+HRegionServer |
Hive-Plugin |
HiveServer2 |
Yarn-Plugin |
ResourceManager |
Ranger-SDK
¶Ô½Ó¿ª·Åƽ̨£¬ÊµÏÖ¶ÔÓû§¡¢×é¡¢²ßÂԵĹÜÀí
3¡¢È¨ÏÞÄ£ÐÍ
·ÃÎÊȨÏÞÎÞ·ÇÊǶ¨ÒåÁË¡±Óû§-×ÊÔ´-ȨÏÞ¡°ÕâÈýÕß¼äµÄ¹ØÏµ£¬Ranger»ùÓÚ²ßÂÔÀ´³éÏóÕâÖÖ¹ØÏµ£¬½ø¶øÑÓÉì³ö×Ô¼ºµÄȨÏÞÄ£ÐÍ¡£¡±Óû§-×ÊÔ´-ȨÏÞ¡±µÄº¬ÒåÏê½â£º
Óû§
ÓÉUser»òGroupÀ´±í´ï£¬User´ú±í·ÃÎÊ×ÊÔ´µÄÓû§£¬Group´ú±íÓû§ËùÊôµÄÓû§×é¡£
×ÊÔ´
²»Í¬µÄ×é¼þ¶ÔÓ¦µÄÒµÎñ×ÊÔ´ÊDz»Ò»ÑùµÄ£¬±ÈÈç
HDFSµÄFilePath
HBaseµÄTable£¬Column-family£¬Column
HiveµÄDatabase£¬Table£¬Column
YarnµÄ¶ÔÓ¦µÄÊÇQueue
ȨÏÞ
ÓÉ(AllowACL, DenyACL)À´±í´ï£¬ÀàËÆ°×Ãûµ¥ºÍºÚÃûµ¥»úÖÆ£¬AllowACLÓÃÀ´ÃèÊöÔÊÐí·ÃÎʵÄÇé¿ö£¬DenyACLÓÃÀ´ÃèÊö¾Ü¾ø·ÃÎʵÄÇé¿ö,²»Í¬µÄ×é¼þ¶ÔÓ¦µÄȨÏÞÒ²ÊDz»Ò»ÑùµÄ¡£
²å¼þ |
ȨÏÞÏî |
Hdfs |
Read Write Execute |
Hbase |
Read Write Create
Admin |
Hive |
Select Create
Update Drop Alter Index Lock Read Write All |
Yarn |
submit-app admin-queue |
4¡¢È¨ÏÞʵÏÖ
Ranger-AdminÖ°Ôð£º
¹ÜÀíÔ±¶ÔÓÚ¸÷·þÎñ²ßÂÔ½øÐй滮£¬·ÖÅäÏàÓ¦µÄ×ÊÔ´¸øÏàÓ¦µÄÓû§»ò×飬´æ´¢ÔÚdbÖÐ
Service PluginÖ°Ôð£º
¶¨ÆÚ´ÓRangerAdminÀÈ¡²ßÂÔ
¸ù¾Ý²ßÂÔÖ´ÐзÃÎʾö²ßÊ÷
ʵʱ¼Ç¼·ÃÎÊÉó¼Æ
²ßÂÔÖ´Ðйý³Ì£º

²ßÂÔÓÅÏȼ¶£º
ºÚÃûµ¥ÓÅÏȼ¶¸ßÓÚ°×Ãûµ¥
ºÚÃûµ¥ÅųýÓÅÏȼ¶¸ßÓÚºÚÃûµ¥
°×Ãûµ¥ÅųýÓÅÏȼ¶¸ßÓÚ°×Ãûµ¥
¾ö²ßÏ·ţº
Èç¹ûûÓÐpolicyÄܾö²ß·ÃÎÊ£¬Ò»°ãÇé¿öÊÇÈÏΪûÓÐȨÏ޾ܾø·ÃÎÊ£¬È»¶øRanger»¹¿ÉÒÔÑ¡Ôñ½«¾ö²ßÏ·ŸøÏµÍ³×ÔÉíµÄ·ÃÎÊ¿ØÖƲã
×é¼þ¼¯³É²å¼þÔÀí£º

rangerͨ¹ýʵÏÖ¸÷×é¼þÀ©Õ¹µÄȨÏÞ½Ó¿Ú£¬½øÐÐȨÏÞÑéÖ¤
HdfsʵÏÖÔÀí
hdfs-site.xml»áÐÞ¸ÄÈçÏÂÅäÖãº
<property>
<name>dfs.permissions.enabled</name>
<value>true</value> </property>
<property> <name>dfs.permissions</name>
<value>true</value> </property>
<property> <name>dfs.namenode.inode.attributes.provider.class</name>
<value>org.apache.ranger.authorization .hadoop.RangerHdfsAuthorizer</value>
</property> |
¼ÓÔØ¹ý³Ì£º

HbaseʵÏÖÔÀí
ÔÚ°²×°Íêhbase²å¼þºó£¬hbase-site.xml»áÐÞ¸ÄÈçÏÂÅäÖãº
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property> <name>hbase.coprocessor.master.classes</name>
<value>org.apache.ranger.authorization.hbase
.RangerAuthorizationCoprocessor </value>
</property>
<property>
<name> hbase.coprocessor.region.classes
</name>
<value>org.apache.ranger.authorization.hbase
.RangerAuthorizationCoprocessor </value>
</property> |
¼ÓÔØ¹ý³Ì£º

HiveʵÏÖÔÀí
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property> <name>hive.security.authorization.manager</name>
<value>org.apache.ranger.authorization.hive.authorizer
.RangerHiveAuthorizerFactory </value>
</property> |
¼ÓÔØ¹ý³Ì£º

YarnʵÏÖÔÀí
yarn-site.xml
<property>
<name>yarn.acl.enable</name> <value>true</value>
</property>
<property> <name>yarn.authorization-provider</name>
<value> org.apache.ranger.authorization.yarn.authorizer
.RangerYarnAuthorizer </value>
</property> |
¼ÓÔØ¹ý³Ì£º

ËÄ¡¢Rangerʵ¼ù
1¡¢×éȨÏÞʵÏÖ
ÓÉÓÚÔÚµ÷Óø÷·þÎñ¹ý³ÌÖÐʹÓÃhdfs shell¡¢hbase-shell¡¢hive-jdbcÖ»ÄÜ»ñÈ¡µ½Óû§ÐÅÏ¢£¬ÔÚÖ»ÓÐ×é²ßÂÔʱ»áÆ¥Åä²»³É¹¦£¬ÈÏΪûÓÐȨÏÞ£¬ÊµÏÖ°ì·¨ÊǼÓÈëldap×é¼þͬ²½Óû§×éÐÅÏ¢£¬ÕâÑùÔö¼ÓÁËϵͳµÄ¸´ÔÓÐÔ£¬ÎÒÃÇͨ¹ý¸Äдranger-admin´úÂ룬ÔÚ¿Í»§¶Ëplugin»ñÈ¡²ßÂÔʱ£¬½«×éȨÏÞ¸³ÓèÓû§£¬ÕâÑù¾ÍʵÏÖÁË×é²ßÂÔ¹¦ÄÜ¡£ |