암호화된 암호 관리
암호는 GitHub Actions 워크플로와 작업에서 의존할 수 있는 토큰, 자격 증명, 다른 유형의 중요한 정보를 저장하기 위해 생성할 수 있는 암호화된 환경 변수입니다. 생성 후에는 해당 사용자가 워크플로 및 작업에서 암호가 저장된 조직, 리포지토리, 리포지토리 환경에 액세스할 수 있게 됩니다.
이 섹션에서는 암호화된 비밀의 사용을 관리하기 위해 GitHub Enterprise Cloud 및 GitHub Enterprise Server에서 사용할 수 있는 다양한 도구와 전략을 살펴보겠습니다. 워크플로 및 작업에서 암호화된 비밀에 액세스하는 방법도 설명합니다.
조직 수준에서 암호화된 암호 관리
조직 수준에서 암호화된 암호를 생성하여 중요한 정보를 저장하는 것은 기업에서 관리 오버헤드를 최소화하면서 정보의 보안을 보장하는 좋은 방법입니다.
GitHub 조직에서 워크플로를 작성하는 일부 개발자에게 일부 워크플로의 프로덕션에 코드를 배포하는 자격 증명이 필요하다고 가정해 보겠습니다. 이러한 중요한 정보를 공유하지 않기 위해 조직 수준에서 자격 증명을 포함하는 암호화된 암호를 생성할 수 있습니다. 이러한 방식으로, 노출되지 않고 워크플로에서 자격 증명을 사용할 수 있습니다.
조직 수준에서 비밀을 생성하려면 조직의 설정으로 이동하여 사이드바에서 비밀 및 변수 > 작업 > 새 조직 비밀을 선택합니다. 표시되는 화면에서 이름 및 값을 입력하고, 암호에 대한 리포지토리 액세스 정책을 선택합니다.
액세스 정책은 저장된 후 비밀 목록에서 비밀 아래에 표시됩니다.
암호에 대해 구성된 권한에 대한 자세한 내용을 보려면 업데이트를 선택합니다.
리포지토리 수준에서 암호화된 암호 관리
암호화된 암호의 범위를 특정 리포지토리로 지정해야 하는 경우, GitHub Enterprise Cloud 및 GitHub Enterprise Server를 사용하여 리포지토리 수준에서 암호를 생성할 수도 있습니다.
리포지토리 수준에서 비밀을 생성하려면 리포지토리 설정으로 이동하여 사이드바에서 비밀 및 변수 > 작업 > 새 리포지토리 비밀을 선택합니다. 표시되는 화면에서 암호의 이름과 값을 입력합니다.
작업 및 워크플로 내에서 암호화된 암호 액세스
워크플로
워크플로의 암호화된 암호에 액세스하려면 워크플로 파일에서 secrets
컨텍스트를 사용해야 합니다. 예를 들면 다음과 같습니다.
steps:
- name: Hello world action
with: # Set the secret as an input
super_secret: ${{ secrets.SuperSecret }}
env: # Or as an environment variable
super_secret: ${{ secrets.SuperSecret }}
작업
작업에서 암호화된 암호에 액세스하려면, action.yml
메타데이터 파일에서 비밀을 input
매개 변수로 지정해야 합니다. 예를 들면 다음과 같습니다.
inputs:
super_secret:
description: 'My secret token'
required: true
작업 코드에서 암호화된 암호에 액세스해야 하는 경우, 작업 코드는 $SUPER_SECRET
환경 변수를 사용하여 입력 값을 읽을 수 있습니다.
경고
사용자 고유의 작업을 작성하는 경우, 작업은 공유 가능한 작업 단위이므로 작업의 소스 코드에 암호화된 비밀을 포함하지 않아야 합니다. 작업에서 암호화된 비밀 또는 기타 사용자 제공 입력을 사용해야 하는 경우, 작업 도구 키트에서 핵심 모듈을 사용하는 것이 가장 좋습니다.