개요
OIDC(OpenID Connect)를 사용하면 GitHub Actions 워크플로가 JFrog로 인증하여 GitHub에 JFrog 암호, 토큰 또는 API 키를 저장하지 않고도 아티팩트를 다운로드하고 게시할 수 있습니다.
이 가이드에서는 GitHub의 OIDC를 페더레이션 ID로 신뢰하도록 JFrog를 구성하는 방법에 대한 개요를 제공하고 GitHub Actions 워크플로에서 이 구성을 사용하는 방법을 보여 줍니다.
예제 GitHub Actions 워크플로의 경우 JFrog 설명서의 샘플 GitHub Actions 통합을 참조하세요.
JFrog CLI를 사용하는 예제 GitHub Actions 워크플로의 경우 jfrog-github-oidc-example
리포지토리의 build-publish.yml
을 참조하세요.
필수 조건
-
GitHub가 OIDC(OpenID Connect)를 사용하는 방법과 아키텍처 및 이점에 대한 기본 개념을 알아보려면 OpenID Connect를 사용한 보안 강화 정보을(를) 참조하세요.
-
계속하기 전에 액세스 토큰이 예측 가능한 방식으로만 할당되도록 보안 전략을 계획해야 합니다. 클라우드 공급자가 액세스 토큰을 발급하는 방법을 제어하려면 신뢰할 수 없는 리포지토리가 클라우드 리소스에 대한 액세스 토큰을 요청할 수 없도록 하나 이상의 조건을 정의해야 합니다. 자세한 내용은 OpenID Connect를 사용한 보안 강화 정보을(를) 참조하세요.
-
보안을 위해 ID 매핑을 구성할 때 JFrog에서 클레임 JSON을 설정해야 합니다. 자세한 내용은 AUTOTITLE 및 OpenID Connect를 사용한 보안 강화 정보을(를) 참조하세요.
예를 들어
iss
를https://token.actions.githubusercontent.com
에,repository
를 그리고 "octo-org/octo-repo"와 같은 항목에 설정할 수 있습니다. 이렇게 하면 지정된 리포지토리의 Actions 워크플로만 JFrog 플랫폼에 액세스할 수 있습니다. 다음은 ID 매핑을 구성할 때의 클레임 JSON 예제입니다.JSON { "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
{ "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
JFrog에 ID 공급자 추가
JFrog에서 OIDC를 사용하려면 GitHub Actions과 JFrog 플랫폼 간에 트러스트 관계를 설정합니다. 이 프로세스에 대한 자세한 내용은 JFrog 설명서의 OIDC(OpenID Connect) 통합을 참조하세요.
- JFrog 플랫폼에 로그인합니다.
- JFrog와 GitHub Actions 워크플로 간에 트러스트를 구성합니다.
- ID 매핑을 구성합니다.
GitHub Actions 워크플로 업데이트
OIDC를 사용하여 JFrog로 인증
GitHub Actions 워크플로 파일에서 JFrog 플랫폼에서 구성한 공급자 이름과 대상 그룹을 사용하고 있는지 확인합니다.
다음 예제에서는 자리 표시자 YOUR_PROVIDER_NAME
및 YOUR_AUDIENCE
를 사용합니다.
permissions:
id-token: write
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up JFrog CLI with OIDC
id: setup-jfrog-cli
uses: jfrog/setup-jfrog-cli@29fa5190a4123350e81e2a2e8d803b2a27fed15e
with:
JF_URL: $
oidc-provider-name: 'YOUR_PROVIDER_NAME'
oidc-audience: 'YOUR_AUDIENCE' # This is optional
- name: Upload artifact
run: jf rt upload "dist/*.zip" my-repo/
팁
OIDC 인증을 사용하는 경우setup-jfrog-cli
작업은 자동으로 oidc-user
와 oidc-token
을 단계 출력으로 제공합니다.
JFrog를 사용하여 인증해야 하는 다른 통합에 사용할 수 있습니다.
이러한 출력을 참조하려면 단계에 명시적 id
정의되어(예: id: setup-jfrog-cli
) 있는지 확인합니다.
다른 단계에서 OIDC 자격 증명 사용
- name: Sign in to Artifactory Docker registry
uses: docker/login-action@v3
with:
registry: $
username: $
password: $
추가 참고 자료
- JFrog 설명서의 OpenID Connect 통합
- JFrog 설명서의 ID 매핑
- AUTOTITLE