13.3.6. Keystone
Keystone은 ID, 토큰, 카탈로그 및 정책 서비스를 제공하는 OpenStack 프로젝트입니다. OpenShift Container Platform 클러스터를 Keystone과 통합하여 사용자를 내부 데이터베이스에 저장하도록 구성된 OpenStack Keystone v3 서버와 공유 인증을 활성화할 수 있습니다. 이 구성을 통해 사용자는 Keystone 자격 증명을 사용하여 OpenShift Container Platform에 로그인할 수 있습니다.
새 OpenShift Container Platform 사용자가 Keystone 사용자 이름 또는 고유한 Keystone ID를 기반으로 하도록 Keystone과의 통합을 구성할 수 있습니다. 두 방법 모두 사용자는 Keystone 사용자 이름과 암호를 입력하여 로그인합니다. OpenShift Container Platform 사용자가 Keystone ID를 사용하면 더 안전합니다. Keystone 사용자를 삭제하고 그 사용자 이름으로 새 Keystone 사용자를 생성하는 경우, 새 사용자는 이전 사용자의 리소스에 액세스할 수 있습니다.
13.3.6.1. 마스터에서 인증 구성
다음과 같은 사항이 있을 수 있습니다.
Openshift 설치를 이미 완료한 다음 /etc/origin/master/master-config.yaml 파일을 새 디렉토리(예:)로 복사합니다.
$ cd /etc/origin/master $ mkdir keystoneconfig; cp master-config.yaml keystoneconfig
OpenShift Container Platform을 아직 설치하지 않은 다음 OpenShift Container Platform API 서버를 시작하여 (미래) OpenShift Container Platform 마스터의 호스트 이름과 start 명령으로 생성한 구성 파일을 저장할 디렉터리를 지정합니다.
$ openshift start master --public-master=<apiserver> --write-config=<directory>
예를 들면 다음과 같습니다.
$ openshift start master --public-master=https://myapiserver.com:8443 --write-config=keystoneconfig
참고Ansible을 사용하여 설치하는 경우
identityProvider
구성을 Ansible 플레이북에 추가해야 합니다. 다음 단계를 사용하여 Ansible을 사용하여 설치한 후 수동으로 구성을 수정하는 경우 설치 도구 또는 업그레이드를 다시 실행할 때마다 수정 사항이 손실됩니다.
새 keystoneconfig/master-config.yaml 파일의
identityProviders
스탠자를 편집하고 예제KeystonePasswordIdentityProvider
구성을 복사하여 기존 스탠자를 교체합니다.oauthConfig: ... identityProviders: - name: my_keystone_provider 1 challenge: true 2 login: true 3 mappingMethod: claim 4 provider: apiVersion: v1 kind: KeystonePasswordIdentityProvider domainName: default 5 url: http://keystone.example.com:5000 6 ca: ca.pem 7 certFile: keystone.pem 8 keyFile: keystonekey.pem 9 useKeystoneIdentity: false 10
- 1
- 이 공급자 이름은 공급자 사용자 이름에 접두어로 지정되어 ID 이름을 형성합니다.
- 2
true인
경우 웹 이외의 클라이언트(예: CLI)의 인증되지 않은 토큰 요청이 이 프로바이더의WWW-Authenticate 챌린지
헤더가 전송됩니다.- 3
true인
경우 웹 콘솔과 같은 웹 클라이언트의 인증되지 않은 토큰 요청은 이 프로바이더가 지원하는 로그인 페이지로 리디렉션됩니다.- 4
- 위에서 설명한 대로 이 프로바이더의 ID와 사용자 오브젝트 간의 매핑 설정 방법을 제어합니다.
- 5
- Keystone 도메인 이름. Keystone에서는 사용자 이름이 도메인에 따라 다릅니다. 단일 도메인만 지원됩니다.
- 6
- Keystone 서버 연결에 사용하는 URL입니다(필수).
- 7
- 선택 사항: 구성된 URL에 대한 서버 인증서의 유효성을 검사하는 데 사용할 인증서 번들입니다.
- 8
- 선택 사항: 구성된 URL에 요청할 때 제공할 클라이언트 인증서입니다.
- 9
- 클라이언트 인증서의 키입니다.
certFile
이 지정된 경우 필수 항목입니다. - 10
true인
경우, Keystone 사용자 이름이 아닌 Keystone ID에서 사용자를 인증합니다. 사용자 이름으로 인증하려면false
로 설정합니다.
identityProviders
스탠자를 다음과 같이 수정합니다.-
Keystone 서버와 일치하도록 공급업체
이름
("my_keystone_provider")을 변경합니다. 이 이름은 공급자 사용자 이름에 접두어로 지정되어 ID 이름을 형성합니다. -
필요한 경우
mappingMethod
를 변경하여 공급자의 ID와 사용자 오브젝트 간의 매핑 설정 방법을 제어합니다. -
domainName
을 OpenStack Keystone 서버의 도메인 이름으로 변경합니다. Keystone에서 사용자 이름은 도메인에 따라 다릅니다. 단일 도메인만 지원됩니다. -
OpenStack Keystone 서버에 연결하는 데 사용할
URL
을 지정합니다. -
선택적으로 Keystone 사용자 이름 대신 Keystone ID로 사용자를 인증
하려면 useKeystoneIdentity
를true
로 설정합니다. -
선택적으로 구성된 URL의 서버 인증서의 유효성을 검사하기 위해 사용할
ca
를 인증서 번들로 변경합니다. -
선택적으로 구성된 URL에 요청할 때
certFile
을 클라이언트 인증서로 변경합니다. -
certFile
이 지정된 경우keyFile
을 클라이언트 인증서의 키로 변경해야 합니다.
-
Keystone 서버와 일치하도록 공급업체
- 변경 사항을 저장하고 파일을 종료합니다.
방금 수정한 구성 파일을 지정하여 OpenShift Container Platform API 서버를 시작합니다.
$ openshift start master --config=<path/to/modified/config>/master-config.yaml
구성되면 OpenShift Container Platform 웹 콘솔에 로그인하는 모든 사용자에게 Keystone 자격 증명을 사용하여 로그인하라는 메시지가 표시됩니다.