We are Architect

젠킨스로 배우는 CICD 파이프라인: 자격 증명 관리(8) 본문

CI & CD/Jenkins

젠킨스로 배우는 CICD 파이프라인: 자격 증명 관리(8)

the best infra 2024. 12. 24. 22:33

 

* 자격 증명 관리란?

  • 젠킨스 서버가 다른 외부 도구들을 이용하기 위해서 도구들에 접속할 수 있게 도와주는 비밀번호 및 API토큰을 관리하는 방식이다.
  • 예를 들어 젠킨스가 접속하려는 시스템에서 기본 인증을 요구한다면 사용자 이름과 비밀번호를 제공해야 한다.
  • 혹은 SSH인증을 요구하면 개인키를 제공해야한다. 
  • 젠킨스에서는 인증에 필요한 정보를 자격 증명이라고 한다. 젠킨스에서는 자격증명 항목을 생성하고 인스턴스 내에 이 정보를 저장할 수 있다. 

 

 

* 자격 증명 항목 생성

  • 넥서스나 깃 등의 외부 도구에서 사용자를 인증하는 데 사용하는 기법은 여러가지가 존재.
    • 기본 인증(비밀번호)
    • SSH 인증(개인키)
    • API 토큰
    • 인증서
  • 젠킨스의 자격증명 플러그인을 사용하면 다양한 유형의 작격 증명을 생성하고, 필요 인증 정보를 저장할 수 있다.
  • 일단 자격 증명 항목이 생성되면 젠킨스 작업/파이프라인 작업을 할 때 자격 증명 ID를 통해 이를 참조할 수 있다.
    • 이때 자격증명 binding 플러그인의 도움이 필요하다. 

 

 

* 범위 및 도메인 이해

  • 젠킨스의 자젹 증명 항목을 생성하는데 이해해야 할 개념이 두 가지 정도 존재한다. 
    • 범위 : 자격증명을 사용할 수 있는 범위(어디에서 사용 가능한지)를 정의. 
      • 전역 : 젠킨스 전체에서 사용 가능한 자격증명.
        • 예시
          • 공용 GitHub 액세스 토큰이나 Docker Registry 계정 정보.
      • 시스템 : 시스템 범위로 지정된 자격 증명은 젠킨스 인스턴스에서 이메일 인증이나 에이전트 연결 등과 같은 시스템 기능을 수행하는 데만 사용할 수 있다. 이 자격 증명은 젠킨스 작업에서 사용할 수 없다. 
    • 도메인 : 자격증명의 도메인은 특정 자격증명을 사용할 대상 서비스를 분리하여 관리
      • 자격증명을 논리적으로 그룹화하여 보안과 관리 효율성을 높임.
      • 예시
        • Git 도메인: GitHub 또는 GitLab에 접근하기 위한 사용자명, 패스워드 또는 토큰.
        • Docker 도메인: Docker Registry 인증을 위한 사용자명과 패스워드.
        • 클라우드 도메인: AWS, Azure, Google Cloud와 같은 클라우드 자격증명.

 

* 전역 범위와 전역 도메인에서 자격 증명 항목 생성

  • 자격증명 설정은 이곳에서 이루어진다. Dashborad > jenkins manage > Credentials 

  • global를 누르고 새로운 자격증명을 만든다.
    • 필요한 정보들을 입력해 준 후에 create 

 

  • 업데이트는 다음과 같이 진행된다.
    • 업데이트 후 꼭 Save를 해준다.

 

 

 

* 특정 도메인에서 자격 증명 항목 생성

  • 도메인에서 자격 증명항목을 생성하는 법은 다음 페이지에서 설정한다. 
    • 대시보드 > 젠킨스 manage > 자격증명 > 시스템

  • 용도에 맞게 도메인 이름을 입력한다.
    • 만약 gitlab.com 관련 자격 증명 정보가 들어가려면 해당 도메인 생성 후 자격증명을 생성해서 관련 정보를 입력하여 준다.

  • 이번에는 깃랩에 SSH접속을 하기 위해 필요한 자격증명 정보를 입력해줘야 하고 이후에 생성한다.
    • Scope : 젠킨스에서 모든 접근 허가.
    • ID : 해당 자격증명을 불러올 이름.
    • username : 깃랩 아이디.
    • Key : 깃랩에 접속하기 위한 사설키.
      • 젠킨스에서 SSH인증 자격 증명을 생성하려면 ssh key gen 명령을 사용해 공개 키와 개인 키를 생성해야 함.
    • passhrase : 암호문을 입력하는 곳.

 

  • 잘 생성되면 구성 페이지의 자격증명에 username이 보이는 것을 확인할 수 있다. 

 

 

* 자격 증명 공급자 구성

  • 젠킨스에서는 여러 유형의 자격 증명을 구성할 수 있다.

  • 해당 페이지에는 Providers와 Type이라는 드롭다운 메뉴가 표시되어 있고 All available이 기본값이다.
    • provider : 드롭다운 메뉴에서 Only selected 옵션을 선택하면 2개의 옵션이 나타난다.
      • 젠킨스 자격증명 공급자 : 이 공급자는 젠킨스 루트 사용자의 자격 증명을 제공하고 젠킨스와 특정 도메인에서 전역 및 시스템 유형의 자격 증명을 생성할 수 있도록 한다. 모든 사용자의 작업에서 사용가능하다.
      • 유저 자격증명 공급자 : 이 공급자에서 생성된 자격 증면은 해당 사용자가 생성한 작업과 해당 사용자가 실행한 작업에서만 사용할 수 있다.