Hadoop 아래의 데이터 노드는 전통적으로 데이터 노드에 Keytab 파일을 생성하여 보호됩니다. Ozone을 통해 우리는 데이터 노드 인증서 사용으로 이동했습니다. 즉, 안전한 Ozone 클러스터의 경우 데이터 노드의 Kerberos가 필요하지 않습니다.
그러나 기존 Kerberos 기반 인증을 지원하여 현재 사용자 집합이 쉽게 사용할 수 있도록합니다. HDFS 구성 키는 hdfs-site.xml에 설정된 다음과 같습니다.
특성기술
dfs.datanode.kerberos.principal | 데이터 노드 서비스 주체. 예 : dn/_HOST@REALM.COM |
dfs.datanode.keytab.file | 데이터 노드 데몬이 서비스 주체로 로그인하는 데 사용하는 keytab 파일입니다. |
hdds.datanode.http.kerberos.principal | Datanode http 서버 서비스 주체. |
hdds.datanode.http.kerberos.keytab | 데이터 노드 http 서버가 서비스 주체로 로그인하는 데 사용하는 keytab 파일입니다. |
데이터 노드가 보안되는 방법.
오존에서 데이터 노드가 부팅되고 SCM의 주소를 발견하면 데이터 노드가 가장 먼저하는 일은 개인 키를 만들고 SCM에 인증서 요청을 보내는 것입니다.
Kerberos를 통한 인증서 승인 현재 모델
SCM에는 기본 제공 CA가 있으며 SCM은이 요청을 승인해야합니다. 데이터 노드에 이미 Kerberos 키 탭이있는 경우 SCM은 Kerberos 자격 증명을 신뢰하고 인증서를 자동으로 발급합니다.
수동 승인 진행 중
밴드 새 데이터 노드이고 Kerberos 키 탭이 데이터 노드에없는 경우 데이터 노드 ID 인증서에 대한이 요청은 관리자의 승인을 위해 대기열에 추가됩니다 (이 작업은 진행 중이며 아직 오존에서 커밋되지 않음). 즉, 신뢰 웹은 클러스터 관리자가 설정합니다.
자동 승인 진행 중
Kubernetes와 같은 컨테이너 오케 스트레이터에서 실행하는 경우, 데이터 노드 컨테이너의 ID를 증명하기 위해 부팅시 데이터 노드에 제공되는 일회용 토큰을 만들기 위해 Kubernetes에 의존합니다 (이 또한 진행 중입니다.).
인증서가 발급되면 데이터 노드가 안전하고 Ozone 관리자가 블록 토큰을 발급 할 수 있습니다. 데이터 노드 인증서가 없거나 SCM의 루트 인증서가 데이터 노드에없는 경우 데이터 노드는 자신을 등록하고 SCM의 루트 인증서를 다운로드하고 자체 인증서를 가져옵니다.