역할 기반 액세스 제어와 외부 인증, ECE 2.3에서 정식 버전으로 출시 | Elastic Blog
엔지니어링

역할 기반 액세스 제어와 외부 인증, ECE 2.3에서 정식 버전으로 출시

Elastic Cloud Enterprise(ECE) 2.3 릴리즈와 함께, 역할 기반 액세스 제어 및 외부 소스 인증이 이제 정식 버전으로 출시된다는 기쁜 소식을 알려드립니다. 이러한 기능을 이용하면 역할을 통해 여러 사용자의 ECE 플랫폼에 대한 액세스를 제어할 수 있습니다. ECE에서 기본으로 사용자를 추가하고 자체 디렉터리 서버나 ID 공급자에 연결하여 기존 사용자에게 액세스를 부여할 수 있습니다.

ECE 2.2에서 처음으로 이러한 기능에 대한 베타 지원이 추가되었으며, 2.3에서는 디버깅뿐 아니라 기존의 LDAP와 SAML 옵션에 더하여 Active Directory에 대한 지원도 추가되었습니다.

사용 방법

ECE에서 RBAC를 활성화하면 보안 배포가 추가됩니다. 이 보안 배포는 모든 인증 구성과 허가를 관리하는 시스템 배포입니다. 사용자가 로그인을 시도할 때, ECE는 보안 배포를 사용해 인증을 확인하며, 필요하면 시스템 사용자로 변경합니다. 사용자가 성공적으로 인증하는 경우, ECE는 그 사용자에게 할당된 역할을 적용하여 이를 미세 조정된 권한으로 변환합니다. 이 권한은 각 사용자가 무엇을 볼 수 있고 어떤 조치를 취할 수 있는지를 제어합니다.

사용자의 ECE 역할은 ECE에서 호스팅되는 배포에 대해 사용자가 보유하고 있는 모든 자격 증명과 별개라는 점에 유의하세요. 사용자는 ECE에 대한 액세스가 없지만 호스팅되는 배포에 대한 관리 액세스를 가질 수 있으며, 그 반대의 경우도 가능합니다.

이용 가능한 역할

ECE는 플랫폼에서 그리고 배포 수준에서 풍부한 작업 세트를 제공합니다. 자체 역할을 정의하고 유지하는 관리자의 수고를 줄여주기 위해, ECE는 대부분의 일반적인 사용 사례에 적용되는 미리 정의된 역할 세트를 제공합니다. 이러한 역할은 더 많은 기능이 추가되는 대로 계속 업데이트됩니다. 따라서 자체 정의를 계속 최신으로 유지해야 한다는 걱정을 하실 필요가 없습니다.

역할에 대한 설명은 아래에서 보실 수 있습니다. 사용자는 하나 이상의 역할을 보유하고 필요에 따라 이러한 역할들을 결합시킬 수 있습니다. 예를 들어, “플랫폼 관리자”는 무엇이든 할 수 있으며, 따라서 플랫폼 관리자에게는 다른 역할을 부여할 필요가 없습니다. 그러나 “플랫폼 조회자”는 모든 것을 볼 수 있지만 어떤 것도 변경할 수는 없습니다. 따라서 선택에 따라 이를 “배포 관리자” 역할과 결합시킬 수도 있습니다.

플랫폼 관리자

이 역할은 설치 프로세스 중에 생성된 시스템 수준의 admin 사용자(또는 ECE 1.x의 root)와 동일한 방식으로 사용자가 ECE에서 모든 데이터를 보고 어떤 작업이든 수행할 수 있도록 합니다. 통상적으로 전체 ECE 플랫폼을 담당하는 관리자만 이 역할을 보유하게 됩니다. UI의 “Platform(플랫폼)” 섹션이 좋은 예입니다. 이것은 예를 들어, 할당자와 그 배포에 대한 정보를 제공하며, 아울러 할당자를 비우거나 유지 관리 모드로 들어가도록 하는 기능도 제공합니다.

플랫폼 조회자

이 역할은 전체 플랫폼과 호스팅되는 배포에 대해 보기 전용 권한을 부여합니다. 연관된 권한은 readonly 시스템 수준 사용자가 보유하는 권한과 동일합니다. 이것은 예를 들어, ECE의 상태 모니터링을 자동화하는 데 유용합니다.

배포 관리자

이 역할은 사용자가 플랫폼에서 배포를 생성하고 관리할 수 있도록 합니다. 이 역할을 갖는 사용자는 배포에서 규모 확장, 규모 축소, 스냅샷 구성, 노드 재시작, 비밀번호 재설정 등 모든 조치를 수행할 수 있습니다. 이 역할은 배포 템플릿, 인스턴스 구성, 할당자, 시스템 배포 등과 같은 모든 플랫폼 수준의 작업과 리소스에 대한 액세스는 허용하지 않습니다.

