권한
SQ Official Doc Link: https://docs.sonarqube.org/display/SONAR/Authorization
Table of Contents
권한 관리
SonarQube의 권한(Authorization) 관리 매커니즘은 매우 표준적입니다. 관리자는 필요한 만큼 사용자(User) 및 그룹(Group)을 추가할 수 있으며, 사용자들은 하나 혹은 그 이상의 그룹에 속하거나 속하지 않을 수 있습니다. 각 사용자 및 그룹은 하나 혹은 그 이상의 권한을 가지며, 이 권한에 따라 프로젝트, 서비스 및 기타 기능에 대한 접근이 제한됩니다.
그룹 및 사용자를 관리하려면, Administration > Security 메뉴를 사용합니다
사용자
다양한 방법으로 권한을 설정하여 사용자에게 위임할 수 있습니다(플러그인 라이브러리 및 기타 플러그인 참조). 우선 Settings > Security > Users 메뉴에서 수동으로 상요자를 생성하거나, 기본 사용자 정보를 수정합니다. 수동으로 사용자를 생성하는 경우, 로그인 계정 및 비밀번호를 함께 생성할 수 있으며, 이후 해당 계정의 정보를 수정할 수 있습니다.
사용자 생성 및 정보 수정 단계에서 혜당 계정의 사용자 인터페이스 표시 이름과 이메일 주소를 설정할 수 있습니다. 로그인 계정 및 이메일 주소는 가능한 경우 SCM 계정과 동일하게 간주되어 이슈 할당 기능에서 활용됩니다. 이를 위해서는 추가적인 SCM 계정 설정이 필요합니다.
그룹
그룹은 사용자의 집합입니다.
신규 그룹을 생성하려면, Administration > Security > Groups > Add new group 메뉴를 사용합니다.
그룹의 구성원을 수정하려면, membership total 옆의 아이콘을 클릭합니다.
다음의 2개 그룹은 특별한 의미를 가집니다:
- Anyone: 이 그룹은 시스템에는 존재하나 관리를 할 수는 없습니다. Anonymous user를 포함한 모든 사용자는 기본적으로 이 그룹에 속합니다.
- sonar-users: 이 그룹은 모든 사용자가 자동으로 소속되는 기본 그룹입니다. 이 그룹을 변경하려면 Settings > General Settings > Security 메뉴에서 Default user group 속성을 변경합니다.
글로벌 권한
글로벌 권한을 설정하려면, System administrator 계정으로 접속한 후 Administration > Security > Global Permissions 메뉴를 사용합니다.
- Administer System: SonarQube 인스턴스의 모든 관리 기능(global configuration)을 사용합니다.
- Administer Quality Profiles: 품질 프로파일과 관련된 모든 기능을 사용합니다.
- Administer Quality Gates: 품질 게이트와 관련된 모든 기능을 사용합니다.
- Execute Analysis: 분석을 실행하고, 분석을 수행하는 데 필요한 모든 정보에 접근합니다(이 정보에는 SCM 계정 비밀번호와 같은 보안 정보도 포함됩니다).
- Create Projects: 분석 수행 전 분석 대상인 신규 프로젝트의 구조를 생성합니다. SonarQube GUI를 통해 생성하지 않은 프로젝트를 처음으로 분석하는 경우에도 이 권한이 필요합니다.
프로젝트 권한
프로젝트 권한은 프로젝트 레벨의 Administration 메뉴(Administration > Permissions)에서 사용합니다. Administration > Projects > Management > Actions(특정 프로젝트 선택) > Edit Permissions 메뉴에서 프로젝트 권한을 수정할 수 있습니다.
프로젝트 레벨 자원(projects, views, developers)에 대해 다음과 같은 5가지 권한을 설정할 수 있습니다:
- Browse: 프로젝트에 접속해 다양한 지표들을 확인하고, 이슈를 생성/ 수정합니다.
- See Source Code: 프로젝트의 소스 코드를 확인합니다.
- Administer Issues: 이슈의 고급 정보를 수정합니다. 이슈를 False Positive로 설정하거나, 이슈의 심각도 등을 변경합니다.
- Administer: 프로젝트 설정 메뉴에 접근하고 관리 태스크를 수행합니다.
- Execute Analysis: 분석을 실행하고, 분석을 수행하는 데 필요한 모든 정보에 접근합니다(이 정보에는 SCM 계정 비밀번호, jira 계정 비밀번호 등과 같은 보안 정보도 포함됩니다).
권한들은 누적되어 적용되지 않습니다. 예를 들어, 프로젝트를 관리해야 하는 경우, 프로젝트에 접근하기 위해서는 Browse 권한도 함께 가지고 있어야 합니다.
각 프로젝트에 대한 권한은 사용자 혹은 그룹에 수동으로 부여하거나, 프로젝트에 권한 템플릿(Permission Templates)을 적용해 부여할 수 있습니다.
기본 프로젝트 권한 부여를 위한 권한 템플릿
SonarQube는 기본 권한 템플릿(Permission Template)을 제공하며, 프로젝트(혹은 developer, view) 생성 시 자동으로 특정한 권한을 특정 그룹에게 부여합니다. 권한 템플릿은 자유롭게 수정/생성할 수 있으며, 일부의 신규 프로젝트에만 템플릿을 적용할 수도 있습니다.
권한 템플릿을 사용하려면, Administration > Security > Permission Templates 메뉴로 이동합니다.
권한 템플릿 생성하기
새로운 템플릿을 생성하려면 Administration > Security > Permission Templates 메뉴에서 "Create" 버튼을 클릭합니다. Project Key Pattern을 입력해 새롭게 생성하는 프로젝트들이 특정한 권한 템플릿을 자동 적용하도록 할 수 있습니다.
프로젝트 템플릿 수정하기
신규 템플릿 생성 시 해당 템플릿은 아무런 정보도 가지고 있지 않습니다. 템플릿 이름을 클릭하면 권한 수정 인터페이스로 이동합니다.
프로젝트 생성자 권한
프로젝트 생성자(Project Creator)는 매우 특별한 그룹으로, 이 그룹은 템플릿 권한 수정 인터페이스에만 표시됩니다. 프로젝트 생성시 해당 프로젝트를 생성한 사용자에게 부여되는 권한으로, 글로벌 레벨의 Project Creation 권한이 필요한 사용자에게 유용합니다. SonarQube 관리자는 특정 사용자들이 자율적으로 프로젝트를 생성하고 관리할 수 있도록 권한을 부여할 수 있습니다.
프로젝트를 생성한 이후 별도로 프로젝트 템플릿을 적용할 수 있지만, "Project Creators" 권한을 포함한 템플릿을 기존 프로젝트에 적용하더라도 해당 프로젝트를 최초로 생성한 사용자에게 관련 권한을 부여하지는 않습니다.
템플릿에 설정된 프로젝트 권한 초기화
프로젝트에 권한 템플릿을 적용하려면 Projects > Management 메뉴를 사용합니다. 프로젝트의 Actions > Apply Permission Template 옵션에서 특정한 프로젝트에 권한 템플릿을 적용하거나, Bulk Apply Permission Template를 활용해 복수의 프로젝트에 권한 템플릿을 적용할 수 있습니다.
프로젝트와 권한 템플릿 사이에는 아무런 연관성이 없습니다. 즉:
- 프로젝트와 관련된 권한은 해당 프로젝트에 권한 템플릿을 적용한 이후 수정 가능합니다.
- 권한 템플릿을 수덩하더라도 흐로젝트의 권한은 변경되지 않습니다.
FAQ
제가 제 계정의 권한을 잠궜습니다.
다음 데이터 베이스 명령어를 실행하여 System administrator를 다시 생성합니다:
INSERT INTO user_roles(user_id, role) VALUES ((select id from users where login='mylogin'), 'admin');
© 2017-2018 Moses Kim.
별도의 언급이 없는 한, 이 스페이스의 컨텐츠는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
SONARQUBE는 SonarSource SA의 트레이드 마크입니다. 모든 트레이트 마크 및 저작권은 각 소유자의 소유물입니다.
::: SonarQube 관련 문의 : 이메일 :::