본문으로 건너뛰기

Semaphore UI에서 모든 프로젝트는 과 연결됩니다. 팀 구성원과 관리자만 프로젝트에 접근할 수 있습니다. 각 팀 구성원에게는 네 가지 기본 역할 중 하나가 할당되며, 이 역할이 접근 수준과 수행할 수 있는 동작을 결정합니다.

Enterprise 에디션에서는 기본 역할을 사용자 정의 역할로 확장하여 특정 템플릿에 대한 세분화된 추가 권한을 부여할 수 있습니다.

프로젝트에 대한 접근 권한을 잃지 않도록 Owner 역할을 가진 팀 구성원을 최소 두 명 이상 두는 것이 좋습니다.

기본 역할

모든 팀 구성원은 다음 네 가지 역할 중 정확히 하나를 가집니다:

  • Owner
  • Manager
  • Task Runner
  • Guest

아래는 각 역할과 권한에 대한 자세한 설명입니다.

Owner

  • 전체 권한
    Owner는 역할 관리, 구성원 추가/제거, 모든 프로젝트 설정 구성을 포함하여 프로젝트 내에서 모든 작업을 수행할 수 있습니다.

  • 다수의 Owner
    프로젝트에는 여러 Owner가 있을 수 있으므로 전체 권한을 가진 사람이 한 명 이상 존재하도록 보장할 수 있습니다.

  • 자기 제거 제한
    Owner가 프로젝트의 유일한 Owner인 경우 자신을 제거할 수 없습니다. 이는 프로젝트에 Owner가 없는 상태가 되는 것을 방지합니다.

  • 다른 Owner 관리
    Owner는 다른 Owner를 포함한 모든 팀 구성원을 관리(제거 또는 역할 변경 포함)할 수 있습니다.

Manager

  • 광범위한 프로젝트 제어: Manager는 Owner와 거의 동일한 권한을 가지므로 대부분의 일상 업무를 처리하고 프로젝트 환경을 관리할 수 있습니다.

  • Manager는 다음을 할 수 없습니다:

    • 프로젝트 삭제.
    • Owner 제거 또는 Owner의 역할 변경.
  • 일반적인 활용 사례: 광범위한 접근 권한이 필요하지만 프로젝트 삭제나 Owner 관리 권한은 필요하지 않은 선임 팀 구성원에게 Manager 역할을 할당합니다.

Task Runner

  • 작업 실행: Task Runner는 프로젝트 내에 존재하는 모든 작업 템플릿을 실행할 수 있습니다.

  • 다른 리소스에 대한 읽기 전용: 작업은 실행할 수 있지만 inventory, 변수, 리포지토리 등 다른 리소스에 대해서는 읽기 전용 접근 권한만 가집니다.

  • 일반적인 활용 사례: 작업을 트리거하고 모니터링해야 하지만 프로젝트 설정 수정이나 팀 구성원 관리 권한은 필요하지 않은 개발자 또는 QA 엔지니어.

Guest

  • 읽기 전용 접근: Guest는 모든 프로젝트 리소스에 대해 읽기 전용 접근 권한을 가집니다 (예: 로그, inventory, 대시보드 보기).

  • 쓰기 권한 없음: 설정 수정, 작업 실행, 역할 변경을 할 수 없습니다.

  • 일반적인 활용 사례: 변경 없이 프로젝트 상태와 세부 정보만 확인하면 되는 이해관계자 또는 기타 협업자.


확장 RBAC (Enterprise)

정보

확장 RBAC는 Semaphore v2.17부터 Semaphore Enterprise 에디션에서 사용할 수 있습니다.

확장 RBAC는 네 가지 기본 역할 위에 추가 권한을 계층으로 더합니다. 기본 역할 자체는 변경되지 않습니다. 사용자 정의 역할을 정의하지 않으면 모든 프로젝트는 커뮤니티 에디션과 완전히 동일하게 동작합니다.

확장 RBAC를 사용하면 사용자 정의 역할로 개별 프로젝트 전체 권한을 부여할 수 있습니다. 또한 선택한 작업 템플릿에 대한 권한을 역할에 부여할 수도 있습니다. 이를 통해 팀 구성원을 상위 기본 역할로 승격하지 않고도 필요한 템플릿에 대한 접근 권한을 부여할 수 있습니다.

사용자 정의 역할

사용자 정의 역할은 구성원의 기본 프로젝트 역할을 보완하는 이름이 지정된 권한 집합입니다. 모든 팀 구성원은 기본 역할을 유지합니다. 사용자 정의 역할은 여기에 권한을 추가합니다.

사용자 정의 역할은 두 가지 범위에서 사용할 수 있습니다:

  • 전역 역할은 인스턴스 수준에서 정의되며 모든 프로젝트에서 사용할 수 있습니다.
  • 프로젝트 역할은 단일 프로젝트 내에서 정의되며 해당 프로젝트 내에서만 사용할 수 있습니다.

권한 수준

