팀
Semaphore UI에서 모든 프로젝트는 팀과 연결됩니다. 팀 구성원과 관리자만 프로젝트에 접근할 수 있습니다. 각 팀 구성원은 하나 이상의 역할을 가지며, 이 역할이 접근 수준과 수행할 수 있는 동작을 결정합니다. 구성원은 자신의 역할 중 어느 하나라도 허용하는 모든 일을 할 수 있습니다.
Enterprise 에디션에서는 기본 역할을 사용자 정의 역할로 확장하여 특정 템플릿에 대한 세분화된 추가 권한을 부여할 수 있습니다.
프로젝트에 대한 접근 권한을 잃지 않도록 Owner 역할을 가진 팀 구성원을 최소 두 명 이상 두는 것이 좋습니다.
프로젝트의 Team 섹션에는 두 개의 탭이 있습니다. Members에는 사용자와 해당 역할이 표시되고, Roles에는 사용자 정의 역할(Enterprise)이 표시됩니다.

기본 역할
네 가지 기본 역할은 다음과 같습니다:
- Owner
- Manager
- Task Runner
- Guest
아래는 각 역할과 권한에 대한 자세한 설명입니다.
Owner
-
전체 권한
Owner는 역할 관리, 구성원 추가/제거, 모든 프로젝트 설정 구성을 포함하여 프로젝트 내에서 모든 작업을 수행할 수 있습니다. -
다수의 Owner
프로젝트에는 여러 Owner가 있을 수 있으므로 전체 권한을 가진 사람이 한 명 이상 존재하도록 보장할 수 있습니다. -
마지막 Owner
프로젝트에 Owner가 한 명도 없는 상태가 되어서는 안 됩니다. 따라서 관리자를 제외한 누구도 마지막 Owner를 프로젝트에서 제거하거나 Owner 역할을 박탈할 수 없습니다. 마지막 Owner도 프로젝트를 떠날 수 없습니다. -
다른 Owner 관리
Owner는 다른 Owner를 포함한 모든 팀 구성원을 관리할 수 있습니다(제거 또는 역할 변경 포함).
Manager
-
폭넓은 프로젝트 제어: Manager는 Owner와 거의 동일한 권한을 가지므로 대부분의 일상 업무를 처리하고 프로젝트 환경을 관리할 수 있습니다.
-
Manager가 할 수 없는 작업:
- 프로젝트 제거.
- Owner 제거 또는 Owner의 역할 변경.
-
일반적인 사용 사례: 광범위한 접근 권한은 필요하지만 프로젝트를 삭제하거나 Owner를 관리할 권한은 필요하지 않은 선임 팀 구성원에게 Manager 역할을 할당하십시오.
Task Runner
-
작업 실행: Task Runner는 프로젝트 내에 존재하는 모든 작업 템플릿을 실행할 수 있습니다.
-
다른 리소스는 읽기 전용: 작업은 실행할 수 있지만 인벤토리, 변수, 리포지토리 등 다른 리소스에는 읽기 전용으로만 접근할 수 있습니다.
-
일반적인 사용 사례: 작업을 트리거하고 모니터링해야 하지만 프로젝트 설정을 수정하거나 팀 구성원을 관리할 필요는 없는 개발자 또는 QA 엔지니어.
Guest
-
읽기 전용 접근: Guest는 모든 프로젝트 리소스(예: 로그, 인벤토리, 대시보드 조회)에 읽기 전용으로 접근할 수 있습니다.
-
쓰기 권한 없음: 설정을 수정하거나 작업을 실행하거나 역할을 변경할 수 없습니다.
-
일반적인 사용 사례: 변경 없이 프로젝트 상태와 세부 정보만 확인하면 되는 이해관계자 또는 기타 협력자.
확장 RBAC Enterprise
확장 RBAC는 Semaphore v2.17부터 Semaphore Enterprise 에디션에서 사용할 수 있습니다.
확장 RBAC는 네 가지 기본 역할 위에 추가 권한을 계층적으로 더합니다. 기본 역할 자체는 변경되지 않습니다. 사용자 정의 역할을 정의하지 않으면 모든 프로젝트는 커뮤니티 에디션과 완전히 동일하게 동작합니다.
확장 RBAC를 사용하면 사용자 정의 역할이 개별 프로젝트 전체 권한을 부여할 수 있습니다. 또한 선택한 작업 템플릿에 대한 권한을 역할에 부여할 수도 있습니다. 이를 통해 팀 구성원을 더 높은 기본 역할로 승격하지 않고도 필요한 템플릿에 대한 접근 권한을 부여할 수 있습니다.
사용자 정의 역할
사용자 정의 역할은 직접 만들고 원하는 권한을 고를 수 있는 역할입니다. 기본 역할과 똑같이 구성원에게 부여합니다. 구성원은 사용자 정의 역할만 가질 수도 있고, 기본 역할과 함께 가질 수도 있습니다.
사용자 정의 역할은 두 가지 범위로 제공됩니다:
- 글로벌 역할은 인스턴스 수준에서 정의되며 모든 프로젝트에서 사용할 수 있습니다.
- 프로젝트 역할은 단일 프로젝트 내부에서 정의되며 해당 프로젝트 내에서만 사용할 수 있습니다.
권한 수준
사용자 정의 역할은 두 가지 수준에서 권한을 부여합니다:
- 프로젝트 전체 권한은 프로젝트 전반에 걸쳐 사용자의 접근 권한을 확장합니다. 역할을 생성할 때 선택합니다.
- 템플릿 권한은 하나의 작업 템플릿에 대한 동작을 제어합니다. 해당 템플릿에 역할을 추가한 후 그 템플릿의 Permissions 탭에서 선택합니다.
사용자 정의 역할 생성
역할 양식을 열기 전에 범위를 결정하십시오.
글로벌 역할
글로벌 역할은 한 번 생성하면 모든 프로젝트의 사용자에게 할당할 수 있습니다. 인스턴스 관리자만 글로벌 역할을 생성할 수 있습니다.
왼쪽 하단의 관리자 메뉴를 열고 Roles를 선택합니다.
인스턴스 전체 역할 목록에서 New Role을 선택합니다.

