Keystone

인증을 관리하는 서비스 : Keyston


인증을 관리하는 서비스 : Keystone

  • Keystone은 인증 토큰을 비롯해 테넌트 및 사용자 관리, 서비스의 엔드포인트 URL 등을 관리하는 서비스
  • Keystone은 openstack의 백엔드에서 RBAD ( Role Based Access Control )을 통해 사용자의 접근을 제어하는 등의 인증 ( Identify ) 서비스로 사용되며 다음과 같은 기능으로 이루어져 있음

 

Keystone의 구성요소

keystone

구성요소 역할
user 사람 또는 오픈 스택 서비스를 이용하는 서비스 ( nova, neutron, cinder 등 )을 의미
  User은 특정 프로젝트에 할당할 수 있으며, 증복을 허용하지 않음
   
Authentication 사용자의 신분을 확인하는 절차로, 특정 값을 통해 Keystone이 이를 검증
  보통 인증을 위한 자료로는 ID, PW가 사용되며 Keystone은 인증확인 시 인증토큰을 방행
   
Token RBAD의 신분을 증명하기 위해 사용되는 텍스트 데이터
Token type fernet, uuid, pki, pkiz
  어떤 자원에 접근이 가능한지 범위가 지정되어 있음 ( 시간 제한 있음 )
   
Project Keystone V2까지 Tenant라는 이름으로 사용 ( V3 이후 Project )
  어떤 자원이나 어플리케이션에 대한 권리를 가진 보안그룹
  프로젝트는 특정 도메인에 의해 소유
   
Endpoint 사용자가 서비스를 이용하기 위해 연결정보를 제공하는 접근 가능한 네트워크 주소 ( URL )
EndPoint type admin, internal, public
   
Role 사용자가 어떤 동작을 수행하도록 허용하는 규칙
  사용자가 가지는 역할은 사용자에게 발행된 토큰을 통해 확인
  사용자가 서비스를 호출하면, 서비스는 토큰에 저장된 사용자의 역할을 해석하여 허용유무 결정
   
Domain 구성요소를 효과적으로 관리하기 위한 사용자, 그룹, 프로젝트의 집합
  사용자들은 한 도메인의 관리자의 권한 등을 부여받는 방식으로 역할을 부여가능

Domain, Project, Group, User, Rule 개념과 관계

  • Keystone은 위에도 언급하였 듯이 사용자 인증 부분과 서비스 인증 부분을 관리
  • 사용자일 때는 사용자 ID와 패스워드, 사용자 권한의 롤( Roll )을 등록
  • 서비스일 때는 서비스를 등록하고 해당 서비스의 엔드포인트 URL을 등록
    • 도메인(Domain)은 서로 분리되어 있음
    • 각 도메인에는 프로젝트와 사용자가 있음
    • 프로젝트는 사용자를 가질 수 있음
    • 사용자에게는 롤이 있으며, 여러 프로젝트의 구성원이 될 수 있음
    • 관리자 롤(Admin Role)을 가진 사용자끼리, 일반 사용자롤(Member Role)을 가진 사용자간의 그룹핑(Grouping)을 할 수 있음

 

Keystone의 논리 아키텍처

  • Keystone의 논리 아키텍처는 토큰(Token), 카탈로그(Catalog), 정책(Poliy), 인증(Identity) 으로 구성

구성요소 역할
Token Backend 사용자별 토큰을 관리
Catalog Backend 오픈스택에서 모든 서비스의 엔드포인트 URL을 관리
Policy Backend 테넌트, 사용자 계정, 롤 등을 관리
Identity Backend 사용자 인증을 관리

 

Openstack에서 Keystone 위치

keystone

  • Openstack Keystone은 모든 서비스를 관장하는 위치
  • 모든 User, Service는 Keystone의 인증을 통해서만 요청, 응답이 가능
  • Keystone은 타인이나 해커에게서 시스템을 안전하게 보호하고 사용자 등록, 삭제, 권한 관리, 사용자가 접근할 수 있는 서비스 포인트 관리와 다른 API들의 인증 등의 전체적인 인증 프로세스를 관리하는 역할을 수행

 

RSS Feed
마지막 수정일자