GitHub News

안전한 코드를 제공하기 위해 모든 개발자가 할 수 있는 5가지 간단한 작업_제2장

GitHubKorea 2022. 6. 3. 13:48

안녕하세요 GitHub 한국 총판 단군소프트입니다.
오늘은 저번 시간에 이어 ‘안전한 코드를 제공하기 위해 모든 개발자가 할 수 있는 5가지 간단한 작업 제2장입니다’ :D

 

이번편에서 다룰 이야기..
3. 저장소에 보호된 브랜치 보호정책 추가
4. 저장소에서 GitHub 작업이 사용되는 방식 정의
5. GitHub Actions에서 GITHUB_TOKEN에 대한 저장소 수준에서 권한 설정

그럼 시작해볼까요?


3. 저장소에 보호된 브랜치 보호정책 추가

단독 프로젝트든 대규모 오픈 소스 프로젝트든 직장에서 무언가를 구축하고 있든 상관없이 보호된 브랜치들은 프로젝트를 조금 더 안전하게 유지하는 데 큰 도움이 됩니다.

보호된 브랜치들은 두 가지 큰 일을 합니다.

1. 새로운 기능을 출시하기 전에 사전 프로덕션 환경에서 더 쉽게 테스트할 수 있습니다.
2. 코드 변경 사항을 프로덕션으로 푸시할 수 있는 사람에 대한 제어를 설정할 수 있습니다.

오픈 소스 프로젝트에서 아직 출시되지 않았지만 여전히 테스트하고 싶은 기능이 있을 정도로 빠르게 개발되고 있다는 사실을 깨닫고 알파 및 베타 브랜치를 빌드하기 위해 제 오픈 소스 프로젝트에 보호된 브랜치를 추가했습니다. 또한 유지 관리자만 베타 및 알파 브랜치로 푸시하여 개발 워크플로우를 더욱 안전하게 보호할 수 있도록 구성을 설정했습니다. 이를 통해 기여자가 실수로 프로젝트를 중단하는 것을 방지할 수 있습니다. 또한 의도적으로 나쁜 일을 하려는 사람으로부터 상황을 조금 더 안전하게 유지할 수 있습니다.

(보호된 브랜치를 저장소에 추가하는 방법을 알아보세요.)

 

 

4. 저장소에서 GitHub 작업이 사용되는 방식 정의

오픈 소스의 세계에서는 누구든지, 어디에 있든지 GitHub Actions를 사용할 수 있습니다. 하지만 나쁜 의도로 행동하는 사람이 있기 때문에 항상 프로젝트에 기여하는 모든 사람에게 액세스 권한을 열고 싶은 것은 아닙니다.

종종 오픈 소스 프로젝트에서 누군가 나의 프로젝트에 GitHub Actions 워크플로우를 추가해 달라는 요청을 받습니다. 요청하는 사람이 때로는 좋은 사람이기도 하지만 때로는 그렇지 않은 사람이기도 합니다.

일부 오픈 소스 커뮤니티의 경우 프로젝트에서 GitHub Actions를 사용하는 악의적인 행위자의 위험으로 인해 GitHub Actions를 사용할 수 있는 사람과 지정된 저장소에서 사용할 수 있는 Actions를 제한하는 것이 중요합니다. 실제로 GitHub Actions를 끄고 최초 제공자와 다른 사용자로 사용의 제한할 수 있으므로 문제가 발생하지 않습니다저장소에서 실행할 수 있는 GitHub Actions을 제한하거나 self-hosted runners에서 실행할 수 있는 워크플로우를 제한할 수도 있습니다여기에서 얻을 수 있는 이점은 CI/CD 워크플로우의 보안을 더욱 철저하게 관리할 수 있다는 것입니다.

저장소 안의 GitHub Actions에서 권한을 설정하는 방법을 보여주는 GIF입니다.

 

 

 

5. GitHub Actions에서 GITHUB_TOKEN에 대한 저장소 수준에서 권한 설정

GITHUB_TOKEN은 워크플로우에서 인증해야 하는 작업에 추가 보안을 제공하는 데 사용할 수 있는 GitHub Actions의 훌륭한 기능입니다. 설치 액세스가 필요한 각 작업에 대해 자동으로 생성되는 특수 액세스 토큰입니다. 해당 작업이 완료되면 가능한 위험 노출을 줄이기 위해 토큰이 자동으로 만료됩니다.

PSA: 아직 사용하지 않으셨다면 아직 안전하지 않은 PAT (개인 액세스 토큰)보다 더 안전한 GITHUB_TOKEN을 사용하는 걸 고려해보세요:) 만약 나쁜 사람이 PAT를 훔친다면 … 여러분은 힘든 시간을 가지게 될 겁니다. :(

GITHUB_TOKEN 사용의 또 다른 이점: 최소 워크플로우 원칙을 따르고 위험 노출을 완화하기 위해 읽기 및 쓰기 권한을 제어할 수 있습니다. 다음 두 가지 방법 중 하나로 이 작업을 수행할 수 있습니다.

- GitHub Actions YML 파일에 이 구문을 추가하여 워크플로우 구성에서 직접 GITHUB_TOKEN에 대한 권한을 수정합니다.

permissions:
actions: read|write|none
checks: read|write|none
contents: read|write|none
deployments: read|write|none
issues: read|write|none
packages: read|write|none
pull-requests: read|write|none
repository-projects: read|write|none
security-events: read|write|none
statuses: read|write|none

- 또는 조직 설정으로 이동하여 작업 > 일반에서 GITHUB_TOKEN 워크플로우 권한을 읽기 액세스 전용으로 변경할 수 있습니다(기본적으로 GITHUB_TOKEN에는 읽기 및 쓰기 액세스가 있음).

두 옵션 중 하나가 작동하며, 개인 선호도나 저장소의 특정 GitHub 작업으로 세분화된 제어의 필요성에 따라 다릅니다. 목표는 위험 서비스를 줄이고 쓰기 액세스 권한을 얻는 사람과 어떤 컨텍스트에서 액세스 권한을 얻는 제한하는 것입니다.

 

GITHUB_TOKEN에 대한 권한 설정에 대해 자세히 알아보세요.


여기까지 안전한 코드를 제공하기 위해 ‘모든 개발자가 할 수 있는 5가지 간단한 작업’이었습니다.

궁금하신 점이 있으시다면 댓글 또는 단군소프트로 연락주세요!

감사합니다.

 

 

이 글은 5 simple things every developer can do to ship more secure code | The GitHub Blog를 번역한 글입니다.