• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

SecurityContext 관련

20.10.08 09:45 작성 조회수 1.38k

0

안녕하세요~ 좋은 강의 잘 듣고 있습니다.

fsgroup / runAsUser / runAsGroup 약어 및 텍스트로 한마디로 정의 좀 부탁드릴까요?동영상 볼때 는 이해 가는데 다시 정리를 하려고 적어 보려고 하는데 생각이 안나서요?감사합니다.

답변 2

·

답변을 작성해보세요.

0

learning님의 프로필

learning

질문자

2020.10.16

와 자세한 설명 감사드립니다~전 다시 동영상 보러  ㄱ ㄱ ㄱ 

0

gasbugs님의 프로필

gasbugs

2020.10.10

안녕하세요 강사 최일선입니다.

runAsUser와 runAsGroup, fsgroup은 설정하시면 ID의 결과로 출력됩니다. 

spec:
  securityContext:
    runAsUser: 1000
    runAsGroup: 3000
    fsGroup: 2000

자세한 설명을 강의에서는 생략했는데요. 이 포드내에서 명령이 실행될 때 유저는 runAsUser는 UID, runAsGroup은 GID, fsgroup은 groups으로 각각 실행되도록 영향을 줍니다.

id 명령을 사용해 uid, 그룹의 ID와 groups에 대한 정보를 변경할 수 있습니다.

id 명령어 결과

$ id
uid=1000 gid=3000 groups=2000

여기서부터는 fsgroups에 대한 설명입니다. fsgroup은 좀 특별한 기능을 갖습니다.

쿠버네티스에서는 볼륨이 마운트 될 때 포드 yaml파일의 fsgroup에 지정된 것과 일치하도록 각 볼륨의  소유권을 지속적으로 변경합니다.  fsgroup을 2000으로 설정한 포드에서 마운트된 볼륨에 새 파일을 생성하면 소유자 gid는 자동으로 2000으로 변경됩니다. 다음 링크를 통해서 실습해보실 수 있습니다.

https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod

해당 기능은 보안성을 더하려고 만들어졌는데 최근에도 지속적으로 기능을 적용하려고 했습니다만 2017년 이후로 계속 지연되고 있는 것으로 보입니다.

https://github.com/kubernetes/enhancements/issues/213

가장 하단에 보면 3일전에 1.20에도 포함되지 못한것으로 보이네요. 앞으로 기능이 더 잘 정착돼 적용되면 다시한번 풀어내도록 하겠습니다.

결론적으로 fsgroup은 파일 시스템의 gid를 변경하는 기능입니다.

감사합니다.