역할에 따른 접근 권한
Apollo는 역할 기반 접근 제어(Role-based access control, RBAC)로 사용자가 수행할 수 있는 작업을 결정합니다. 팀에 역할을 부여하면 그 팀의 사용자가 해당 역할의 권한을 얻습니다. 역할은 특정 유형의 모든 리소스에 적용하거나, STAGING 릴리스 채널처럼 하나의 리소스에만 적용할 수 있습니다.
인증은 사용자가 누구인지 확인하는 과정이고, 접근 권한은 인증된 사용자가 무엇을 할 수 있는지 결정합니다.
권한 관리자를 지정하기
Settings & Configuration → Permissions에서 오른쪽 위의 Manage를 선택하면 Apollo의 역할 할당을 관리할 팀을 지정할 수 있습니다.
| 역할 | 허용하는 작업 |
|---|---|
Administrator | Apollo의 역할 할당 관리 |
Viewer | Apollo의 역할 할당 조회 |
역할 이름은 적용 대상과 함께 해석해야 합니다. 여기서 Administrator는 역할 할당을 관리하는 역할입니다. 릴리스 채널의 Administrator처럼 개별 리소스 유형에 정의된 같은 이름의 역할과 구분합니다.
리소스 유형 전체에 역할 부여하기
Settings & Configuration → Permissions에서는 다음 유형의 모든 리소스에 적용할 역할을 설정할 수 있습니다.
Release ChannelsVulnerability suppressionsVulnerability SLA settingsProductsLabelsEnvironments
- 왼쪽 패널에서 리소스 유형을 선택합니다.
- Add more teams... 검색창으로 팀을 추가합니다.
- 팀 오른쪽의 드롭다운에서 부여할 역할을 선택합니다. 필요한 경우 여러 역할을 선택합니다.
왼쪽 패널에서 리소스 유형 오른쪽의 역할 표시 위에 마우스를 올리면 해당 유형에서 사용할 수 있는 역할을 확인할 수 있습니다.
릴리스 채널
| 역할 | 허용하는 작업과 조건 |
|---|---|
Administrator | 설명과 레이블 요건 등 채널 메타데이터 수정 |
Contributor | 레이블 요건을 충족하는 모든 제품 릴리스를 채널에 추가 |
Restricted contributor | 레이블 요건을 충족하면서 사용자가 소유한 제품 릴리스를 채널에 추가 |
Viewer | 채널과 메타데이터 조회. 채널에 추가된 제품 릴리스도 포함 |
Vulnerability suppressions
| 역할 | 허용하는 작업 |
|---|---|
Administrator | 설정 관리와 역할 할당 |
Approver | 설정 변경 승인 |
Viewer | 설정과 내용 조회 |
Vulnerability SLA settings
| 역할 | 허용하는 작업 |
|---|---|
Administrator | 설정 관리와 역할 할당 |
Approver | 설정 변경 승인 |
Viewer | SLA 설정과 내용 조회 |
두 유형에 같은 역할 이름이 있더라도 적용 대상은 다릅니다. 한 유형에 역할을 부여하는 것으로 다른 유형의 역할까지 부여하지는 않습니다.
제품과 제품 릴리스
| 역할 | 허용하는 작업과 범위 |
|---|---|
Product administrator | 제품과 제품 릴리스에 대한 모든 작업 |
Release creator | 이미 존재하는 제품의 릴리스 생성과 삭제. 새 제품 생성 권한은 포함하지 않음 |
Product creator | 제품 생성과 삭제 |
Product editor | 제품과 릴리스 메타데이터 수정, 설정 변경 승인 |
Product viewer | 제품과 제품 릴리스 조회 |
릴리스 발행만 담당하는 팀에는 기존 제품의 릴리스를 관리할 권한을 부여할 수 있습니다. 새 제품을 생성하는 작업까지 맡기려는 경우에는 제품 생성 권한도 함께 검토합니다.
레이블
| 역할 | 허용하는 작업과 조건 |
|---|---|
Label administrator | 레이블 설명과 기타 메타데이터 수정 |
Label contributor | 리소스에 레이블 적용. 적용 대상 리소스의 쓰기 권한도 필요 |
Label creator | 레이블 생성 |
Label viewer | 레이블과 대응하는 값 조회 |
배포 환경에 레이블을 붙이려면 그 레이블의 Label contributor 역할뿐 아니라 배포 환경의 Editor 권한이 필요합니다. 배포 환경의 Administrator는 Editor 권한을 포함합니다. 제품이나 제품 릴리스에 레이블을 붙이는 경우에는 대상의 Product editor 권한도 필요합니다.
배포 환경과 배포 개체
| 역할 | 허용하는 작업과 범위 |
|---|---|
Creator | 배포 환경 생성. 전역 범위에 부여할 때 의미가 있음 |
Administrator | 배포 환경과 그 안의 배포 개체에 대한 역할 관리. Editor와 Viewer의 권한도 포함 |
Editor | 배포 환경 변경과 배포 개체의 권한이 높은 작업 수행. Viewer의 권한도 포함 |
Operator | 배포 환경 안의 배포 개체에 대한 일상 운영 작업. 구성 변경 승인, 레이블 수정 등 |
Viewer | 변경 요청, 구성값, 배포 개체 등 배포 환경 관련 정보 조회 |
Editor가 관리할 수 있는 배포 환경 항목에는 변경 억제 시간대, 유지보수 시간대 재정의, 레이블, 비밀 정보(Secret), 구독, 모니터가 포함됩니다. 배포 개체 수준에서는 비밀 정보, 구독, 메타데이터를 관리할 수 있습니다.
특정 리소스에만 역할 부여하기
유형 전체에 역할을 부여하는 대신 필요한 제품, 채널, 레이블, 배포 환경에 역할을 지정할 수 있습니다. 먼저 권한이 필요한 대상의 범위를 정하고, 그 범위의 설정 화면을 엽니다.
개별 제품
제품 페이지 오른쪽 위에서 Actions → Edit roles...를 선택합니다. 이 경로는 선택한 제품의 역할을 관리할 때 사용합니다.
개별 릴리스 채널
- Settings & Configuration → Release channels로 이동합니다.
- 변경할 채널을 선택합니다.
- Channel Details 패널에서 Edit를 선택합니다.
- 열린 설정 창의 Permissions 탭에서 팀을 추가하거나, 팀 오른쪽 드롭다운으로 역할을 변경합니다.
개별 레이블
- Settings & Configuration → Labels로 이동합니다.
- 변경할 레이블 위에 마우스를 올립니다.
- 레이블 오른쪽의 Edit를 선택합니다.
- Permissions 탭의 검색창으로 팀을 추가하거나, 팀 오른쪽 드롭다운으로 역할을 변경합니다.
여기서 Label contributor를 부여해도 적용 대상 리소스의 쓰기 권한이 생기는 것은 아닙니다. 레이블 적용이 허용되는지 판단할 때는 두 권한을 모두 확인합니다.
개별 배포 환경
- 배포 환경 홈 오른쪽 위에서
Actions → Edit roles...를 선택합니다. - 배포 환경 설정의 Roles 탭에서 팀을 검색해 추가합니다.
- 팀 오른쪽 드롭다운으로 역할을 지정합니다.
Manage default entity roles for this environment에서는 그 배포 환경에 속한 모든 배포 개체가 상속할 기본 역할을 설정합니다. 배포 환경 자체의 역할과 배포 개체에 적용할 기본 역할을 구분해 설정합니다.
개별 배포 개체
- 배포 개체 홈 오른쪽 위에서
Actions → Edit roles...를 선택합니다. - 열린 창의 검색창으로 팀을 추가합니다.
- 팀 오른쪽 드롭다운으로 역할을 지정합니다.
배포 개체는 자신이 속한 배포 환경의 기본 배포 개체 역할을 상속합니다. 개별 배포 개체의 역할 설정은 여기에 권한을 추가할 수 있지만, 상속한 권한을 제거하지는 못합니다.
특정 배포 개체에서 팀의 접근을 줄이려면, 그 팀이 배포 환경의 기본 역할을 통해 이미 권한을 받고 있는지 먼저 확인해야 합니다.
배포 개체의 역할 종류는 배포 환경과 같지만 적용 범위는 해당 배포 개체입니다. 한 배포 개체에 추가한 역할을 다른 배포 개체가 상속하지 않습니다.