云服务器内容精选

  • 基于角色的权限控制 MRS 集群通过采用RBAC(role-based access control,基于角色的权限控制)方式对大数据系统进行权限管理,将系统中各组件零散的权限管理功能集中呈现和管理,对普通用户屏蔽掉了内部的权限管理细节,对管理员简化了权限管理的操作方法,提升权限管理的易用性和用户体验。 MRS集群权限模型由“用户-用户组-角色-权限”四类对象构成。 图1 权限模型 权限 由组件侧定义,允许访问组件某个资源的能力。不同组件针对自己的资源,有不同的权限。 例如: HDFS针对文件资源权限,有读、写、执行等权限。 HBase针对表资源权限,有创建、读、写等权限。 角色 组件权限的一个集合,一个角色可以包含多个组件的多个权限,不同的角色也可以拥有同一个组件的同一个资源的权限。 用户组 用户的集合,当用户组关联某个或者多个角色后,该用户组内的用户就将拥有这些角色所定义的组件权限。 不同用户组可以关联同一个角色,一个用户组也可以不关联任何角色,该用户组原则上将不具有任何组件资源的权限。 部分组件针对特定的默认用户组,系统默认赋予了部分权限。 用户 系统的访问者,每个用户的权限由该用户关联的用户组和角色所对应的权限构成,用户需要加入用户组或者关联角色来获得对应的权限。
  • 权限机制 MRS集群采用LDAP存储用户和用户组的数据;角色的定义信息保存在关系数据库中,角色和权限的对应关系则保存在组件侧。 MRS使用Kerberos进行统一认证。 用户权限校验流程大致如下: 客户端(用户终端或MRS组件服务)调用MRS认证接口。 MRS使用登录用户名和密码,到Kerberos进行认证。 如果认证成功,客户端会发起访问服务端(MRS组件服务)的请求。 服务端会根据登录的用户,找到其属于的用户组和角色。 服务端获得用户组拥有的所有权限和角色拥有的所有权限的并集。 服务端判断客户端是否有权限访问其请求的资源。 示例场景(RBAC): HDFS中有三个文件fileA、fileB、fileC。 定义角色roleA对fileA有读和写权限,角色roleB对fileB有读权限。 定义groupA属于roleA;groupB属于roleB。 定义userA属于groupA和roleB,userB属于GroupB。 当userA登录成功并访问HDFS时: HDFS获得useA属于的所有角色(roleB)。 HDFS同时还会获得userA属于的所有用户组所属于的角色(roleA)。 此时,userA拥有roleA和roleB对应权限的并集。 因此对于fileA,则userA有读写权限;对fileB,有读权限;对于fileC,无任何权限。 同理userB登录后: userB只拥有roleB对应的权限。 对于fileA,则userB无权限;对fileB,有读权限;对于fileC,无任何权限。
  • 基于策略的权限控制 Ranger组件通过PBAC(policy-based access control,基于策略的权限控制)方式进行权限管理,可对HDFS、Hive、HBase等组件进行更加细粒度的数据访问控制。 组件同时只支持一种权限控制机制,当组件启用Ranger权限控制策略后,通过 FusionInsight Manager创建的角色中关于该组件的权限将失效(HDFS与Yarn的组件ACL规则仍将生效),用户需通过Ranger管理界面添加策略进行资源的赋权。 Ranger的权限模型由多条权限策略组成,权限策略主要由以下几方面组成: 资源 组件所提供的可由用户访问的对象,例如HDFS的文件或文件夹、Yarn中的队列、Hive中的数据库/表/列等。 用户 系统的访问者,每个用户的权限由该用户关联的策略来获得。LDAP中的用户、用户组、角色信息会周期性的同步至Ranger。 权限 策略中针对资源可配置各种访问条件,例如文件的读写,具体可以配置允许条件、拒绝条件以及例外条件等。
  • 安全模式 安全模式的集群统一使用Kerberos认证协议进行安全认证。Kerberos协议支持客户端与服务端进行相互认证,提高了安全性,可有效消除使用网络发送用户凭据进行模拟认证的安全风险。集群中由KrbServer服务提供Kerberos认证支持。 Kerberos用户对象 Kerberos协议中,每个用户对象即一个principal。一个完整的用户对象包含两个部分信息:用户名和 域名 。在运维管理或应用开发的场景中,需要在客户端认证用户身份后才能连接到集群服务端。系统操作运维与业务场景中主要使用的用户分为“人机”用户和“机机”用户。二者主要区别在于“机机”用户密码由系统随机生成。 Kerberos认证 Kerberos认证支持两种方式:密码认证及keytab认证。认证有效时间默认为24小时。 密码认证:通过输入用户正确的密码完成身份认证。主要在运维管理场景中使用“人机”用户进行认证,命令为kinit 用户名。 keytab认证:keytab文件包含了用户principal和用户凭据的加密信息。使用keytab文件认证时,系统自动使用加密的凭据信息进行认证无需输入用户密码。主要在组件应用开发场景中使用“机机”用户进行认证。keytab文件也支持在kinit命令中使用。
  • 普通模式 普通模式的集群不同组件使用原生开源的认证机制,不支持kinit认证命令。FusionInsight Manager(含DBService、KrbServer和LdapServer)使用的认证方式为用户名密码方式。组件使用的认证机制如表1所示。 表1 组件认证方式一览表 服务 认证方式 IoTDB simple认证 CDL 无认证 ClickHouse simple认证 Flume 无认证 HBase WebUI:无认证 客户端:simple认证 HDFS WebUI:无认证 客户端:simple认证 HetuEngine WebUI:无认证 客户端:无认证 Hive simple认证 Hue 用户名密码认证 Kafka 无认证 Loader WebUI:用户名密码认证 客户端:无认证 Mapreduce WebUI:无认证 客户端:无认证 Oozie WebUI:用户名密码认证 客户端:simple认证 Spark2x WebUI:无认证 客户端:simple认证 Storm 无认证 Yarn WebUI:无认证 客户端:simple认证 ZooKeeper simple认证 认证方式解释如下: “simple认证”:在客户端连接服务端的过程中,默认以客户端执行用户(例如操作系统用户“root”或“omm”)自动进行认证,管理员或业务用户不显式感知认证,不需要kinit完成认证过程。 “用户名密码认证”:使用集群中“人机”用户的用户名与密码进行认证。 “无认证”:默认任意的用户都可以访问服务端。
  • 同步 IAM 用户 创建用户并授权使用MRS服务,具体请参考创建IAM用户并授权使用MRS。 登录MRS控制台并创建集群,具体请参考自定义购买MRS集群。 在左侧导航栏中选择“现有集群”,单击集群名称进入集群详情页面。 在“概览”页签单击“IAM用户同步”右侧的“单击同步”进行IAM用户同步。 在弹窗“IAM用户同步”的“待同步”页面,搜索需要同步IAM用户所在的用户组,单击对应的用户组名称。在“用户”中勾选需要同步的IAM用户,单击“同步”。 如需同步所有的用户,在“待同步”中勾选“全部同步”即可。 如只勾选“用户组”,该用户组下的用户不会同步,必须勾选“用户组”下对应的用户名称才能同步。 在“IAM用户同步”页面会显示所有的用户组,所有灰色不能选择的用户组和用户则不能进行IAM用户同步。 同步请求下发后,返回MRS控制台在左侧导航栏中选择“操作日志”页面查看同步是否成功,日志相关说明请参考查看MRS云服务操作日志。 同步成功后,即可使用IAM同步用户进行后续操作。 当IAM用户的用户组的所属策略从MRS ReadOnlyAccess向MRS CommonOperations、MRS FullAccess、MRS Administrator变化时,由于集群节点的SSSD(System Security Services Daemon)缓存刷新需要时间,因此同步完成后,请等待5分钟,等待新修改策略生效之后,再进行提交作业。否则,会出现提交作业失败的情况。 当IAM用户的用户组的所属策略从MRS CommonOperations、MRS FullAccess、MRS Administrator向MRS ReadOnlyAccess变化时,由于集群节点的SSSD缓存刷新需要时间,因此同步完成后,请等待5分钟,新修改策略才能生效。 单击“IAM用户同步”右侧的“同步”后,集群详情页面会出现短时间空白,这是由于正在进行用户数据同步中,请耐心等待,数据同步完成后,页面将会正常显示。 安全集群提交作业:安全集群中用户可通过界面“作业管理”功能提交作业,具体请参考运行MapReduce作业。 集群详情页面页签显示完整(包含“组件管理”,“租户管理”和“备份恢复”)。 登录Manager页面。 使用admin账号登录Manager,具体请参考访问MRS集群Manager。 初始化IAM同步用户密码,具体请参考初始化MRS集群用户密码。 修改用户所在用户组绑定的角色,精确控制Manager下用户权限,具体请参考管理MRS集群用户组修改用户组绑定的角色,如需创建修改角色请参考添加角色。用户所在用户组绑定的组件角色修改后,权限生效需要一定时间,请耐心等待。 使用IAM同步用户及7.b初始化后的密码登录Manager。 当IAM用户权限发生变化时,需要执行4进行二次同步。对于系统用户,二次同步后用户的权限为IAM系统策略定义的权限和用户在Manager自行添加角色的权限的并集。对于自定义用户,二次同步后用户的权限以Manager配置的权限为准。 系统用户:如果IAM用户所在用户组全部都绑定系统策略(RABC策略和细粒度策略均属于系统策略),则该用户为系统用户。 自定义用户:如果IAM用户所在用户组只要有绑定任何自定义策略,则该用户为自定义用户。 取消IAM用户同步。 需要取消某个IAM用户同步时,在“已同步”的“用户”中勾选需要取消的用户名称,单击“取消同步”。 需要取消某个IAM用户组下的所有用户同步时,在“已同步”的“用户组”中勾选需要取消的用户组,单击“取消同步”。