신뢰
CRACI가 접근하는 것과 보관하는 것
빌드를 새 러너로 옮긴다는 것은 소스 코드와 CI 시크릿을 그 러너에 맡긴다는 뜻입니다. 이 페이지에서는 CRACI에 무엇이 필요한지, 코드가 어디에서 실행되는지, 저희가 무엇을 보관하는지, 그리고 범위를 작게 유지하는 방법을 설명합니다.
업데이트
이 질문에 솔직한 답이 필요한 이유
CI 러너는 스택의 대부분의 도구보다 더 많은 것을 봅니다. 소스를 체크아웃하고, 종속성을 설치하며, 워크플로가 패키지를 게시하고 배포하는 데 쓰는 시크릿을 보유합니다. 2025년 3월 GitHub Action tj-actions/changed-files가 침해되었을 때, CISA는 악성 코드가 액세스 키, GitHub 개인 액세스 토큰, npm 토큰, 비공개 RSA 키 등의 시크릿을 노출했다고 보고했습니다. 작업이 실행되는 동안 그런 시크릿이 머무는 곳이 바로 러너입니다.
그러니 워크플로를 CRACI로 연결하기 전에 CRACI가 정확히 무엇에 접근할 수 있는지 알아야 합니다. 답은 아래에 있으며, 자세한 내용은 CRACI Trust Center와 docs.craci.com에서 확인할 수 있습니다.
GitHub App의 용도
CRACI가 대체하는 것은 러너이지 GitHub Actions가 아닙니다. 워크플로는 그대로 두고, 선택한 작업의 runs-on을 craci로 바꾸기만 하면 되며, 실행 내역은 여전히 GitHub UI에 표시됩니다. 이를 위해 조직에 CRACI GitHub App을 설치합니다.
설치할 때 App에 모든 리포지토리 또는 선택한 리포지토리에 대한 접근 권한을 부여합니다. 접근 권한을 부여한 리포지토리만 CRACI에서 워크플로를 실행할 수 있습니다.
App이 요청하는 정확한 권한은 GitHub 설치 화면에 나열되며, 설치 후에도 조직 설정에서 검토할 수 있습니다. 요약하면 App은 코드와 Actions 실행 내역을 읽을 수 있고, 조직에 등록하는 러너를 관리합니다.
코드가 실행되는 곳
작업은 격리된 가상 머신에서 실행됩니다. 빌드 실행은 유럽의 베어메탈 인프라에서 이뤄집니다. 소스 코드는 빌드가 진행되는 동안 작업 VM 안에서 처리됩니다.
각 작업은 CRACI Slim, CRACI Slim ARM64, GitHub 호환 Ubuntu 24.04 이미지 중 하나에서 실행됩니다. 현재 러너는 Linux 전용이며, Windows와 macOS는 로드맵에 있습니다.
작업이 어떻게 격리되는지, 작업이 끝나면 작업 VM이 어떻게 되는지는 docs.craci.com와 Trust Center에 문서화되어 있습니다.
CRACI가 보관하는 것과 기간
CRACI는 빌드가 실행되는 동안 작업 VM에서 소스 코드를 처리하며, 소스 코드를 저장하지 않습니다. 보관하는 것은 각 빌드에 대해 기록한 증거와 워크플로가 저장하는 캐시입니다.
- 빌드 메타데이터
- 패키지 데이터, 즉 각 작업이 가져온 종속성
- 작업의 네트워크 추적
- SBOM
- 출처 증명 기록
- 캐시
- 감사 기록
캐시에는 워크플로가 넣는 것이 무엇이든 담기므로, 캐시 내용은 다른 빌드 출력물과 같은 방식으로 다루세요.
기본 보존 기간은 180일입니다. Enterprise 요금제에서는 사용자 지정 보존 기간을 설정할 수 있습니다. 데이터 삭제와 암호화는 Trust Center에서 다룹니다.
호스팅과 데이터 레지던시
CRACI는 유럽에서 호스팅되며 EU 데이터 레지던시를 제공하고, 빌드는 유럽의 베어메탈 인프라에서 실행됩니다. 플랫폼은 독일 제공업체 Hetzner의 핀란드 Tuusula 데이터 센터에서 운영됩니다. CRACI가 어떤 데이터를 다루는지는 데이터 레지던시를 참조하세요.
빌드 자체에 대한 통제
시크릿을 보는 러너라면 그 시크릿이 갈 수 있는 곳을 제한할 수 있게도 해 주어야 합니다. CRACI 네트워크 이그레스 정책은 작업마다 기본값을 거부 또는 허용으로 설정하며, 일반적인 소프트웨어 소스를 위한 24개의 기본 제공 프리셋과 npm, PyPI, Cargo, Go proxy, OCI 같은 레지스트리를 위한 유형 지정 사용자 지정 소스를 제공합니다. 명시적인 TLS, TCP, UDP, ICMP 규칙도 작성할 수 있습니다. 정책은 작업이 시작되기 전에 검증되고, 실패 시 차단(fail closed)되며, 알 수 없는 필드를 거부합니다. 정책 위반은 알림으로 표시됩니다.
작업은 고정된 이그레스 IP 범위에서 나가므로, 직접 운영하는 방화벽에서 주소 기준으로 CRACI 러너를 허용할 수 있습니다.
조직 내부의 접근
- Enterprise 요금제는 Google Workspace를 ID 공급자로 하는 SAML 싱글 사인온을 지원합니다.
- 관리자 감사 로그가 관리 작업을 기록합니다. UI에서 확인할 수 있으며, 아직 내보낼 수는 없습니다.
- API 토큰은 관리자가 생성하며, 언제든 취소할 수 있고, 90일 후 만료됩니다.
범위를 작게 유지하는 방법
CRACI를 평가하기 위해 조직 전체를 맡길 필요는 없습니다.
- 선택한 리포지토리에 설치하세요. App을 설치할 때 "Only select repositories"를 선택하고 한두 개를 고르세요. 나중에 조직의 Settings에서 GitHub Apps, CRACI, Configure로 이동해 범위를 넓히거나 좁힐 수 있습니다. 변경은 즉시 적용됩니다.
- 작업을 하나씩 옮기세요.
runs-on: craci가 지정된 작업만 CRACI에서 실행됩니다. 나머지는 모두 지금 쓰는 러너에 그대로 남습니다. - 시크릿이 적은 작업부터 시작하세요. 테스트나 린트 작업으로 게시 또는 배포 자격 증명을 새 러너에 두지 않고도 SBOM과 네트워크 증거를 확인할 수 있습니다.
- 기본 거부 이그레스 정책을 켜세요. 작업에 필요한 패키지 소스만 허용하고 그 밖에는 아무것도 허용하지 마세요.
- 사용을 중단하는 방법을 알아 두세요. GitHub에서 App을 일시 중지하면 설치는 유지한 채 접근을 차단하고, 제거하면 조직에 대한 접근이 삭제됩니다.
저희의 보안 태세
저희 보안 페이지는 저희의 접근 방식을 설명합니다. 주장이 아니라 문서로 입증한다는 것입니다. Trust Center는 플랫폼을 뒷받침하는 정책, 통제, 문서를 한데 모은 곳이며, 공급업체 평가 자료를 요청할 수 있는 곳이기도 합니다.
이 페이지는 어떤 인증도 주장하지 않습니다. 보안 프로그램과 감사 작업의 현재 상태는 Trust Center에서 확인하세요.
이 페이지에서 답을 찾지 못한 질문이 있으신가요? Trust Center를 통해 보내시거나 문의해 주세요. 엔터프라이즈 구매 담당자는 영업팀과 상담하실 수도 있습니다.