사용자 정의 역할은 두 가지 수준에서 권한을 부여합니다:

  • 프로젝트 전체 권한은 프로젝트 전반에 걸쳐 사용자의 접근 권한을 확장합니다. 역할을 생성할 때 선택합니다.
  • 템플릿 권한은 하나의 작업 템플릿에 대한 동작을 제어합니다. 역할을 템플릿에 추가한 후 해당 템플릿의 Permissions 탭에서 선택합니다.

사용자 정의 역할 생성하기

역할 양식을 열기 전에 범위를 선택하십시오.

전역 역할

전역 역할은 한 번 생성하면 모든 프로젝트의 사용자에게 할당할 수 있습니다. 인스턴스 관리자만 전역 역할을 생성할 수 있습니다.

왼쪽 하단의 관리자 메뉴를 열고 Roles를 선택합니다.

인스턴스 전체 역할 목록에서 New Role을 선택합니다.

관리자 메뉴에서 Roles를 연 다음 New Role 선택

프로젝트 역할

프로젝트 역할은 생성된 프로젝트에서만 사용할 수 있습니다. 프로젝트의 Owner와 Manager가 생성할 수 있습니다.

  1. 프로젝트를 열고 Team > Roles로 이동합니다.
  2. New Role을 선택합니다.

Roles 탭은 첫 번째 프로젝트 역할이 생성될 때까지 비어 있습니다. 이 탭은 모든 프로젝트 역할을 나열하며 New Role 버튼을 포함합니다.

사용자 정의 역할 설정하기

두 경로 모두 동일한 역할 양식을 엽니다. 팀 구성원에게 필요한 접근 권한에 맞게 역할을 설정하십시오.

필드와 권한 체크박스가 있는 New Role 대화 상자

필드설명
Name역할을 나타내는 사람이 읽을 수 있는 레이블입니다.
Slug역할을 참조하는 데 사용되는 고유한 기술 식별자입니다. 소문자, 숫자, 밑줄 또는 하이픈을 사용하십시오 (예: release_operator).
Permissions역할이 부여하는 프로젝트 전체 권한입니다.

프로젝트 전체 권한

역할에 필요한 프로젝트 전체 권한만 선택하십시오:

권한설명
Can run project tasks프로젝트 작업을 실행합니다.
Can update projectDashboard > Settings에서 기본 프로젝트 정보를 편집합니다.
Can manage project resources작업 템플릿, 리포지토리, inventory, 환경, 키 저장소 항목, 스케줄, 통합, runner 등 프로젝트 리소스를 관리합니다. 이는 프로젝트 전체 접근 권한입니다. 템플릿이 아닌 개별 리소스로 제한할 수 없습니다.
Can manage project users프로젝트 구성원과 역할 할당을 관리합니다.

프로젝트 전체 권한은 단일 inventory, 리포지토리, 환경 또는 키 저장소 항목으로 제한할 수 없습니다. 작업 템플릿은 세분화된 역할 할당을 지원하는 유일한 리소스 유형입니다.

템플릿 전용 접근

선택한 작업 템플릿에만 접근 권한을 추가하는 세분화된 역할을 만들려면 모든 프로젝트 전체 권한을 선택 해제한 상태로 두십시오. 그러면 역할 자체는 프로젝트 전체 권한을 추가하지 않습니다. 필요한 템플릿에 역할을 추가하고 해당 역할에 필요한 동작만 선택하십시오.

역할 설정이 준비되면 Save를 선택합니다.

특정 작업 템플릿에 대한 접근 설정하기

템플릿 권한은 선택한 작업 템플릿에 대한 접근 권한을 추가합니다. 아래 예시는 프로젝트 전체 권한이 없는 사용자 정의 역할을 사용합니다. 이 최소 권한 구성은 팀 구성원에게 선택한 템플릿 동작만 필요한 경우에 유용합니다. 이미 프로젝트 전체 접근 권한을 부여하는 역할에 템플릿 권한을 추가할 수도 있습니다.

필요한 템플릿 열기

  1. 작업 템플릿을 열고 대상 템플릿을 선택합니다.
  2. Permissions 탭을 엽니다.

Permissions 탭은 템플릿에 이미 추가된 역할을 나열합니다.

역할 추가 및 템플릿 권한 부여

  1. Add Role을 선택하고 이 템플릿에 추가할 사용자 정의 역할을 선택합니다.
  2. Can run tasks 또는 Can update the template처럼 역할에 필요한 템플릿 권한만 선택합니다.

이 예시는 프로젝트 전체 권한이 없이 이전에 생성한 역할을 사용합니다. 프로젝트에서 사용할 수 있는 모든 사용자 정의 역할을 선택할 수 있습니다.

필요한 컨트롤이 강조된 템플릿 권한 대화 상자

같은 역할에 추가 템플릿에 대한 접근 권한을 부여하려면 각 템플릿마다 이 단계를 반복하십시오.

기존 프로젝트 접근 권한

