Keystone

띵기·2025년 8월 6일

OpenStack (구성요소)

목록 보기
2/8

Keystone (Identity Service)

  • 정의: OpenStack의 인증·권한 관리 서비스
  • 기능
    • 사용자 인증 (로그인)
    • 토큰 발급 및 관리
    • 프로젝트·역할 기반 권한 제어
    • OpenStack 전체의 SSO(단일 로그인) 구현
  • AWS 비교: IAM(Identity and Access Management)과 유사

구조

  • 사용자(User), 프로젝트(Project), 역할(Role)의 관계
  • OpenStack CLI나 API는 Keystone을 통해 인증 토큰을 먼저 받아야 함
  • 그 토큰을 가지고 다른 컴포넌트(Nova, Neutron 등)에 접근함
[사용자] -- 로그인 요청 --> [Keystone]
          <--- 토큰 발급 ----
[사용자] -- 토큰 전달 --> [Nova / Glance / Neutron / …]
  • 모든 OpenStack API/CLI 요청은 Keystone 토큰을 거쳐야 실행 가능

구성 요소

용어의미
User로그인 계정 (ex. admin, demo)
Project자원 격리 단위 (ex. admin, dev-team)
Role권한 수준 (ex. admin, member)
Domain사용자/프로젝트를 묶는 그룹 (기본은 default)
Token로그인 성공 후 발급되는 인증 수단

Keystone의 역할

사용 사례설명
CLI 사용 전 openrc 불러오기내부적으로 Keystone에 로그인해서 토큰 발급
Horizon 로그인Keystone 인증을 거쳐 대시보드 접근
사용자 계정 분리부서, 팀별로 프로젝트 단위로 자원 격리
권한 제어admin, readonly 등 다양한 역할 배정 가능

주요 명령어

현재 로그인 상태 확인

openstack token issue

사용자 목록 확인

openstack user list

프로젝트 목록 확인

openstack project list

역할(Role) 목록 확인

openstack role list

사용자에게 역할 부여

openstack role add --user demo --project demo member

권한 확인

openstack role assignment list --user <user_id> --project <project_id>

서비스 등록 확인

openstack catalog list
openstack endpoint list

운영 팁

  • OpensRC 파일 관리

    • source admin-openrc.sh or source demo-openrc.sh
    • 프로젝트별로 openrc 파일 분리해서 관리하면 편리
  • 토큰 만료 문제

    • Keystone 토큰은 기본 1시간 유효 > 장시간 세션 시 재발급 필요
  • 로그 확인

    • /var/log/kolla/keystone/keystone.log
    • 인증 실패(401 Unauthorized) 시 가장 먼저 확인할 위치

학습

  • Federated Identity (연합 인증): LDAP, SAML, OIDC 연동
  • TOKEN 종류: UUID, Fernet 토큰 방식 차이
  • Policy.json/ policy.yaml: 서비스별 권한 제어 정책 구조
  • Keystone HA 구성: 다중 Keystone 서비스와 Galera DB 기반 고가용성
  • RBAC 세분화: 프로젝트별, 서비스별 권한 설계 방법
profile
노력보다는 즐기는 사람이 되고 싶습니다.

0개의 댓글