상세 컨텐츠

본문 제목

Keystone

Cloud/Openstack

by yellowmarine 2020. 10. 8. 17:13

본문

Keystone

역할

  • 기본적인 user 인증 서비스로써 authN(유저 인증), authZ(서비스권한 인증)을 사용한다.

  • 각 유저에 대한 인증 후 토큰을 발급 및 이를 통해 서비스를 제공 받을 수 있다.

  • 각 유저들은 각 component들에 대한 endpoint들이 등록이 되어있어야 특정 component에 대한 서비스를 제공 받을 수 있다.

구조

  • 기본적인 데이터 베이스 저장소(mysql, mariaDB 등)을 사용한다.

  • LDAP을 사용하여 기존의 유저의 인증 서비스 제공 가능.

  • 모든 통신은 REST API를 사용한다.

  • 위의 API 통신을 위해 MessageQueue(RabbitMQ 등)을 사용한다.

구성 요소

  • Domain

    • 최상위 구성요소로써 각각의 Component 서비스, project, user들을 관리 할 수 있다.

    • 여러 domain을 구성 할 수 있으며 각각의 도메인은 unique해야한다.

  • Project

    • 특정한 자원에 관한 권리를 가진 보안그룹

    • user, service등을 소유 할 수 있다.

  • Endpoint

    • 각 자원에 대한 endpoint(접근 가능한 네트워크 주소)들을 저장하고 관리한다.

    • 유형

      • Admin : openstack의 host들만이 접근 가능

      • Internal : 내부 서비스간에만 접근 가능

      • Public : 외부의 user들도 접근 가능

  • Token

    • 각각의 user들이 인증 위해 사용된다.

    • 접근 가능한 endpoint들이 지정되어 있다.

    • 토큰의 유형 : fernet, uuid 등이 있다.

  • Role

    • 3가지 유형의 role이 존재한다.

    • Admin : 생성, 삭제 등과 같은 모든 동작을 다 수행할 수 있다.

    • Member : 생성 기능은 수행 할 수 있지만 삭제의 기능은 수행 불가

    • Reader : 읽기 기능만 가능 하다.

동작방식

  1. User는 keystone 서버로 부터 유저 인증 후 token ID(unscoped)를 발급 받는다.

  2. User는 token ID(unscoped)를 통해 keystone에 접속 가능한 프로젝트 목록을 요청

  3. keystone은 사용 가능한 Endpoint 목록을 작성

  4. keystone에서 user의 요청 프로젝트 목록과 사용 가능한 프로젝트를 비교 한 후 token ID(scoped)를 전송

  5. 그 후 user의 요청 시 요청 받은 서비스는 keystone에 인증 요청 후 검증

  6. 서비스 제공

'Cloud > Openstack' 카테고리의 다른 글

Region & AZ  (0) 2020.10.08
Neutron  (0) 2020.10.08
Nova  (0) 2020.10.08
Placement  (0) 2020.10.08
Glance  (0) 2020.10.08

관련글 더보기