跨域互信

更新时间:2025-02-11 02:51:47

本文为您介绍如何实现Kerberos的跨域互信(Cross Realm),即不同Kerberos集群之间的互相访问。

操作步骤

本文以Cluster-A跨域访问Cluster-B中的服务为例介绍实现跨域互信的操作步骤。配置完成后,Cluster-A在获取到本集群KDC授予的TGT(Ticket Granting Ticket)后,能够跨域访问Cluster-B中的服务。本文配置的跨域互信是单向的,即Cluster-B无法跨域访问Cluster-A上的服务,如果需要实现双向跨域互信,按照同样的方法交换配置即可。

步骤一:工作准备

分别进入Cluster-ACluster-B的集群服务中的Kerberos配置页面,从krb5.conf中获取kdc_hostsrealm。本文使用的两个集群信息示例如下:

  • Cluster-A的相关信息:

    • hostname:master-1-1.1234.cn-hangzhou.emr.aliyuncs.com

    • realm:EMR.1234.COM

  • Cluster-B的相关信息:

    • hostname:master-1-1.6789.cn-hangzhou.emr.aliyuncs.com

    • realm:EMR.6789.COM

步骤二:添加跨域认证Principal

  1. 使用SSH方式登录集群Cluster-Amaster-1-1节点。

  2. 使用root用户执行以下命令。

    kadmin.local -q "addprinc -pw 123456 krbtgt/EMR.6789.COM@EMR.1234.COM"

    示例中各参数说明如下:

    • 123456:初始密码,可以自定义。

    • EMR.1234.COM:Cluster-Arealm。

    • EMR.6789.COM:Cluster-Brealm。

  3. 登录集群Cluster-Bmaster-1-1节点,重复上述步骤1和步骤2,添加跨域认证Principal。

步骤三:配置Cluster-Akrb5.conf

通过SSH方式依次连接到Cluster-A集群内的所有节点,并在每个节点上修改/etc/krb5.conf配置文件。修改完成后,不需要重启服务。

  • other_realms

    EMR.C-BE49B6BBAEEA****.COM = {
      kdc = 192.168.xx.xx:88
      admin_server = 192.168.xx.xx:749
    }
  • domains

    .1234.cn-hangzhou.emr.aliyuncs.com = EMR.1234.COM
    .6789.cn-hangzhou.emr.aliyuncs.com = EMR.6789.COM
  • capaths

    EMR.1234.COM = {
       EMR.6789.COM = .
    }
    EMR.6789.COM = {
       EMR.1234.COM = .
    }
说明

如果在Cluster-A上需要运行作业访问Cluster-B,则还需要重启Cluster-BYARN。

步骤四:访问Cluster-B服务

此时,在Cluster-A上,您可以使用Cluster-AKerberos Ticket,访问Cluster-B的服务。

  1. 创建测试需要的Principal,并生成Ticket。

    kadmin.local -q  "addprinc -pw 123456 test"
    kinit test
  2. 访问Cluster-BHDFS服务。

    hdfs dfs -ls hdfs://master-1-1.6789.cn-hangzhou.emr.aliyuncs.com:9000/
  • 本页导读 (1)
  • 操作步骤
  • 步骤一:工作准备
  • 步骤二:添加跨域认证Principal
  • 步骤三:配置Cluster-A的krb5.conf
  • 步骤四:访问Cluster-B服务
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等