4.5. OpenID Connect(OIDC) 프로토콜을 사용한 Ceph 대시보드 SSO
Ceph 관리 스택은 nginx 및 oauth2-proxy 구성 요소를 사용하는 모듈식 서비스 기반 아키텍처를 사용하여 빌드됩니다.
OpenID Connect(OIDC) 프로토콜을 사용하는 Ceph Dashboard SSO는 Red Hat Ceph Storage 8.0의 기술 프리뷰 기능입니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 Red Hat은 해당 기능을 프로덕션용으로 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. 자세한 내용은 Red Hat 기술 프리뷰 기능에 대한 지원 범위를 참조하십시오.
Ceph 관리 게이트웨이(mgmt-gateway)는 Ceph 대시보드 및 모니터링 모두에 대해 통합된 액세스, 개선된 사용자 환경 및 고가용성을 제공합니다.
OAuth2 프록시(oauth2-proxy) 서비스는 향상된 보안, 원활한 SSO 및 중앙 집중식 인증 관리를 제공합니다.
자체적으로 mgmt-gateway 서비스를 활성화하여 클러스터에 단일 입력 지점을 제공하고 모니터링 및 대시보드의 고가용성을 제공하며 보안을 강화합니다. oauth2-proxy 와 함께 서비스를 활성화하여 SSO를 사용합니다.
SSO(Single Sign-On)가 구성된 경우, Ceph 관리 게이트웨이(mgmt-gateway) 및 OAuth2 프록시(oauth2-proxy)를 사용하여 oauth2-proxy 를 통해 사용자를 구성된 ID 공급자 (IdP)로 자동으로 전달합니다. 그런 다음 IdP는 인증 및 로그인을 실행합니다.
이 구성은 다음과 같은 이점을 제공합니다.
- 통합 액세스.
- 사용자 환경 개선
- Ceph 대시보드 및 모니터링에 대한 고가용성.
- 강화된 보안입니다.
- 원활한 SSO.
- 중앙 집중식 인증 관리.
Ceph 대시보드를 사용한 이 모듈식 SSO 솔루션 및 구현에 대한 자세한 내용은 OAuth2 Single Sign-On 활성화를 참조하십시오.
4.5.1. Ceph 관리 게이트웨이 사용(mgmt-gateway) 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 관리 게이트웨이(mgmt-gateway) 서비스는 모듈식 서비스 기반 아키텍처 설계를 제공합니다. cephadm 은 nginx를 기반으로 구축된 'mgmt-gatewa'y 서비스를 관리합니다. 이 게이트웨이는 Ceph 클러스터의 프런트 엔드 및 단일 진입점 역할을 하며 Ceph 대시보드 및 모니터링 스택을 비롯한 모든 Ceph 애플리케이션에 대한 통합 액세스 권한을 제공합니다.
Ceph 관리 게이트웨이 사용(mgmt-gateway)은 Red Hat Ceph Storage 8.0의 기술 프리뷰 기능입니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 Red Hat은 해당 기능을 프로덕션용으로 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. 자세한 내용은 Red Hat 기술 프리뷰 기능에 대한 지원 범위를 참조하십시오.
nginx를 사용하면 강력한 커뮤니티 지원과 높은 보안 표준으로 인해 보안이 강화되고 액세스 관리가 간소화됩니다. mgmt-gateway 서비스는 요청을 적절한 Ceph 애플리케이션 인스턴스로 라우팅하는 역방향 프록시 역할을 합니다. 인증을 위해 자체적으로 또는 OAuth2 프록시 서비스를 사용하여 Ceph 대시보드에 대한 SSO(Single-sign on) 액세스를 활성화합니다. OAuth2 프록시 서비스에 대한 자세한 내용은 OAuth2 프록시 (oauth2-proxy) 서비스 사용을 참조하십시오.
Ceph Management 게이트웨이를 사용하면 여러 가지 이점이 있습니다.
- 통합 액세스
- Ceph Management 게이트웨이를 사용하면 여러 가지 이점이 있습니다.
- 사용자 경험 개선
- 사용자는 더 이상 각 애플리케이션이 실행 중인 위치(IP 또는 호스트)를 추적할 필요가 없습니다.
- Ceph 대시보드의 고가용성
- Nginx HA(고가용성) 메커니즘은 Ceph 대시보드의 고가용성을 제공하는 데 사용됩니다.
- 모니터링을 위한 고가용성
- Nginx 고가용성 메커니즘은 모니터링을 위한 고가용성을 제공하는 데 사용됩니다.
mgmt-gateway 를 배포하면 보안이 강화됩니다. mgmt-gateway 서비스가 배포되면 사용자는 Ceph 대시보드를 통해 인증 없이 모니터링 서비스에 액세스할 수 없습니다. 서비스가 배포되면 Ceph 대시보드의 링크를 통해 Prometheus, Grafana 및 Alertmanager 애플리케이션에 액세스할 수 있습니다. 애플리케이션 링크로 이동하려면 Ceph 대시보드의 Administration(관리)Services 로 이동합니다.
mgmt-gateway 모드를 사용하면 Prometheus 및 Alertmanager에서 사용자가 고유한 사용자 및 암호를 정의해야 합니다. 기본값은 admin:admin입니다.
Nginx HA 메커니즘은 Ceph 대시보드 및 모니터링 스택을 포함하여 모든 Ceph 관리 애플리케이션에 고가용성을 제공하는 데 사용됩니다. mgmt-gateway 서비스는 관리자 장애 조치를 투명하게 처리하고 사용자를 활성 관리자로 리디렉션합니다.
모니터링을 사용하면 Prometheus, Alertmanager 또는 Grafana의 여러 인스턴스를 사용할 수 있는 경우 Ceph 관리 서비스에서 HA를 처리합니다. 역방향 프록시는 정상 인스턴스를 자동으로 감지하고 이를 사용하여 사용자 요청을 처리합니다.
4.5.1.1. Ceph Management 게이트웨이 제한 사항 링크 복사링크가 클립보드에 복사되었습니다!
mgmt-gateway 서비스를 사용하면 다음과 같은 제한 사항이 있습니다.
-
mgmt-gateway서비스 자체의 고가용성 구성 및 클러스터링은 현재 지원되지 않습니다. - 서비스는 프록시되는 애플리케이션에 따라 적절한 포트에 바인딩해야 합니다. 서비스 가용성을 중단할 수 있는 포트 충돌이 없는지 확인합니다.
내부적으로
mgmt-gateway서비스는 nginx 역방향 프록시를 사용합니다. 기본 컨테이너 이미지가 기본적으로 사용되도록 하려면 다음을 사용합니다.DEFAULT_NGINX_IMAGE = 'quay.io/ceph/NGINX_IMAGE'스토리지 관리자는
container_image_nginxcephadm 모듈 옵션을 변경하여 사용 중인 이미지를 변경할 수 있습니다. 다른 데몬이 실행 중인 경우 새 이미지를 사용하도록 데몬을 재배포해야 합니다.ceph config set mgr mgr/cephadm/container_image_nginx NEW_NGINX_IMAGE ceph orch redeploy mgmt-gateway
4.5.1.2. 명령줄 인터페이스를 사용하여 Ceph Management 게이트웨이 활성화 링크 복사링크가 클립보드에 복사되었습니다!
대시보드 및 Ceph 클러스터에 대한 SSO 액세스에 대한 Ceph 관리 게이트웨이를 활성화합니다. cephadm CLI 명령으로 mgmt-gateway 서비스를 활성화하려면 이 정보를 사용합니다.
프로세스
mgmt-gateway 서비스를 배포합니다.
구문
ceph orch apply mgmt-gateway [--placement=DESTINATION_HOST] [--enable-auth=true]참고oauth2-proxy를 사용하여 SSO를 활성화하려면--enable-auth=true매개변수가 필요합니다.예
[ceph: root@host01 /]# ceph orch apply mgmt-gateway --placement=host01- 서비스가 올바르게 배포되었는지 확인합니다.
4.5.1.3. 서비스 사양 파일을 사용하여 Ceph Management 게이트웨이 활성화 링크 복사링크가 클립보드에 복사되었습니다!
대시보드 및 Ceph 클러스터에 대한 SSO 액세스에 대한 Ceph 관리 게이트웨이를 활성화합니다. 이 정보를 사용하여 서비스 사양 파일과 함께 mgmt-gateway 서비스를 활성화합니다.
사전 요구 사항
Ceph 관리 게이트웨이를 활성화하기 전에 mgmt-gateway 서비스가 실행될 각 Ceph 노드에 다음이 있는지 확인합니다.
- 게이트웨이 서비스의 포트를 사용합니다.
- 실행 중인 Red Hat Ceph Storage 클러스터.
- (선택 사항) 사용되는 SSL 프로토콜입니다.
- (선택 사항) SSL 암호.
- (선택 사항) SSL 인증서 및 인증서 키입니다.
SSL 프로토콜, 암호, 인증서 및 인증서 키에 대한 자세한 내용은 Red Hat Enterprise Linux 설명서의 웹 서버 배포 및 역방향 프록시를 참조하십시오.
프로세스
mgmt-gateway서비스에 대한 YAML 파일을 생성합니다.예
[root@host01 ~]# touch mgmt-gateway.yaml다음 세부 정보를 포함하도록 YAML 파일을 편집합니다.
중요다음 필드는 선택 사항입니다.
ssl_protocols,ssl_ciphers,ssl_certificate. 생략하면mgmt-gateway서비스는 안전하고 안전한 구성을 사용합니다. 이러한 필드를 변경할 수 있지만 시스템 보안이 손상될 수 있으므로 주의해야 합니다.구문
service_type: mgmt-gateway placement: hosts: - ceph-node-1 spec: port: 9443 ssl_protocols: # Optional - TLSv1.3 ssl_ciphers: # Optional - AES128-SHA - AES256-SHA - RC4-SHA ssl_cert: | # Optional -----BEGIN CERTIFICATE----- < YOU CERT DATA HERE > -----END CERTIFICATE----- ssl_key: | -----BEGIN RSA PRIVATE KEY----- < YOU PRIV KEY DATA HERE > -----END RSA PRIVATE KEY-----중요TLSv1.3 SSL 프로토콜을 사용합니다. TLSv1.3에는 기본적으로 보안 암호화 세트가 포함되어 있습니다. TLSv1.2는 지원되지만 이 프로토콜을 사용할 때 보안 암호의 하위 집합만 사용하는 것이 중요합니다. 약한 암호 또는 오래된 암호를 사용하면 시스템의 보안이 크게 손상될 수 있습니다.
예
service_type: mgmt-gateway service_id: gateway placement: hosts: - ceph0 spec: port: 5000 ssl_protocols: - TLSv1.3 - ... ssl_ciphers: - AES128-SHA - AES256-SHA - ... ssl_cert: | -----BEGIN CERTIFICATE----- MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3 DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T [...] -----END CERTIFICATE----- ssl_key: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4 /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h [...] -----END PRIVATE KEY-----다음 표에는 사양 파일의
mgmt-gateway서비스 섹션(ceph.deployment.service_spec.MgmtGatewaySpec)과 관련된 필드가 나열되어 있습니다.Expand 표 4.1. spec 파일의 Mgmt -gateway 특정 필드 필드 설명 disable_httpsHTTPS를 비활성화하는 플래그입니다. True인 경우 서버는 비보안 HTTP를 사용합니다.
enable_authSSO 인증을 활성화하는 플래그입니다. SSO 인증에 대해 oauth2-proxy가 활성화되어 있어야 합니다.
네트워크데몬이 해당 목록의 특정 네트워크에만 바인딩하도록 지시하는 네트워크 ID 목록입니다. 클러스터가 여러 네트워크에 분산된 경우 여러 네트워크를 추가할 수 있습니다.
배치오케스트레이터가 서비스를 배포하려면 데몬을 배포할 위치와 배포 횟수를 알아야 합니다. 이는 배치 사양의 역할입니다. 배치 사양은 명령줄 인수 또는 YAML 파일로 전달할 수 있습니다. 자세한 내용은 Ceph Orchestrator를 사용한 서비스 관리를 참조하십시오.
port서버가 수신 대기할 포트 번호입니다.
server_tokens응답의 플래그 제어 서버 토큰:
on,off,build,string.ssl_certSSL 인증서를 포함하는 여러 줄 문자열입니다.
ssl_keySSL 키가 포함된 여러 줄 문자열입니다.
ssl_ciphers지원되는 보안 SSL 암호 목록입니다. 이 목록을 변경하면 시스템 보안이 저하될 수 있습니다.
ssl_prefer_server_ciphers클라이언트 암호보다 서버 암호를 선호:
on,off.ssl_protocols지원되는 SSL 프로토콜 목록입니다( nginx에서 지원됨).
ssl_session_cacheSSL/TLS 세션이 캐시되는 기간:
off,none,[builtin[:size]],[shared:name:size].ssl_session_tickets세션 티켓을 제어하는 다중 옵션 플래그:
on,off.ssl_session_timeoutSSL 세션 시간 초과 기간입니다. 구문: 시간(예:
5m).ssl_staplingSSL stapling을 활성화하거나 비활성화하는 플래그:
on,off.ssl_stapling_verifySSL stapling의 확인을 제어하기 위한 플래그:
on,off.사양 파일을 적용합니다.
구문
[root@host01 ~]# ceph orch apply -i mgmt-gateway.yaml