템플릿 권한은 누적됩니다. 사용자의 기본 역할이나 다른 사용자 정의 역할에서 오는 접근 권한을 대체하거나 축소하지 않고 접근 권한을 추가합니다. 사용자가 이미 모든 작업 템플릿을 실행하거나 업데이트할 수 있다면, 템플릿별 역할을 추가해도 해당 접근 권한이 좁아지지 않습니다.

프로젝트에서 사용자 정의 역할 할당하기

전역 역할 또는 프로젝트 역할을 생성하고 설정한 후, 필요한 팀 구성원에게 할당합니다:

  1. 프로젝트를 열고 Team으로 이동합니다.
  2. 해당 사용자 옆의 Roles를 펼칩니다.
  3. 사용자 정의 역할을 선택합니다.

현재 지원되지 않는 기능

  • LDAP / OIDC 그룹 매핑. 사용자 정의 역할은 사용자별로 할당됩니다. 외부 디렉터리 그룹을 사용자 정의 역할에 매핑하는 것은 지원되지 않습니다.
  • 템플릿이 아닌 리소스에 대한 세분화된 권한. 현재 개별 리소스 수준에서 사용자 정의 역할로 제어할 수 있는 것은 템플릿뿐입니다.

팀 구성원 관리하기

  • 새 구성원 초대: OwnerManager는 새 사용자를 팀에 초대하고 초기 역할을 할당할 수 있습니다.

  • 역할 변경: Owner는 언제든지 모든 팀 구성원의 역할을 변경할 수 있습니다. Manager는 Task RunnerGuest의 역할은 변경할 수 있지만 다른 Manager나 Owner의 역할은 변경할 수 없습니다.

  • 구성원 제거: Owner와 Manager는 자신보다 낮은 역할의 팀 구성원을 제거할 수 있습니다.

    • Owner는 누구든지(다른 Owner 포함) 제거할 수 있지만, 자신이 유일한 Owner인 경우 자신을 제거할 수 없습니다.
    • Manager는 Task RunnerGuest는 제거할 수 있지만 다른 Manager나 Owner는 제거할 수 없습니다.

모범 사례

  1. 중복성 유지: 지속적인 접근을 보장하고 단일 장애점을 방지하기 위해 최소 두 명에게 Owner 역할을 할당하십시오.
  2. 최소 권한 원칙 준수:
    • 팀 구성원에게 업무에 필요한 최소한의 역할을 부여하십시오.
    • 제한된 권한만 필요한 사용자에게는 Task Runner 또는 Guest 역할을 사용하십시오.
    • Enterprise에서는 구성원의 기본 역할을 상향하는 대신 사용자 정의 역할을 사용하여 특정 템플릿에 대한 접근 권한을 부여하십시오.
  3. 정기적인 구성원 검토:
    • 팀 구조가 변경되면 역할을 재평가하십시오.
    • 더 이상 높은 수준의 권한이 필요하지 않은 사용자의 접근 권한을 회수하거나 역할을 낮추십시오.
  4. 일상적인 관리에는 Manager 활용:
    • Owner 역할은 최종 권한을 가진 소수의 그룹에만 부여하십시오.
    • 일상적인 프로젝트 관리 업무를 Manager에게 위임하여 실수로 인한 중대한 변경이나 프로젝트 삭제 위험을 줄이십시오.

자주 묻는 질문

1. Owner가 다른 Owner를 제거할 수 있나요?

예, Owner는 프로젝트에 남은 유일한 Owner가 아닌 한 다른 Owner를 제거하거나 역할을 변경할 수 있습니다.

2. 누가 프로젝트를 삭제할 수 있나요?

Owner만 프로젝트를 삭제할 수 있습니다.

3. Manager가 다른 Manager를 추가하거나 제거할 수 있나요?

아니요. Manager는 Task Runner 또는 Guest 역할의 사용자만 추가하거나 제거할 수 있습니다. Owner나 다른 Manager를 관리하려면 Owner여야 합니다.

4. 실수로 모든 Owner를 제거하면 어떻게 되나요?

Semaphore UI는 프로젝트에 Owner가 한 명도 남지 않게 되는 경우 Owner 제거를 차단합니다. 항상 최소 한 명의 Owner가 있어야 합니다.

5. Guest가 작업을 실행할 수 있나요?

아니요. Guest는 읽기 전용 접근 권한만 가지며 작업을 트리거하거나 관리할 수 없습니다. Enterprise 에디션에서는 사용자 정의 역할을 통해 Guest에게 개별 템플릿 실행 권한을 부여할 수 있습니다.

6. 사용자 정의 역할이 기본 역할을 대체하나요?

아니요. 사용자 정의 역할은 기본 역할에 추가적인 프로젝트 및 템플릿 수준 권한을 더해 확장합니다. 모든 팀 구성원은 여전히 정확히 하나의 기본 역할을 가집니다.

7. 확장 RBAC를 커뮤니티 에디션에서 사용할 수 있나요?

아니요. 확장 RBAC에는 Semaphore Enterprise 구독이 필요합니다.