젠킨스 인증 정보(Credentials) 설정 가이드 - GitHub, AWS, Slack
English (N/A)
젠킨스가 GitHub, AWS, Slack 등 외부 서비스와 연동하려면 인증 정보(Credentials)를 등록해야 한다. 플러그인 설정을 마쳤다면 이제 크레덴셜을 등록해보자.
인증 정보 관리 위치
젠킨스 관리 → Credentials → System → Global credentials (unrestricted) 에서 인증 정보를 추가하고 관리할 수 있다.
1. GitHub Personal Access Token 등록
프라이빗 저장소에서 소스 코드를 가져오려면 GitHub Personal Access Token(PAT)이 필요하다.
Step 1: GitHub에서 토큰 생성
- GitHub 로그인 → Settings → Developer settings → Personal access tokens → Tokens (classic)
- "Generate new token (classic)" 클릭
- 필요한 권한 선택 (최소한
repo권한 필요) - 생성된 토큰 복사 (한 번만 보여주므로 잘 저장해둘 것)
Step 2: 젠킨스에 토큰 등록
- 젠킨스 관리 → Credentials → System → Global credentials
- "Add Credentials" 클릭
- Kind: Username with password 선택
- 입력 항목:
- Username: 토큰 이름 (형식적으로 입력, 실제로 사용되지 않음)
- Password: 생성한 Personal Access Token
- ID:
gitcredential(Jenkinsfile에서 참조할 식별자) - Description: 설명 (선택)
Jenkinsfile에서 사용
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git credentialsId: 'gitcredential',
url: 'https://github.com/your-org/your-repo.git',
branch: 'main'
}
}
}
}
2. AWS Credentials 등록
AWS 서비스(S3, ECR, ECS 등)와 연동하려면 AWS 인증 정보가 필요하다.
사전 준비
AWS Global Configuration 플러그인이 설치되어 있어야 한다. 플러그인 설정 가이드를 참고해서 설치한다.
등록 방법
- 젠킨스 관리 → Credentials → System → Global credentials
- "Add Credentials" 클릭
- Kind: AWS Credentials 선택
- 입력 항목:
- Access Key ID: AWS Access Key
- Secret Access Key: AWS Secret Key
- ID:
aws-credentials(Jenkinsfile에서 참조할 식별자)
Jenkinsfile에서 사용
pipeline {
agent any
stages {
stage('Deploy to S3') {
steps {
withAWS(credentials: 'aws-credentials', region: 'ap-northeast-2') {
s3Upload(bucket: 'your-bucket', path: 'dist/', includePathPattern: '**/*')
}
}
}
}
}
3. Slack 인증 정보 등록
빌드 결과를 Slack으로 알림 받으려면 Slack 인증 정보를 등록해야 한다.
Step 1: Slack App 생성 및 토큰 발급
- Slack API에서 새 앱 생성
- OAuth & Permissions에서 Bot Token Scopes 추가 (chat:write, chat:write.public)
- Install to Workspace
- Bot User OAuth Token 복사 (xoxb-로 시작)
Step 2: 젠킨스에 토큰 등록
- 젠킨스 관리 → Credentials → System → Global credentials
- "Add Credentials" 클릭
- Kind: Secret text 선택
- 입력 항목:
- Secret: Slack Bot Token
- ID:
slack-token
Step 3: Slack 플러그인 설정
- 젠킨스 관리 → 시스템 설정 → Slack
- Workspace: 슬랙 워크스페이스 이름
- Credential: 방금 등록한
slack-token선택 - Default channel: 기본 알림 채널
Jenkinsfile에서 사용
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'npm run build'
}
}
}
post {
success {
slackSend(channel: '#deployments', color: 'good', message: "Build succeeded: ${env.JOB_NAME} #${env.BUILD_NUMBER}")
}
failure {
slackSend(channel: '#deployments', color: 'danger', message: "Build failed: ${env.JOB_NAME} #${env.BUILD_NUMBER}")
}
}
}
인증 정보 보안 팁
- 최소 권한 원칙 — 필요한 권한만 부여한다
- 정기적인 토큰 갱신 — 토큰은 주기적으로 교체하는 게 좋다
- Credential ID 일관성 — 팀 내에서 ID 네이밍 규칙을 정해두면 관리가 편하다
- 테스트 환경 분리 — 개발/스테이징/프로덕션 환경별로 별도의 크레덴셜을 사용한다
참고
이 포스트는 젠킨스 완벽 가이드 시리즈의 일부다. 파이프라인 구성 등 다른 주제는 해당 가이드에서 확인할 수 있다.