yarn有哪些安全机制

yarn的安全机制:1、Hadoop 2.0认证机制;2、Hadoop 2.0授权机制。Hadoop 2.0中的认证机制采用Kerberos和Token两种方案,Delegation Token方案开销较小。

yarn有哪些安全机制-Worktile社区

1、Hadoop 2.0认证机制

在Hadoop中,Client与NameNode和Client与ResourceManager之间初次通信均采用了Kerberos进行身份认证,之后便换用Delegation Token以较小开销,而DataNode与NameNode和NodeManager与ResourceManager之间的认证始终采用Kerberos机制,默认情况下,Kerberos认证机制是关闭的,管理员可通过将参数hadoop.security.authentication设为“kerberos”(默认值为“simple”)启动它。接下来重点分析Hadoop中Token的工作原理以及实现。

Hadoop中Token的定义在org.apache.hadoop.security.token.Token中,每类Token存在一个少数TokenIdentifier标识,Token主要由下表列出的几个字段组成:

  • ResourceManager Delegation Token

ResourceManager Delegation Token是ResourceManager授权令牌,持有该令牌的应用程序及其发起的任务可以安全地与ResourceManager交互,比如持有该令牌的MapReduce作业可以在Task中再次向ResourceManager提交一个或者多个作业,进而形成一个MapReduce工作流,Hadoop生态系统中的工作流引擎Oozie正是采用了该策略。该令牌由ResourceManager中的组件RMDelegationTokenSecretManager管理和维护。

  • YARN Application Token

Application Token用于保证ApplicationMaster与ResourceManager之间的通信安全。该Token的密钥(masterKey)由ResourceManager传递给NodeManager,并保存到ApplicationMaster Container的私有目录下。当NodeManager启动ApplicationMaster时,所有的Token将被加载到ApplicationMaster的UGI中(NodeManager通过环境变量HADOOP_TOKEN_FILE_LOCATION将Token所在目录传递给UGI,这样UGI可以直接从文件中读取Token信息,所有其他Token的传递过程也是一样的),以在与ResourceManager通信时进行安全认证,需要注意的是,该Token的生命周期与ApplicationMaster实例一致。该Token由ResourceManager中的AMRMTokenSecretManager管理和维护。

  • YARN NodeManager Token

ApplicationMaster与NodeManager通信时,需出示NodeManager Token以表明ApplicationMaster自身的合法性。该Token是由ResourceManager通过RPC函数ApplcationMasterProtocol#allocate的应答中发送给ApplicationMaster的,它的密钥是各个NodeManager向ResourceManager注册(ResourceTracker#registerNodeManager)和发送心跳信息(ResourceTracker#nodeHeartbeat)时领取的。ApplicationMaster通过ContainerManagementProtocol协议与NodeManager通信时,需要出示该Token。该Token由ResourceManager中的NMTokenSecretManagerInRM管理和维护。

  • YARN Container Token

ApplicationMaster与NodeManager通信启动Container时,需出示Container Token以表明Container的合法性。该Token是由ResourceManager通过RPC函数ApplcationMasterProtocol#allocate的应答存放到Container中发送给ApplicationMaster的,它的密钥是各个NodeManager向ResourceManager注册和发送心跳信息时领取的。ApplicationMaster通过RPC函数ContainerManagementProtocol#startContainer与NodeManager通信启动Container时,需要出示相应的Container Token。该Token由ResourceManager中的RMContainerTokenSecretManager管理和维护。

  • YARN Localizer Token

Localizer Token用于保证ContainerLocalizer与NodeManager之间的通信安全。ContainerLocalizer负责在任务运行之前从HDFS上下载各类所需的文件资源,以构建一个本地执行环境,在文件下载过程中,ContainerLocalizer通过RPC协议LocalizationProtocol不断向NodeManager汇报状态信息。文件下载(也称为“本地化”)相关内容将在第7章介绍。

  • MapReduce Client Token

