Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- docker
- nexus
- python
- 리눅스
- maven
- 애저
- git hub
- 명령어
- Linux
- terraform
- go
- it기사
- 함수
- AI챗봇
- open ai
- AI
- dockerfile
- awskrug
- AWS
- GIT
- Azure
- aws사용자모임
- 표준 라이브러리
- 클라우드
- 사용자 계정 관리
- 파이썬
- jenkins
- 변수
- 3티어 아키텍처
- 프로세스 관리
Archives
- Today
- Total
We are Architect
젠킨스로 배우는 CICD 파이프라인: 젠킨스 보안 관리(7) 본문
* 젠킨스 보안 설정
- 젠킨스에서는 인증과 권한 부여 기능을 설정하는 기능이 존재한다.
- 인증은 로그인과 같이 시스템에 접속하는 사용자의 신원을 확인하는 절차를 이야기한다.
- 권한 부여 기능은 말 그대로 사용자에게 시스템 기능에 접근할 수 있는 권한을 부여해 준다.
* 젠킨스의 전역 보안 구성
- 젠킨스의 보안 관련 설정은 해당 페이지에서 설정한다.
- 보안 관련 설정들
- Disable “Keep me signed in”(내 정보 기억 비활성화) : 이 옵션은 선택 해제된 상태가 기본값이며 해당기능은 마치 구글의 비밀번호 등을 쿠키 데이터로 기억해서 자동 로그인 시키는 시스템.
- Security Realm : 사용자 인증을 담당하는 보안 시스템을 설정하는 섹션
- delegate to servlet container(서블릿 컨테이너에 위임) : 젠킨스는 제티나 톰캣 등과 같은 자바 서블릿 컨테이너에서 실행되는 자동화 서버이다. 쉽게 말해 Jenkins는 서블릿 컨테이너(톰캣)가 제공하는 보안 시스템을 사용하고, 자신은 인증 결과만 받아서 처리한다.
- Jenkins' own user database(젠킨스 자체 사용자 데이터베이스) : 서드파티 제품을 이용하지 않고 젠킨스 자체 데이터베이스에서 사용자를 생성하고 관리할 때 사용하는 옵션.
- 사용자 계정 생성은 다음 경로에서 진행된다.
- 대시보드 > 젠킨스 관리 > 젠킨스 자기 자신의 데이터베이스
- 사용자 계정 생성은 다음 경로에서 진행된다.
- LDAP : LDAP 서버와 통합해 사용자 정보를 가져오고 인증 처리.
- 사용하려면 따로 LDAP 플러그인을 설치해야 한다.
- Active Directory : Microsoft Active Directory와 연동해 인증 처리.
- 사용자 가입 허용 : 로그인 화면에서 사용자의 회원 가입 버튼을 활성화한다.
- 아무래도 보안상 아무나 가입하게 두면 취약하기 때문에 권장하지 않는다.
- none : 젠킨스 접속 시 어떤 인증도 하지 않고 익명의 사용자로 간주된다.
- 해당 설정을 하고 서버에 접속을 시동하면 권한이 없다고 오류가 뜬다.
- 허용하려면 젠킨스의 config.xml 파일 설정에서 <denyAnonymousReadAccess>를 false로 설정. 설정 후 재접속하면 읽기 권한으로 접속 가능.
- Authorization : 사용자의 제어 권한 설정 섹션.
- Anyone can do anything(모든 사용자가 모든 권한 가능) : 모든 사용자가 로그인 여부와 관계없이 모든 작업을 수행할 수 있음
- Logged-in users can do anything (로그인한 사용자는 모든 작업 가능) : Jenkins에 로그인한 사용자는 모든 작업(빌드 실행, 설정 변경 등)을 수행할 수 있음.
- Matrix-based security(매트릭스 기반 보안) : 각 사용자 또는 그룹별로 세부적인 권한을 설정할 수 있는 가장 강력한 방식.
- Project-based Matrix Authorization Strategy(프로젝트별 권한 관리) : 각 프로젝트에 대해 사용자나 그룹별로 세부적인 권한을 설정.
-
Agents : 에이전트는 Jenkins 컨트롤러(마스터)의 지시를 받아 작업을 실행
- TCP port for inbound agents : 분산 빌드와 관련된 기능. 분산 빌드에서는 별도의 젠킨스 에이전트를 구성해야 한다. 이 옵션에서는 지정한 포트를 사용해 젠킨스 에이전트와 통신한다.
- Random옵션: 다른 프로세스에서 사용하지 않는 포트를 사용
- Fixed옵션 : 다른 프로세스에서 사용하지 않는 포트를 직접 설정해서 사용. 고정 옵션을 많이 사용.
- TCP port for inbound agents : 분산 빌드와 관련된 기능. 분산 빌드에서는 별도의 젠킨스 에이전트를 구성해야 한다. 이 옵션에서는 지정한 포트를 사용해 젠킨스 에이전트와 통신한다.
-
CSRF Protection : 사이트 간 요청 위조 공격 보호를 하기 위해서 사용자 정보 기반으로 토큰을 생성하는 섹션.
- 토큰에는 다음과 같은 값이 들어 가 있다.
- 사용자 이름
- 웹 세션 아이디
- 사용자 컴퓨터 ip주소
- 젠킨스 인스턴스 고유한 솔트값.
- 솔트값은 보안에서 사용되는 데이터로, 암호화 또는 해싱 과정.
- 토큰에는 다음과 같은 값이 들어 가 있다.
-
API Token : 젠킨스에서 제공하는 REST API나 CLI명령. 다른 애플리케이션 등을 통해 젠킨스에 접속할 때, 접근을 제어하는 구성과 관련 돼 있다.
- Generate a legacy API token for each newly created user : 새로운 사용자가 생성될 때, 자동으로 레거시 API 토큰(구버전 API 토큰)을 생성하는 옵션
- Allow users to manually create a legacy API token : 사용자가 자신의 레거시 API 토큰을 직접 생성할 수 있도록 허용하는 옵션.
- Enable API Token usage statistics : Jenkins가 API 토큰 사용 통계를 활성화하는 옵션.
- 통계 데이터는 각 API 토큰이 어디에서, 언제 사용되었는지 기록. 가장 권장.
'CI & CD > Jenkins' 카테고리의 다른 글
젠킨스로 배우는 CICD 파이프라인: 사용자 관리(9) (0) | 2024.12.25 |
---|---|
젠킨스로 배우는 CICD 파이프라인: 자격 증명 관리(8) (0) | 2024.12.24 |
젠킨스로 배우는 CICD 파이프라인: 젠킨스 플러그인 관리(6) (1) | 2024.12.24 |
젠킨스로 배우는 CICD 파이프라인: 젠킨스 플러그인 관리(5) (1) | 2024.12.23 |
젠킨스로 배우는 CICD 파이프라인: 젠킨스 구성(4) (1) | 2024.12.21 |