이것은 배포 팀 리더처럼 배포 관리 책임은 있지만 플랫폼 수준 정보를 봐야 할 필요가 없는 사람에게 적합한 역할입니다.

배포 조회자

이 역할을 갖는 사용자는 배포를 볼 수 있지만 어떤 식으로든 수정할 수는 없습니다. 이 역할은 지원 담당자나 개발 팀원들에게 적합합니다.

기본 사용자 관리

ECE에서 RBAC를 시작하는 가장 간단한 방법은 기본 사용자를 생성하는 것입니다. 기본 사용자는 Elasticsearch 기본 영역에서, 보안 배포에서 유지되며, 사용자 이름, 전체 이름, 이메일, 비밀번호, 역할, 그리고 현재 활성화되어 있는지 여부 등 제한된 수의 속성만 지원합니다.

탐색 메뉴의 “Users(사용자)”를 클릭하면 인증 공급자를 볼 수 있으며, 그 중 하나는 “Native users(기본 사용자)” 프로필입니다. 프로필을 열면 모든 기본 사용자 목록을 볼 수 있습니다. 이 목록에는 ECE 인스톨러가 생성한 두 시스템 사용자가 포함됩니다. 이 사용자들은 편집하거나 삭제할 수 없으며, 여기서 비밀번호를 재설정할 수 없습니다. 비밀번호 재설정 방법에 대한 추가 지침은 설명서를 참조하세요.

기본 사용자 생성 데모

“Native users(기본 사용자)” 페이지에서, 기본 사용자를 생성, 편집, 삭제할 수 있습니다. 이러한 사용자는 시스템 사용자와 마찬가지로 ECE에 로그인할 수 있으며, 그 액세스는 그 사용자에게 할당되는 역할에 의해 제어됩니다.

사용자 설정 페이지

ECE 2.3은 또한 사용자 설정 페이지를 추가합니다. 페이지의 오른쪽 상단에 있는 사용자 아이콘을 클릭하고 “Settings(설정)”를 클릭하세요. 기본 사용자로 로그인되어 있는 경우, 이름과 이메일을 편집하거나 비밀번호를 변경할 수 있습니다. 외부 인증 공급자에서 사용자로 로그인되어 있는 경우, 일부 기본 정보와 인증 프로필의 이름 및 유형, 그리고 보유한 역할만 있는 읽기 전용 페이지를 보게 됩니다.

사용자 설정 편집 데모

외부 인증 공급자

이미 LDAP, Active Directory 또는 SAML 서버가 있는 경우, ECE를 구성해 이를 인증 및 승인을 위해 사용할 수 있습니다. 여러 서버도 구성할 수 있으며, 인증은 Elasticsearch와 동일한 방식으로 설정한 순서대로 시도됩니다. 기존 인증 소스를 사용한다는 것은 한 곳에서 사용자들을 관리해야 한다는 뜻입니다. 외부 공급자를 위한 역할 매핑 구성은 ECE에서 사용자의 속성을 역할에 매핑하게 해주며, 따라서 그룹 구성원 등과 같은 사용자 속성에 대한 모든 변경 사항이 ECE에서 자동으로 선택됩니다.

인증 공급자 개요 페이지에서, “Add provider(공급자 추가)”를 클릭하고 유형을 선택하세요. 다음 페이지에서, 공급자를 구성하게 됩니다. 기본 LDAP 설정을 위한 옵션을 처음부터 구성해 보겠습니다.

LDAP 공급자 생성 데모

LDAP 인증 공급자

일반 설정:

  1. 모든 프로필에는 이름이 있습니다. 이 이름은 프로필에 라벨을 붙이는 데 사용될 뿐 아니라, 영역 ID를 생성하는 데도 사용됩니다. 일단 프로필이 생성되면, 영역 ID는 절대 변경되지 않습니다.
  2. 시작 시에 ldap: 또는 ldaps: 프로토콜을 포함해 최소한 한 개의 LDAP 서버가 설정되어야 합니다. DNS 기반의 부하 분산 전략을 선택하는 경우, 단일 서버만 지정할 수 있습니다.
  3. 위의 제한사항을 염두에 두고 부하 분산 전략을 선택하세요.

신뢰할 수 있는 인증서:

  1. 클라이언트가 특정 SSL/TLS 인증서를 유지해야 하는 방식으로 LDAP 서버가 보안되는 경우, 번들 파일을 준비해서 URL을 통해 ECE에 제공되도록 해야 합니다. 자세한 정보는 설명서를 참조하세요.
  2. 번들이 비밀번호로 보호되는 경우, 여기에서 비밀번호를 알려주세요.

