1. Keystone이란?
오픈스택(OpenStack)은 클라우드 인프라를 구축하기 위한 오픈소스 플랫폼으로, 다양한 컴퓨팅, 스토리지, 네트워킹 서비스를 제공합니다. 그중 Keystone은 오픈스택의 인증 및 권한 관리 서비스로, 사용자 인증과 서비스 간의 권한을 관리하는 핵심 컴포넌트입니다.
Keystone은 다음과 같은 기능을 수행합니다.
- 사용자 인증(Authentication): ID, 패스워드, 토큰을 이용한 인증
- 권한 부여(Authorization): 프로젝트 및 역할 기반 액세스 제어(RBAC)
- 서비스 카탈로그(Service Catalog): 오픈스택 서비스 목록 및 엔드포인트 관리
- 다중 백엔드 지원: 데이터베이스, LDAP 등 다양한 인증 백엔드 지원
본 가이드에서는 Ubuntu 22.04를 기준으로 Keystone을 설치하고 구성하는 방법을 설명합니다.
2. Keystone 설치 전 준비
Keystone을 설치하기 전에 다음과 같은 시스템 요구 사항을 충족해야 합니다.
2.1 시스템 요구 사항
- 운영 체제: Ubuntu 22.04 또는 RHEL 9
- RAM: 최소 4GB
- CPU: 최소 2 vCPU
- 디스크 공간: 최소 10GB
- 데이터베이스: MariaDB 또는 MySQL
- 메시지 큐: RabbitMQ
- Memcached: Keystone 캐싱 서비스
2.2 패키지 업데이트 및 필수 패키지 설치
먼저, 패키지를 최신 상태로 업데이트하고 필수 패키지를 설치합니다.
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-openstackclient mariadb-server rabbitmq-server memcached python3-memcache
3. Keystone 설치 및 데이터베이스 설정
3.1 MariaDB 설정
MariaDB를 설치하고 보안을 강화한 후, Keystone 데이터베이스를 생성합니다.
sudo mysql_secure_installation
이후, Keystone 데이터베이스 및 사용자 생성:
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KESTONE_DB_PASSWORD';
FLUSH PRIVILEGES;
3.2 Keystone 설치
Keystone 패키지를 설치합니다.
sudo apt install -y keystone
4. Keystone 구성 및 서비스 시작
4.1 Keystone 설정 파일 수정
Keystone의 기본 설정 파일인 /etc/keystone/keystone.conf
를 수정합니다.
sudo nano /etc/keystone/keystone.conf
아래 내용을 수정합니다.
[database]
connection = mysql+pymysql://keystone:KESTONE_DB_PASSWORD@localhost/keystone
[token]
provider = fernet
4.2 Fernet 키 초기화
Keystone의 보안 토큰을 생성하기 위해 Fernet 키를 초기화합니다.
sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
4.3 데이터베이스 마이그레이션 수행
sudo keystone-manage db_sync
4.4 관리자 사용자 및 서비스 생성
관리자 사용자와 도메인을 생성합니다.
sudo keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://localhost:5000/v3/ \
--bootstrap-internal-url http://localhost:5000/v3/ \
--bootstrap-public-url http://localhost:5000/v3/ \
--bootstrap-region-id RegionOne
5. Keystone 서비스 실행 및 확인
5.1 Apache 서비스 재시작
sudo service apache2 restart
5.2 환경 변수 설정
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://localhost:5000/v3
export OS_IDENTITY_API_VERSION=3
5.3 Keystone 서비스 확인
openstack token issue
정상적으로 설정되었다면 토큰 정보가 출력됩니다.
6. Keystone 서비스 카탈로그 구성
Keystone을 사용하여 다른 오픈스택 서비스를 등록합니다.
openstack service create --name keystone --description "OpenStack Identity" identity
이후 서비스 엔드포인트를 등록합니다.
openstack endpoint create --region RegionOne identity public http://localhost:5000/v3
openstack endpoint create --region RegionOne identity internal http://localhost:5000/v3
openstack endpoint create --region RegionOne identity admin http://localhost:5000/v3
7. Keystone 사용자 및 프로젝트 관리
사용자와 프로젝트를 생성하여 권한을 부여할 수 있습니다.
7.1 프로젝트 생성
openstack project create --domain default --description "Demo Project" demo
7.2 사용자 생성
openstack user create --domain default --password DEMO_PASS demo
7.3 역할 부여
openstack role add --project demo --user demo member
8. Keystone 구성 최적화 및 보안 강화
8.1 토큰 만료 시간 조정
토큰 만료 시간을 조정하여 보안을 강화할 수 있습니다.
[token]
expiration = 3600
8.2 TLS(SSL) 활성화
Apache를 이용하여 SSL 인증서를 설정할 수 있습니다.
sudo a2enmod ssl
sudo service apache2 restart
9. 결론
이제 OpenStack Keystone이 성공적으로 구성되었습니다. Keystone은 인증 및 권한 관리를 담당하는 중요한 컴포넌트로, 다른 오픈스택 서비스와 연동하여 클라우드 환경을 안전하게 운영할 수 있습니다. 이후에는 Nova(컴퓨팅), Glance(이미지), Neutron(네트워크) 등의 서비스와 통합하여 오픈스택 클라우드를 완벽하게 구축할 수 있습니다.
'전산' 카테고리의 다른 글
# 오픈스택 Horizon 구성하기 (0) | 2025.04.01 |
---|---|
# 오픈스택 Glance 구성하기 (0) | 2025.04.01 |
# 오픈스택 Swift 구성하기 (0) | 2025.04.01 |
# 오픈스택 Cinder 구성하기 (0) | 2025.04.01 |
# 오픈스택 Neutron 구성하기: 네트워크 설정 완벽 가이드 (0) | 2025.04.01 |