snow · 2026.5.15 11:07 · 조회 1
Jenkins 보안 설정
보안 설정 접근
Jenkins 관리 → Security (보안 설정)
인증(Authentication) 설정
Jenkins 자체 사용자 DB
기본 설정. Jenkins 내부에서 사용자를 직접 관리합니다.
- Security Realm: Jenkins' own user database
- Allow users to sign up: 필요에 따라 체크/해제
LDAP 연동
Active Directory 또는 OpenLDAP와 연동합니다.
Security Realm → LDAP
Server: ldap://your-ldap-server:389
Root DN: dc=example,dc=com
User search filter: uid={0}
GitHub OAuth
GitHub 계정으로 로그인합니다. GitHub Authentication 플러그인 필요.
권한(Authorization) 설정
Matrix-based Security (권장)
세밀한 권한 제어가 가능합니다.
| 권한 그룹 | 주요 권한 |
|---|---|
| Overall | Administer, Read |
| Job | Build, Cancel, Configure, Create, Delete, Read, Workspace |
| View | Configure, Create, Delete, Read |
| Agent | Build, Configure, Connect, Create, Delete |
설정 방법
- Authorization: Matrix-based security 선택
- Add user/group 버튼으로 사용자 추가
- 각 권한 항목 체크박스로 개별 권한 부여
Role-Based Strategy (권장 플러그인)
Role-based Authorization Strategy 플러그인을 사용하면 역할(Role) 단위로 권한을 관리할 수 있습니다.
Jenkins 관리 → Manage and Assign Roles
→ Global roles: admin, developer, viewer
→ Project roles: 정규식으로 특정 Job에만 권한 부여
CSRF 보호
Prevent Cross Site Request Forgery exploits 항상 활성화 권장.
파이프라인 원격 트리거 시 Crumb을 함께 전송해야 합니다.
1# Crumb 발급2CRUMB=$(curl -s 'http://admin:TOKEN@jenkins/crumbIssuer/api/json' | python3 -c "import sys,json; print(json.load(sys.stdin)['crumb'])")3 4# 빌드 트리거5curl -X POST http://admin:TOKEN@jenkins/job/my-job/build \6 -H "Jenkins-Crumb: $CRUMB"Agent 보안
TCP 포트 설정
Security → Agents 섹션에서 Agent 연결 포트를 고정 설정합니다. (기본: 50000)
방화벽에서 해당 포트만 허용하도록 설정하세요.
SSL/HTTPS 설정
리버스 프록시(Nginx/Apache)를 통해 HTTPS를 적용하는 것을 권장합니다.
1server {2 listen 443 ssl;3 server_name jenkins.example.com;4 5 ssl_certificate /etc/ssl/certs/jenkins.crt;6 ssl_certificate_key /etc/ssl/private/jenkins.key;7 8 location / {9 proxy_pass http://localhost:8080;10 proxy_set_header Host $host;11 proxy_set_header X-Real-IP $remote_addr;12 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;13 proxy_set_header X-Forwarded-Proto $scheme;14 }15}댓글
아직 댓글이 없습니다.
댓글을 작성하려면 로그인이 필요합니다.