Skip to main content

Azure Blob Storage에서 GitHub Actions 사용

GitHub Enterprise Server에서 GitHub Actions를 사용하도록 설정하고 Azure Blob Storage를 사용하여 워크플로 실행에 의해 생성된 데이터를 저장할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Site administrators can enable GitHub Actions and configure enterprise settings.

GitHub Actions에 대한 외부 스토리지 정보

GitHub Actions는 외부 blob 스토리지를 사용하여 워크플로 실행으로 생성된 데이터터를 저장합니다. 저장된 데이터에는 워크플로 로그, 캐시 및 사용자가 업로드한 빌드 아티팩트가 포함됩니다. 자세한 내용은 “GitHub Enterprise Server용 GitHub Actions 시작”을(를) 참조하세요.

외부 스토리지 공급자에 연결하도록 GitHub Enterprise Server을(를) 구성하는 두 가지 옵션이 있습니다.

  • OpenID Connect(OIDC)
  • 비밀을 사용하는 기존 자격 증명 기반 인증

스토리지 공급자에 대한 중요하고 수명이 긴 자격 증명 비밀을 만들거나, 관리할 필요가 없고 노출될 위험이 있으므로 가능한 경우 OIDC를 사용하는 것이 좋습니다. OIDC를 사용하여 트러스트를 정의한 후 클라우드 스토리지 공급자는 GitHub Enterprise Server 인스턴스에 단기 액세스 토큰을 자동으로 발급합니다. 이 토큰은 자동으로 만료됩니다.

필수 조건

GitHub Actions를 사용하도록 설정하기 전에 다음 단계를 완료했는지 확인합니다.

  • 워크플로 데이터를 저장하기 위한 Azure Storage 계정을 만듭니다. GitHub Actions는 해당 데이터를 블록 Blob으로 저장하며, 다음 두 가지 스토리지 계정 유형이 지원됩니다.

    • 표준 성능 계층을 사용하는 범용 스토리지 계정(general-purpose v1 또는 general-purpose v2라고도 함)

      Warning

      프리미엄 성능 계층은 범용 스토리지 계정으로 사용할 수 없습니다. 스토리지 계정을 만들 때 표준 성능 계층을 선택해야 하며, 나중에 변경할 수 없습니다.

    • 프리미엄 성능 계층을 사용하는 BlockBlobStorage 스토리지 계정

    Azure Storage 계정 유형 및 성능 계층에 대한 자세한 내용은 Azure 설명서를 참조하세요.

  • GitHub Actions에 대한 하드웨어 요구 사항을 검토합니다. 자세한 내용은 "GitHub Enterprise Server용 GitHub Actions 시작"을(를) 참조하세요.

  • GitHub Enterprise Server의 도메인에 대해 TLS를 구성해야 합니다. 자세한 내용은 "TLS 구성"을(를) 참조하세요.

    Note

    신뢰할 수 있는 기관에서 서명한 인증서를 사용하여 GitHub Enterprise Server에서 TLS를 구성하는 것이 좋습니다. 자체 서명된 인증서가 작동할 수 있지만 자체 호스팅 실행기에는 추가 구성이 필요하며 프로덕션 환경에는 권장되지 않습니다.

  • GitHub에 HTTP 프록시 서버가 구성되어 있는 경우:

  • HTTP 프록시 제외 목록에 .localhost127.0.0.1, ::1을(를) 이 순서로 추가해야 합니다.

  • 외부 스토리지 위치를 라우팅할 수 없는 경우, 외부 스토리지 URL도 제외 목록에 추가해야 합니다.

프록시 설정 또는 변경에 대한 자세한 내용은 "아웃바운드 웹 프록시 서버 구성"(을)를 참조하세요.

  • 스토리지 공급자에 대한 연결에 OIDC를 사용하는 경우 GitHub Enterprise Server 인스턴스에서 다음 OIDC 토큰 서비스 URL을 공용 인터넷에 노출해야 합니다.

    https://HOSTNAME/_services/token/.well-known/openid-configuration
    https://HOSTNAME/_services/token/.well-known/jwks
    

    이렇게 하면 스토리지 공급자가 인증을 위해 GitHub Enterprise Server 인스턴스에 연결할 수 있습니다.

OIDC를 사용하여 Azure Blob Storage의 GitHub Actions 활성화(권장)

Azure Storage 계정으로 OIDC를 사용하도록 GitHub Enterprise Server을(를) 구성하려면 먼저 Microsoft Entra ID(이전의 Azure AD) 애플리케이션을 OIDC 자격 증명으로 등록한 다음, 스토리지 계정을 구성하고 마지막으로 Entra ID를 사용하여 스토리지 컨테이너에 액세스하도록 GitHub Enterprise Server을(를) 구성해야 합니다.

