/
κΆŒν•œ

이 λ¬Έμ„œλŠ” SonarQube v6.4 기반의 λ¬Έμ„œλ‘œ μ•„μΉ΄μ΄λΈŒ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
μ΅œμ‹  λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

κΆŒν•œ

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');

Related content

κΆŒν•œ
κΆŒν•œ
More like this
μ‹œμŠ€ν…œ λ³΄μ•ˆ
μ‹œμŠ€ν…œ λ³΄μ•ˆ
More like this
μ‹œμŠ€ν…œ λ³΄μ•ˆ
μ‹œμŠ€ν…œ λ³΄μ•ˆ
More like this
인증
인증
More like this
인증
인증
More like this
μ‚¬μš©μž 계정
μ‚¬μš©μž 계정
More like this

Β© 2017-2018 Moses Kim.

λ³„λ„μ˜ 언급이 μ—†λŠ” ν•œ, 이 슀페이슀의 μ»¨ν…μΈ λŠ” ν¬λ¦¬μ—μ΄ν‹°λΈŒ 컀먼즈 μ €μž‘μžν‘œμ‹œ-λΉ„μ˜λ¦¬-λ™μΌμ‘°κ±΄λ³€κ²½ν—ˆλ½ 4.0 ꡭ제 λΌμ΄μ„ μŠ€μ— 따라 μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
SONARQUBEλŠ” SonarSource SA의 νŠΈλ ˆμ΄λ“œ λ§ˆν¬μž…λ‹ˆλ‹€. λͺ¨λ“  트레이트 마크 및 μ €μž‘κΆŒμ€ 각 μ†Œμœ μžμ˜ μ†Œμœ λ¬Όμž…λ‹ˆλ‹€.

::: SonarQube κ΄€λ ¨ 문의 : 이메일 :::