번들 자격 증명:

  1. LDAP 서버에 바인딩하기 위해 자격 증명이 요구되는 경우, 여기에서 이를 설정하실 수 있습니다.
  2. 또는 자격 증명이 요구되지 않는 경우라면 “익명 바인딩” 토글을 클릭하세요.

검색 모드 설정:

  1. 사용자 검색을 위한 각 세부 사항을 지정하실 수 있습니다. 이러한 필드에 대한 정보는 설명서를 참조하세요. 최소한 “사용자를 위한 기본 DN”(예를 들어, “cn=users,dc=example,dc=com”)은 설정하고 싶으실 수 있습니다.
  2. 또는 대신에 LDAP 쿼리를 수행하는 템플릿을 사용해야 하는 경우, “Template(템플릿)” 라디오 단추를 클릭하고 하나 이상의 템플릿을 제공하세요.

그룹 검색 설정:

  1. 검색 모드 설정과 거의 비슷하게, ECE가 사용자 그룹들에 대해 어떻게 검색해야 하는지 구성할 수 있습니다. “그룹을 위한 기본 DN”(예를 들어, “ou=groups,dc=example,dc=com”)을 설정하고 싶으실 수 있습니다.

역할 매핑:

  1. 사용자는 ECE에서 어떤 작업을 하려면 하나 이상의 역할을 보유해야 합니다. 기본 역할을 지정할 수 있으며, 기본 역할은 성공적으로 인증을 마친 모든 사용자에게 할당됩니다. 예를 들어, 모든 사용자에게 “배포 조회자” 역할을 부여할 수 있습니다. 그러면 모든 사용자는 ECE에서 호스팅되는 모든 배포를 볼 수 있지만 어떤 것도 편집할 수는 없습니다.
  2. 역할을 할당하는 또 다른 방법은 역할 매핑을 통한 것입니다. 이것은 사용자 DN 또는 그룹 DN이 일부 값과 일치하는 경우, 지정된 역할이 할당되도록 하는 간단한 규칙입니다. 예를 들어, IT 작업 사용자에게 “배포 조회자”를 부여하는 매핑, 모든 개발자에게 “배포 관리자”를 부여하는 매핑, 모든 관리자에게 “플랫폼 조회자”를 부여하는 매핑 등 필요에 따라 원하는 수 만큼의 매핑을 사용할 수 있습니다.

다 마치고 나서, Create profile(프로필 생성)을 클릭하면 ECE는 보안 배포를 재구성합니다. 이제 다양한 LDAP 사용자로 로그인하여 제대로 인증되는지 그리고 각 사용자의 역할이 정확한지 확인해야 합니다. 사용자 설정 페이지에서 역할을 명시적으로 확인할 수 있으며, 아울러 UI를 통해 탐색하면서 각 사용자가 조회하고 작업할 수 있는 내용이 예상대로인지 확인할 수도 있습니다.

Active Directory 및 SAML 인증 공급자

높은 수준에서, 이 프로세스는 ECE 관점에서의 LDAP와 비슷합니다. SAML 또는 Active Directory 인증 공급자를 생성하고, 그 이름을 붙이고, ECE가 어떻게 서버와 통신해야 하는지 지정하고, 적용되어야 하는 매핑을 정의합니다.

SAML 인증 공급자 또는 Active Directory 인증 공급자 구성에 대한 전체 설명은 설명서를 참조하세요.

REST API 지원

위의 모든 작업은 REST API를 사용하여 수행할 수도 있습니다. 예를 들어, 현재 비활성화된 사용자를 포함해 모든 사용자 목록을 가져오려면,

GET /api/v1/users?include_disabled=true

새로운 sysadmin인 Sarah에게 액세스를 부여해야 한다고 해봅시다. 다음과 같이 Sarah를 위해 새로운 기본 사용자를 생성할 수 있습니다.

POST /api/v1/users
{
  "user_name": "sarah",
  "security": {
    "roles": ["ece_platform_admin"],
    "password": "deadb33f"
  }
}

그리고 나서 Sarah의 액세스를 변경해야 하는 경우, 변경하고자 하는 필드에 대해서만 PATCH 요청을 보낼 수 있습니다. 이 예제에서는 역할 필드입니다.

PATCH /api/v1/users/sarah
{
  "security": {
    "roles": ["ece_platform_viewer"]
  }
}

마지막으로, DELETE 요청으로 Sarah의 계정을 제거할 수 있습니다.

DELETE /api/v1/users/sarah

자세한 정보와 인증 공급자 엔드포인트 예는 REST API 설명서를 참조하세요.

오늘 시작하세요

ECE 2.3의 변경 사항 전체 목록은, 반드시 릴리즈 노트를 확인하시고, 직접 사용해 보고 싶으시면, 30일 무료 체험판으로 시작해 보세요.