프로젝트 역할
프로젝트 역할은 생성된 프로젝트에서만 사용할 수 있습니다. 프로젝트 Owner와 Manager가 생성할 수 있습니다.
- 프로젝트를 열고 Team > Roles로 이동합니다.
- New Role을 선택합니다.
Roles 탭은 첫 번째 프로젝트 역할이 생성되기 전까지 비어 있습니다. 이 탭에는 모든 프로젝트 역할이 표시되며 New Role 버튼이 있습니다.

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

| 필드 | 설명 |
|---|---|
| Name | 사람이 읽을 수 있는 역할 레이블입니다. |
| Slug | 역할을 참조하는 데 사용되는 고유한 기술 식별자입니다. 영문자, 숫자, _, -를 최대 100자까지 사용할 수 있습니다. 예: release_operator. 대소문자는 구분하지 않습니다. Ops와 ops는 같은 슬러그입니다. 역할을 만든 후에는 슬러그를 변경할 수 없습니다. |
| Permissions | 역할이 부여하는 프로젝트 전체 권한입니다. |
프로젝트 전체 권한
역할에 필요한 프로젝트 전체 권한만 선택하십시오:
| 권한 | 설명 |
|---|---|
| Can run project tasks | 프로젝트 작업을 실행합니다. |
| Can update project | Dashboard > Settings에서 기본 프로젝트 정보를 편집합니다. |
| Can manage project resources | 작업 템플릿, 리포지토리, 인벤토리, 환경, 키 저장소 항목, 스케줄, 통합, 러너 등 프로젝트 리소스를 관리 합니다. 이는 프로젝트 전체에 대한 접근 권한입니다. 템플릿이 아닌 개별 리소스로 제한할 수 없습니다. |
| Can manage project users | 프로젝트 구성원과 역할 할당을 관리합니다. |
프로젝트 전체 권한은 단일 인벤토리, 리포지토리, 환경 또는 키 저장소 항목으로 제한할 수 없습니다. 세분화된 역할 할당을 지원하는 리소스 유형은 작업 템플릿뿐입니다.
선택한 작업 템플릿에만 접근 권한을 추가하는 세분화된 역할을 만들려면 모든 프로젝트 전체 권한을 선택하지 않은 상태로 두십시오. 그러면 해당 역할은 자체적으로 어떤 프로젝트 전체 권한도 추가하지 않습니다. 필요한 템플릿에 역할을 추가하고 그곳에서 해당 역할이 필요한 동작만 선택하십시오.
역할 구성이 완료되면 Save를 선택합니다.
특정 작업 템플릿에 대한 접근 권한 구성
템플릿 권한은 선택한 작업 템플릿에 접근 권한을 추가합니다. 아래 예시에서는 프로젝트 전체 권한이 없는 사용자 정의 역할을 사용합니다. 이러한 최소 권한 구성은 팀 구성원이 선택된 템플릿 동작만 필요할 때 유용합니다. 이미 프로젝트 전체 접근 권한을 부여하는 역할에도 템플릿 권한을 추가할 수 있습니다.
필요한 템플릿 열기
- Task Templates를 열고 대상 템플릿을 선택합니다.
- Permissions 탭을 엽니다.
Permissions 탭에는 해당 템플릿에 이미 추가된 역할이 표시됩니다.