MapReduce Client Token用于保证MapReduce JobClient与MapReduce Application Master之间的通信安全。它由ResourceManager在作业提交时创建,并通过RPC函数ApplicationClientProtocol#getApplicationReport发送给JobClient。该Token由ResourceManager中的ClientToAMTokenSecretManagerInRM管理和维护。

  • MapReduce Job Token

MapReduce Job Token用于保证MapReduce的各个Task(包括Map Task和Reduce Task)与MapReduce Application Master之间的通信安全。它由ApplicationMaster创建,通过RPC函数ContainerManagementProtocol#startContainer传递给NodeManager,并由NodeManager写入Container的私有目录中,以在任务启动时加载到UGI中,从而使得任务可以安全地通过RPC协议TaskUmbilicalProtocol与ApplicationMaster通信。

  • MapReduce Shuffle Secret

MapReduce Shuffle Secret用于保证运行在各个NodeManager上的ShuffleHandler(内部封装了一个Netty Server)与Reduce Task之间的通信安全,即只有同一个作业的Reduce Task才允许读取该作业Map Task产生的中间结果,该安全机制是借助Job Token完成的。

2、Hadoop 2.0授权机制

Hadoop YARN的授权机制是通过访问控制列表(ACL)实现的,按照授权实体,可分为队列访问控制列表、应用程序访问控制列表和服务访问控制列表。

在正式介绍YARN授权机制之前,先要了解HDFS的POSIX风格的文件访问控制机制,这与当前Unix的一致,即将权限授予对象分为用户、同组用户和其他用户,且可单独为每类对象设置一个文件的读、写和可执行权限。此外,用户和用户组的关系是插拔式的,默认情况下共用Unix/Linux下的用户与用户组对应关系,这与YARN是一致的。

  • 队列访问控制列表

为了方便管理集群中的用户,YARN将用户/用户组分成若干队列,并可指定每个用户/用户组所属的队列。通常而言,每个队列包含两种权限:提交应用程序权限和管理应用程序权限(比如杀死任意应用程序),这些是通过配置文件etc/hadoop/mapred-queue-acls.xml设置的。

  • 应用程序访问控制列表

应用程序访问控制机制的设置方法已经在5.5节进行了介绍,主要方法是在客户端设置为每类ApplicationAccessType(目前只有VIEW_APP和MODIFY_APP两种类型)设置对应的用户列表,这些信息传递到ResourceManager端后,由它维护和使用。通常而言,为了用户使用方便,应用程序可对外提供一些特殊的可直接设置的参数(而不是通过API设置),以MapReduce作业为例,用户可以通过参数mapreduce.job.acl-view-job和mapreduce.job.acl-modify-job为每个作业单独设置查看和修改权限。需要注意的是,默认情况下,作业拥有者和超级用户(可配置)拥有以上两种权限且不可以修改。

  • 服务访问控制列表

服务访问控制是Hadoop提供的最原始的授权机制,它用于确保只有那些经过授权的客户端才能访问对应的服务。比如可通过为ApplicationClientProtocol协议设置访问控制列表以指定哪些用户可以向集群中提交应用程序。服务访问控制是通过控制各个服务之间的通信协议实现的,它通常发生在其他访问控制机制之前,比如文件权限检查、队列权限检查等。

延伸阅读

YARN是什么

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

文章标题:yarn有哪些安全机制,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/35588

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年1月15日 下午8:10
下一篇 2023年1月15日 下午8:31

