2.2. Ceph 인증
사용자를 식별하고 중간자 공격으로부터 보호하기 위해 Ceph는 사용자와 데몬을 인증하는 cephx
인증 시스템을 제공합니다.
cephx
프로토콜은 네트워크를 통해 전송되는 데이터 또는 OSD에 저장된 데이터의 데이터 암호화를 처리하지 않습니다.
cephx는 인증에 공유 시크릿 키를 사용합니다. 즉, 클라이언트와 모니터 클러스터에 모두 클라이언트의 시크릿 키 사본이 있습니다. 인증 프로토콜을 사용하면 두 당사자가 실제로 공개하지 않고 키 복사본이 있음을 증명할 수 있습니다. 이는 클러스터가 사용자가 시크릿 키를 소유하고 있는지 확인하고 클러스터에 시크릿 키 사본이 있는지 확인하는 상호 인증을 제공합니다.
Cephx
cephx
인증 프로토콜은 Kerberos와 유사한 방식으로 작동합니다.
사용자/actor는 Ceph 클라이언트를 호출하여 모니터에 연결합니다. Kerberos와 달리 각 모니터는 사용자를 인증하고 키를 배포할 수 있으므로 cephx
를 사용할 때 단일 장애 지점이나 병목 현상이 발생하지 않습니다. 모니터는 Ceph 서비스를 가져오는 데 사용할 세션 키가 포함된 Kerberos 티켓과 유사한 인증 데이터 구조를 반환합니다. 이 세션 키는 사용자의 영구 시크릿 키를 사용하여 자체적으로 암호화되므로 사용자만 Ceph 모니터에서 서비스를 요청할 수 있습니다. 그런 다음 클라이언트는 세션 키를 사용하여 모니터에서 원하는 서비스를 요청하고 모니터는 고객에게 실제로 데이터를 처리하는 OSD에 클라이언트를 인증하는 티켓을 제공합니다. Ceph 모니터 및 OSD는 시크릿을 공유하므로 클라이언트는 클러스터의 OSD 또는 메타데이터 서버와 함께 모니터에서 제공하는 티켓을 사용할 수 있습니다. Kerberos와 마찬가지로 cephx
티켓은 만료되므로 공격자는 만료된 티켓 또는 세션 키를 과도하게 사용할 수 없습니다. 이러한 형태의 인증으로 인해 통신 매체에 대한 액세스 권한이 있는 공격자가 다른 사용자의 ID에 따라 bogus 메시지를 생성하거나 사용자의 비밀 키가 만료되기 전에 공개되지 않는 한 다른 사용자의 합법적인 메시지를 변경하는 것을 방지할 수 있습니다.
cephx
를 사용하려면 관리자가 먼저 사용자를 설정해야 합니다. 다음 다이어그램에서 client.admin
사용자는 명령줄에서 ceph auth get-or-create-key
를 호출하여 사용자 이름 및 시크릿 키를 생성합니다. Ceph의 auth
하위 시스템은 사용자 이름과 키를 생성하고 모니터가 있는 복사본을 저장하고 사용자의 시크릿을 client.admin
사용자로 다시 전송합니다. 즉, 클라이언트와 모니터는 시크릿 키를 공유합니다.
client.admin
사용자는 사용자 ID와 시크릿 키를 안전한 방식으로 사용자에게 제공해야 합니다.