역할 추가 및 템플릿 권한 부여
- Add Role을 선택하고 이 템플릿에 추가할 사용자 정의 역할을 선택합니다.
- Can run tasks 또는 Can update the template과 같이 해당 역할에 필요한 템플릿 권한만 선택합니다.
이 예시에서는 앞서 생성한, 프로젝트 전체 권한이 없는 역할을 사용합니다. 프로젝트에서 사용할 수 있는 모든 사용자 정의 역할을 선택할 수 있습니다.

동일한 역할에 추가 템플릿에 대한 접근 권한을 부여하려면 각 템플릿에서 이 단계를 반복하십시오.
템플릿 권한은 추가적으로 동작합니다. 사용자의 기본 역할이나 다른 사용자 정의 역할에서 부여된 접근 권한을 대체하거나 축소하지 않고 권한을 추가합니다. 사용자가 이미 모든 작업 템플릿을 실행하거나 업데이트할 수 있는 경우, 템플릿 전용 역할을 추가해도 해당 접근 권한이 좁아지지는 않습니다.
프로젝트에서 사용자 정의 역할 할당
글로벌 역할 또는 프로젝트 역할을 생성하고 구성한 후, 필요한 팀 구성원에게 할당하십시오:
- 프로젝트를 열고 Team으로 이동합니다.
- 해당 구성원 옆의 역할 필드를 선택합니다.
- 사용자 정의 역할을 선택합니다. 구성원은 여러 역할을 가질 수 있습니다.
사용 중인 역할 삭제
역할이 아직 구성원에게 부여되어 있거나 템플릿 권한에서 사용 중이면, Semaphore는 삭제하기 전에 확인을 요청하고 영향을 받는 구성원, 프로젝트, 템플릿 권한의 수를 표시합니다. Delete with assignments를 선택하면 역할이 삭제되고 모두에게서 회수됩니다. 다른 역할이 없는 구성원은 프로젝트에서 제거됩니다.
역할이 그룹 매핑에서 사용 중이면 대화 상자에 그룹 매핑 수도 표시됩니다. 이런 역할은 관리자만 삭제할 수 있으며, 역할의 그룹 매핑도 함께 삭제됩니다.
현재 지원되지 않는 기능
- 템플릿이 아닌 리소스에 대한 세분화된 권한. 현재 개별 리소스 수준에서 사용자 정의 역할로 제어할 수 있는 것은 템플릿뿐입니다.
그룹 매핑으로 받은 역할 Enterprise
그룹 매핑은 Semaphore Enterprise 에디션에서 사용할 수 있습니다.
관리자는 Group mappings 페이지에서 ID 제공자에 있는 그룹의 모든 구성원에게 프로젝트 역할을 부여할 수 있습니다. Semaphore는 사용자가 ID 제공자를 통해 로그인할 때마다 이 역할을 업데이트합니다. 자세한 내용은 그룹에 따른 프로젝트 역할을 참고하십시오.
Team 페이지에서 이런 역할에는 자물쇠 아이콘이 표시됩니다. 역할 위에 마우스를 올리면 제공자와 그룹이 표시됩니다(예: keycloak: devops).
- 그룹 매핑으로 받은 역할은 Team 페이지에서 제거할 수 없습니다. 그룹 매핑은 관리자만 변경할 수 있습니다.
- 구성원을 제거하거나 수동으로 부여한 역할을 모두 제거해도 그룹 매핑으로 받은 역할은 남고, 구성원은 프로젝트에 남습니다.
팀 구성원 관리
-
새 구성원 초대: Owner와 Manager는 새 사용자를 팀에 초대하고 초기 기본 역할을 할당할 수 있습니다.
-
역할 변경: Owner는 언제나 모든 팀 구성원의 역할 을 변경할 수 있습니다. Manager는 Task Runner와 Guest의 역할은 변경할 수 있지만 다른 Manager나 Owner의 역할은 변경할 수 없습니다.
-
구성원 제거: Owner와 Manager는 자신보다 낮은 역할의 팀 구성원을 제거할 수 있습니다.
- Owner는 마지막 Owner를 제외하고 누구든(다른 Owner를 포함하여) 제거할 수 있습니다.
- Manager는 Task Runner와 Guest를 제거할 수 있지만 다른 Manager나 Owner는 제거할 수 없습니다.
모범 사례
- 중복성 유지: 지속적인 접근을 보장하고 단일 실패 지점을 방지하기 위해 최소 두 명에게 Owner 역할을 할당하십시오.
- 최소 권한 원칙 준수:
- 팀 구성원에게는 업무에 필요한 최소한의 역할을 부여하십시오.
- 제한된 권한만 필요한 사용자에게는 Task Runner 또는 Guest 역할을 사용하십시오.
- Enterprise에서는 구성원의 기본 역할을 승격하는 대신 사용자 정의 역할로 특정 템플릿에 대한 접근 권한을 부여하는 것을 권장합니다.
- 구성원 정기 검토:
- 팀 구조가 변경되면 역할을 재평가하십시오.
- 더 이상 상위 권한이 필요하지 않은 사용자의 접근 권한을 회수하거나 역할을 낮추십시오.
- 일상적인 관리에는 Manager 활용:
- Owner 역할은 최종 권한을 가진 소수의 그룹으로 제한하십시오.
- 일상적인 프로젝트 관리 업무는 Manager에게 위임하여 우발적인 주요 변경이나 프로젝트 삭제 위험을 줄이십시오.
자주 묻는 질문
1. Owner가 다른 Owner를 제거할 수 있습니까?
예. Owner는 다른 Owner가 프로젝트의 마지막 Owner가 아닌 한 그 Owner를 제거하거나 역할을 변경할 수 있습니다.
2. 누가 프로젝트를 삭제할 수 있습니까?
Owner만 프로젝트를 삭제할 수 있습니다.
3. Manager가 다른 Manager를 추가하거나 제거할 수 있습니까?
아니요. Manager는 Task Runner 또 는 Guest 역할의 사용자만 추가하거나 제거할 수 있습니다. Owner나 다른 Manager를 관리하려면 Owner여야 합니다.
4. 실수로 모든 Owner를 제거하면 어떻게 됩니까?
프로젝트에 Owner가 한 명도 없는 상태가 되어서는 안 됩니다. 따라서 관리자를 제외한 누구도 마지막 Owner를 프로젝트에서 제거하거나 Owner 역할을 박탈할 수 없습니다. 마지막 Owner도 프로젝트를 떠날 수 없습니다. 관리자가 마지막 Owner를 제거해도 프로젝트는 계속 작동하며, 관리자가 Team 페이지에서 새 Owner를 추가할 수 있습니다.
5. Guest가 작업을 실행할 수 있습니까?
아니요. Guest는 읽기 전용 접근 권한만 가지며 작업을 트리거하거나 관리할 수 없습니다. Enterprise 에디션에서는 사용자 정의 역할을 통해 Guest에게 개별 템플릿을 실행할 권한을 부여할 수 있습니다.