이 문서에서는 컨테이너가 실행할 수 있는 시스템 호출 (syscall)을 제한하여 보안을 강화하도록 Apigee Hybrid 포드의 Kubernetes Seccomp (보안 컴퓨팅 모드) 프로필을 구성하는 방법을 설명합니다.
Kubernetes의 Seccomp 프로필 정보
Seccomp는 프로세스가 실행할 수 있는 시스템 호출을 제한하는 Linux 커널 보안 기능입니다. Kubernetes와 함께 사용하면 Seccomp 프로필을 포드의 securityContext에 적용하여 컨테이너에서 사용할 수 있는 syscall을 제한할 수 있습니다. 이렇게 하면 컨테이너의 공격 영역이 줄어들고 최소 권한 원칙을 적용하여 컨테이너 브레이크아웃이나 권한 에스컬레이션의 위험이 완화됩니다.
Kubernetes의 Seccomp에 관한 자세한 내용은 Kubernetes 문서의 Secure Computing (Seccomp)를 참고하세요.
하이브리드에서 Seccomp 프로필은 기본적으로 사용 설정되지 않습니다. overrides.yaml 파일에 seccompProfile 객체를 추가하여 하이브리드 구성요소에 Seccomp 프로필을 적용할 수 있습니다.
Seccomp 프로필 구성
securityContext.seccompProfile 구성 블록을 추가하여 overrides.yaml 파일에서 전역적으로, 환경별로 또는 구성요소별로 Seccomp 프로필을 적용할 수 있습니다. 하이브리드는 다음 Seccomp 프로필 유형을 지원합니다.
RuntimeDefault: 컨테이너 런타임에서 지정된 기본 프로필입니다. 대부분의 워크로드와의 호환성을 유지하면서 적절한 수준의 보안을 제공하므로 이 옵션을 사용하는 것이 좋습니다.Unconfined: 포드에 Seccomp 제한을 적용하지 않습니다. 이 옵션은 보안 수준이 가장 낮으므로 신중하게 사용해야 합니다.
구성 우선순위
overrides.yaml에서 다음 수준으로 seccompProfile를 설정할 수 있습니다. 구성요소 수준 설정은 환경 수준 설정보다 우선 적용되고 환경 수준 설정은 전역 설정보다 우선 적용됩니다.
- 구성요소 수준: 특정 구성요소 (예:
runtime또는cassandra)에 적용됩니다. - 환경 수준: 구성요소 수준에서 재정의되지 않는 한
envs[]배열에 정의된 특정 환경 내의 모든 구성요소에 적용됩니다. - 전역 수준: 환경 또는 구성요소 수준에서 재정의되지 않는 한 클러스터의 모든 구성요소에 적용됩니다.
예시
전역 구성
환경 또는 구성요소 수준 재정의가 없는 모든 구성요소에 RuntimeDefault Seccomp 프로필을 적용하려면 overrides.yaml의 최상위 수준에 다음을 추가하세요.
securityContext: seccompProfile: type: RuntimeDefault
환경 구성
특정 환경의 모든 구성요소에 RuntimeDefault Seccomp 프로필을 적용하려면 envs[] 요소 아래에 구성을 추가합니다.
envs: - name: "my-environment" securityContext: seccompProfile: type: RuntimeDefault ...
구성요소 구성
RuntimeDefault Seccomp 프로필을 특정 구성요소 (예: 런타임 구성요소)에 적용하려면 해당 구성요소 아래에 구성을 추가하세요.
runtime: securityContext: seccompProfile: type: RuntimeDefault ...