1. Entra ID 애플리케이션 등록

  1. Microsoft Entra 관리 센터에 로그인합니다.

  2. Entra ID에 새 애플리케이션을 등록합니다. 자세한 내용은 Microsoft Learn의 빠른 시작: Microsoft ID 플랫폼을 사용하여 애플리케이션 등록을 참조하세요.

  3. Entra ID 애플리케이션의 "Essentials"에서 "애플리케이션(클라이언트) ID" 및 "디렉터리(테넌트) ID"의 값을 기록해 둡니다. 이러한 값은 나중에 사용됩니다.

    Entra ID의 “개요” 페이지 스크린샷. "Essentials" 섹션의 처음 4개 항목이 주황색 윤곽선으로 강조 표시되어 있습니다.

  4. Entra ID 애플리케이션의 "관리"에서 인증서 및 비밀을 클릭하고 페더레이션 자격 증명 탭을 선택한 다음 자격 증명 추가를 클릭합니다.

    Entra ID의 "페더레이션 자격 증명" 페이지 스크린샷. "인증서 및 비밀" 탭, "페더레이션 자격 증명" 탭 및 "자격 증명 추가" 단추가 주황색 윤곽선으로 강조 표시되어 있습니다.

  5. 자격 증명에 대해 다음 정보를 입력합니다.

    1. "페더레이션 자격 증명 시나리오"에서 다른 발급자를 선택합니다.

    2. "발급자"에 https://HOSTNAME/_services/token을 입력합니다. 여기서 HOSTNAME은 GitHub Enterprise Server 인스턴스의 공용 호스트 이름입니다. 예들 들어 https://my-ghes-host.example.com/_services/token입니다.

    3. "주체 식별자"에 GitHub Enterprise Server 인스턴스의 공용 호스트 이름을 입력합니다. 예들 들어 my-ghes-host.example.com입니다.

      Note

      주체 식별자에는 GitHub Enterprise Server 인스턴스의 호스트 이름만 포함되어야 하며 프로토콜을 포함해서는 안 됩니다.

    4. “이름”에 자격 증명의 이름을 입력합니다.

    5. 추가를 클릭합니다.

2. 스토리지 계정 구성

  1. Microsoft Azure portal에서 스토리지 계정으로 이동합니다.

  2. 액세스 제어(IAM) 를 클릭하고 추가를 클릭한 다음 역할 할당 추가를 클릭합니다.

  3. 역할의 경우 “Storage Blob 데이터 소유자”를 선택하고 다음을 클릭합니다.

  4. 멤버의 경우 멤버 선택을 클릭한 다음 이전에 만든 Entra ID 애플리케이션의 이름을 검색하여 선택합니다. 선택을 클릭합니다.

  5. 검토 + 할당을 클릭하고 역할 할당을 검토한 다음 검토 + 할당을 다시 클릭합니다.

  6. 왼쪽 메뉴의 “설정” 아래에서 엔드포인트를 클릭합니다.

  7. "Blob 서비스"에서 "Blob 서비스", 특히 Blob 엔드포인트 접미사의 값을 기록해 둡니다. 이 값은 https://<storageaccountname>.blob 다음의 값입니다. 일반적으로 core.windows.net이지만, Azure 지역 또는 계정 유형에 따라 달라질 수 있습니다.

    예를 들어 Blob 서비스 URL이 https://my-storage-account.blob.core.windows.net인 경우 Blob 엔드포인트 접미사는 core.windows.net입니다.

    이들 값은 나중에 사용해야 하므로 스토리지 계정 이름 및 Blob 엔드포인트 접미사를 적어 둡니다.

3. OIDC를 사용하여 Entra ID에 연결하도록 GitHub Enterprise Server 구성

  1. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  2. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  3. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  4. "설정" 사이드바에서 작업을 클릭합니다.

  5. "GitHub Actions"에서 GitHub Actions 활성화를 선택합니다.

  6. "아티팩트 및 로그 스토리지"의 "Azure Blob Storage" 옆에 있는 설치를 클릭합니다.

  7. "인증"에서 OIDC(OpenID Connect) 를 선택하고 이전 절차에서 적어 놓은 스토리지 값을 입력합니다.

    • Entra ID 테넌트 ID
    • Entra ID 클라이언트 ID
    • Azure Storage 계정 이름
    • Azure Blob 엔드포인트 접미사 1. 스토리지 설정 테스트 버튼을 클릭하여 스토리지 설정의 유효성을 확인합니다.

    스토리지 설정의 유효성을 검증할 떄 오류가 있으면 스토리지 공급자와 설정을 확인하고 다시 검사합니다.

  8. "설정" 사이드바에서 설정 저장을 클릭합니다.

    Note

    관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  9. 구성 실행이 완료될 때까지 기다립니다.

연결 문자열을 사용하여 Azure Blob Storage에서 GitHub Actions 활성화

  1. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  2. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  3. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  4. "설정" 사이드바에서 작업을 클릭합니다.

  5. "GitHub Actions"에서 GitHub Actions 활성화를 선택합니다.

  6. "아티팩트 및 로그 스토리지"의 "Azure Blob Storage" 옆에 있는 설치를 클릭합니다.

  7. "인증"에서 자격 증명 기반을 선택하고 Azure Storage 계정의 연결 문자열 입력합니다. 스토리지 계정의 연결 문자열을 가져오는 방법에 대한 자세한 내용은 Azure 설명서를 참조하세요.

  8. 스토리지 설정 테스트 버튼을 클릭하여 스토리지 설정의 유효성을 확인합니다.

    스토리지 설정의 유효성을 검증할 떄 오류가 있으면 스토리지 공급자와 설정을 확인하고 다시 검사합니다.

  9. "설정" 사이드바에서 설정 저장을 클릭합니다.

    Note

    관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  10. 구성 실행이 완료될 때까지 기다립니다.

다음 단계

구성 실행이 성공적으로 완료되면 GitHub Actions가 GitHub에서 사용 설정됩니다. GitHub Actions 액세스 권한 관리 및 자체 호스팅 실행기 추가와 같은 다음 단계는 "GitHub Enterprise Server용 GitHub Actions 시작"으로 돌아갑니다.