Skip to main content

비밀

GitHub Actions 워크플로에서 사용되는 비밀에 대해 알아봅니다.

비밀에 대한 정보

비밀을 사용하면 중요한 정보를 조직, 리포지토리 또는 리포지토리 환경에 저장할 수 있습니다. 비밀은 조직, 리포지토리, 리포지토리 환경의 GitHub Actions 워크플로에서 사용하기 위해 만드는 변수입니다.

GitHub Actions는 워크플로에 비밀을 명시적으로 포함하는 경우에만 비밀을 읽을 수 있습니다.

비밀 작동 방식

비밀은 Libsodium 봉인 상자를 사용하므로 GitHub에 도달하기 전에 암호화됩니다. 이는 UI를 사용하거나 REST API를 통해 비밀을 제출할 때 발생합니다. 이 클라이언트 쪽 암호화는 GitHub의 인프라 내에서 실수로 인한 로깅(예: 예외 로그, 요청 로그 등)과 관련된 위험을 최소화하는 데 도움이 됩니다. 비밀이 업로드되면 GitHub에서 암호를 해독하여 워크플로 런타임에 삽입할 수 있습니다.

조직 수준 비밀

조직 수준 비밀을 사용하면 여러 리포지토리 간에 비밀을 공유할 수 있으므로 중복 비밀을 만들 필요가 줄어듭니다. 또한 한 위치에서 조직 비밀을 업데이트하면 해당 비밀을 사용하는 모든 리포지토리 워크플로에서 변경 내용이 적용됩니다.

조직을 위한 비밀을 만들 때, 정책을 사용하여 리포지토리별로 액세스를 제한할 수 있습니다. 예를 들어 모든 리포지토리에 대한 액세스 권한을 부여하거나 프라이빗 리포지토리 또는 지정된 리포지토리 목록에 대해서만 액세스를 제한할 수 있습니다.

환경 비밀의 경우 필요한 검토자가 비밀에 대한 액세스를 제어하도록 설정할 수 있습니다. 승인자가 승인할 때까지 워크플로 작업이 환경 비밀에 액세스할 수 없습니다.

작업에 비밀을 사용할 수 있도록 하려면 워크플로 파일에서 비밀을 입력이나 환경 변수로 설정해야 합니다. 작업의 추가 정보 파일을 검토하여 작업에 예상되는 입력 및 환경 변수에 대해 알아봅니다. GitHub Actions에 대한 워크플로 구문을(를) 참조하세요.

자격 증명 권한 제한

자격 증명을 생성할 때 가능한 최소 권한을 부여하는 것이 좋습니다. 예를 들어 개인 자격 증명을 사용하는 대신 배포 키 또는 서비스 계정을 사용합니다. 필요한 모든 경우 읽기 전용 권한을 부여하고 가능한 한 액세스를 제한하는 것이 좋습니다.

personal access token (classic)을(를) 생성할 때 필요한 가장 적은 범위를 선택합니다. fine-grained personal access token을(를) 생성할 때 필요한 최소 권한 및 리포지토리 액세스를 선택합니다.

personal access token를 사용하는 대신 fine-grained personal access token와 유사하게 세분화된 권한과 짧은 수명의 토큰을 사용하는 GitHub App를 사용하는 것을 고려해 보세요. personal access token과 달리 GitHub App은 사용자와 연결되어 있지 않으므로 앱을 설치한 사용자가 조직을 떠나더라도 워크플로는 계속 작동합니다. 자세한 내용은 GitHub Actions 워크플로에서 GitHub 앱을 사용하여 인증된 API 요청 만들기을(를) 참조하세요.

자동으로 수정된 비밀

GitHub Actions은(는) 워크플로 로그에 인쇄되는 모든 GitHub 비밀의 내용을 자동으로 수정합니다.

GitHub Actions은(는) 중요한 것으로 인식되지만 비밀로 저장되지 않은 정보를 수정합니다. 자동으로 수정된 비밀 목록은 비밀 참조을(를) 참조하세요.

비밀 값을 변환할 수 있는 여러 가지 방법이 있기 때문에 이 수정이 보장되지는 않습니다. 또한 실행기는 현재 작업 내에서 사용되는 비밀만 수정할 수 있습니다. 따라서 비밀이 수정되도록 하고 비밀과 관련된 다른 위험을 제한하기 위해 따라야 하는 특정 보안 사전 단계가 있습니다. 비밀이 있는 보안 모범 사례의 참조 목록은 비밀 참조을(를) 참조하세요.

추가 참고 자료