相关推荐

  • 项目管理是基于团队管理的什么制度?

    项目管理中的团队管理是基于目标指向性、清晰的角色分配、沟通合作、和适应性。在这些方面中,沟通合作尤其关键,因为良好的沟通机制是项目成功的关键因素之一。 项目团队的有效沟通保证了信息的顺畅流动和团队成员间的紧密协作。这不仅包括日常的会议和报告,还包括对冲突的管理、团队建设活动以及技能提升培训。通过设置…

    2024年1月8日
    10200
  • 如何保护知识库中的敏感信息和隐私

    保护知识库中的敏感信息和隐私至关重要,不仅防止数据泄露、保障企业竞争力,还能遵守法律规定,维护个人和组织的声誉。要有效保护这些信息,应实施一系列策略和措施。核心观点包括:1、数据分类与风险评估,2、访问控制和权限管理,3、加密技术应用,4、定期的安全培训与意识提升,5、实施安全监控和审计,6、制定应…

    2023年11月15日
    15400
  • oa办公系统品牌

    标题:OA办公系统品牌 OA办公系统品牌之选涉及多方面,包括:1、系统功能及用户体验、2、技术支持与服务、3、安全性与稳定性、4、定制化与扩展性、5、性价比与投资回报。 在这些因素中,系统功能及用户体验尤为重要,由于它直接影响日常操作流畅性,需提供便捷的界面、丰富的模块和易于管控的工作流程等。 一、…

    2024年1月15日
    8200
  • 产品研发和管理

    产品研发和管理的要点包括:1、市场研究、2、用户需求分析、3、产品设计与创新、4、项目规划与执行、5、团队合作与沟通、6、质量控制、7、持续改进与迭代。特别需要关注的是产品设计与创新,这往往是产品能否吸引目标用户并在市场上脱颖而出的关键。 产品设计不仅关系到功能性,还要关注用户体验和产品美学,确保新…

    2024年1月10日
    8700
  • oa多人并行审批

    标题:OA多人并行审批的流程优势与实施策略 OA系统中多人并行审批提升决策效率、降低延误风险,实现跨部门共同审议的协同工作模式。具体而言,此流程能够1、加快审批进程;2、提升工作透明度;3、强化跨部门沟通;4、优化资源配置(本段将重点讲解)。优化资源配置的前提是多人并行审批可借由系统自动化功能,分配…

    2024年1月17日
    11200
  • 云原生应用如何支持移动端

    云原生应用为移动端提供后端支持、数据存储和同步、身份和访问管理、性能和优化、通知和推送服务、分析和监控、DevOps和CI/CD、安全性、与原生移动功能的集成等功能。通过利用云原生技术,开发者可以更容易地构建、部署和扩展移动应用,同时确保其可靠性、安全性和性能。云原生的核心是依赖于云计算技术来构建和运行可扩展的应用程序,这种技术非常适合支持移动端应用。

    2023年10月30日
    21800
  • 低代码软件可以开发OA系统吗?

    随着中小型企业持续拥抱数字化转型,对支持业务流程的定制软件应用程序的需求增加。而办公自动化(OA)系统是一个有助于自动执行重复性任务并简化工作流程的系统。按照传统的开发模式,开发OA系统可能既耗时又昂贵,需要经验丰富的开发人员从头开始创建自定义代码。然而,随着低代码开发平台的出现,中小企业现在有了另一种方法,可以使用更快、更具成本效益的应用程序开发。今天,小编就来聊聊低代码平台怎么开发OA系统?

    2023年9月5日
    22100
  • 音视频通信中的数据压缩和优化:RTC技术如何实现

    开发现代音视频通信应用时,数据压缩和优化 在确保高效传输和出色用户体验方面扮演着关键角色。音视频实时通信(RTC)技术通过一系列算法和协议,有效减少了传输过程中所需的带宽。1、其中举足轻重的部分为编解码技术(Codecs),它能够减小文件尺寸并在收发端转换数据。编解码技术不仅考虑到压缩率,而且还要兼…

    2023年12月22日
    18600
  • Python的self和C++like语言的this,哪种设计更好

    Python 中的 self 更好。理由如下:Python的类不能直接使用,只有通过创建(对象)才能发挥它的功能,每个实例(对象)都是独一无二的,它可以调用类的方法、。类就像灵魂附体一样,让实例(对象)有了自己(self)的功能。 Python 中的 self 更好 Python的类不能直接使用,只…

    2023年2月22日
    26300
  • C/C编程有哪些值得推荐的工具

    C/C编程值得推荐的工具有:1、VC++ 6.02、Code::Blocks3、Dev-C++4、Visual Studio5、C-Free。Microsoft Visual C++ 6.0,简称VC++6.0,是微软于1998年推出的一款C++编译器。Microsoft Visual C++是Mi…

    2023年2月6日
    63200

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部