젠킨스 인증 정보(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에서 토큰 생성

  1. GitHub 로그인 → Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. "Generate new token (classic)" 클릭
  3. 필요한 권한 선택 (최소한 repo 권한 필요)
  4. 생성된 토큰 복사 (한 번만 보여주므로 잘 저장해둘 것)

Step 2: 젠킨스에 토큰 등록

  1. 젠킨스 관리 → Credentials → System → Global credentials
  2. "Add Credentials" 클릭
  3. Kind: Username with password 선택
  4. 입력 항목:
    • 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 플러그인이 설치되어 있어야 한다. 플러그인 설정 가이드를 참고해서 설치한다.

등록 방법

  1. 젠킨스 관리 → Credentials → System → Global credentials
  2. "Add Credentials" 클릭
  3. Kind: AWS Credentials 선택
  4. 입력 항목:
    • 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 생성 및 토큰 발급

  1. Slack API에서 새 앱 생성
  2. OAuth & Permissions에서 Bot Token Scopes 추가 (chat:write, chat:write.public)
  3. Install to Workspace
  4. Bot User OAuth Token 복사 (xoxb-로 시작)

Step 2: 젠킨스에 토큰 등록

  1. 젠킨스 관리 → Credentials → System → Global credentials
  2. "Add Credentials" 클릭
  3. Kind: Secret text 선택
  4. 입력 항목:
    • Secret: Slack Bot Token
    • ID: slack-token

Step 3: Slack 플러그인 설정

  1. 젠킨스 관리 → 시스템 설정 → Slack
  2. Workspace: 슬랙 워크스페이스 이름
  3. Credential: 방금 등록한 slack-token 선택
  4. 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}")
        }
    }
}

인증 정보 보안 팁

  1. 최소 권한 원칙 — 필요한 권한만 부여한다
  2. 정기적인 토큰 갱신 — 토큰은 주기적으로 교체하는 게 좋다
  3. Credential ID 일관성 — 팀 내에서 ID 네이밍 규칙을 정해두면 관리가 편하다
  4. 테스트 환경 분리 — 개발/스테이징/프로덕션 환경별로 별도의 크레덴셜을 사용한다

참고

이 포스트는 젠킨스 완벽 가이드 시리즈의 일부다. 파이프라인 구성 등 다른 주제는 해당 가이드에서 확인할 수 있다.