승격 조건에 보안 정보 추가
릴리스 채널(Release channel)에 보안 검사 레이블 요구사항을 지정하면 검사가 실행되었는지 또는 검사 결과가 통과인지에 따라 제품 릴리스(Product Release)의 진입을 제한할 수 있습니다. 이 요구사항은 사용자 지정 채널에 설정합니다. 기본 채널 DEV, RELEASE_CANDIDATE, RELEASE에는 레이블 진입 요구사항을 설정할 수 없습니다.
검사를 마친 릴리스만 허용
Apollo는 검사 여부를 vulnerability-scanner.palantir.build/security-scanned 레이블로 표시합니다. 값은 true 또는 false입니다.
예를 들어 SECURE라는 사용자 지정 채널을 만들고 다음 요구사항을 추가합니다.
- 레이블 ID로
vulnerability-scanner.palantir.build/security-scanned를 입력합니다. - Require value를 켭니다.
- 요구하는 값으로
true를 입력합니다.
이 구성은 취약점 자동 회수를 활성화하고 모든 환경에서 취약한 릴리스의 설치를 제한하려는 경우에 적합합니다. 배포 환경이 검사 완료를 요구하는 채널을 추적하도록 구성하면, 새 릴리스가 검사되기 전에 설치되는 것을 막을 수 있습니다. true는 검사를 실행했다는 의미이며, 검사 결과의 통과를 뜻하지는 않습니다.
활성 취약점이 없는 릴리스만 허용
검사 이후에는 vulnerability-scanner.palantir.build/security-scan-outcome 레이블에 결과를 기록합니다.
| 값 | 의미 |
|---|---|
pass | 활성 취약점이 없습니다. 유예기간 안에 있거나 억제된 취약점은 남아 있을 수 있습니다. |
fail | 수정하거나 억제해야 하는 활성 취약점이 있습니다. |
환경마다 취약점 허용 수준이 다르고 자동 회수를 아직 활성화하지 않은 경우에는 이 레이블로 채널 진입을 제한할 수 있습니다. 예를 들어 개발용 DEV에서는 취약점을 허용하고, 사용자 지정 STAGING과 PRODUCTION에서는 허용하지 않는 구성을 생각할 수 있습니다. 이 채널 이름은 예시입니다.
활성 취약점을 허용하지 않을 각 사용자 지정 채널에서 레이블 ID를 vulnerability-scanner.palantir.build/security-scan-outcome으로 지정하고 Require value를 켠 뒤 pass를 입력합니다.
진입 시점과 이후 검사
레이블 요구사항은 수동 승격과 자동 승격에서 채널 진입 조건으로 적용됩니다. 이미 채널에 들어온 릴리스의 레이블이 이후 검사에서 달라져도 그 릴리스를 채널에서 자동으로 제거하지는 않습니다. 새로 발견한 취약점에 대한 후속 제어에는 자동 회수 등 별도 정책을 사용해야 합니다. 자세한 진입 규칙은 제품 릴리스 레이블에 설명되어 있습니다.