Openshift - SCC
Last updated
Last updated
์ด ํ์ด์ง์ ์ ์ ์๋ Guillaume
Openshift์์ SCC๋ Security Context Constraints์ ์ฝ์์ ๋๋ค. Security Context Constraints๋ Openshift ํด๋ฌ์คํฐ์์ ์คํ๋๋ pod์ ๊ถํ์ ์ ์ดํ๋ ์ ์ฑ ์ ๋๋ค. ์ด๋ pod๊ฐ ์คํ๋๋ ๋ฐ ํ์ฉ๋๋ ๋ณด์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํ๋ฉฐ, ์ํํ ์ ์๋ ์์ ๋ฐ ์ก์ธ์คํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ํฌํจํฉ๋๋ค.
SCC๋ ๊ด๋ฆฌ์๊ฐ ํด๋ฌ์คํฐ ์ ์ฒด์ ๋ณด์ ์ ์ฑ ์ ๊ฐ์ ํ ์ ์๋๋ก ๋์ต๋๋ค. ์ด๋ฅผ ํตํด pod๊ฐ ์ ์ ํ ๊ถํ์ผ๋ก ์คํ๋๊ณ ์กฐ์ง์ ๋ณด์ ํ์ค์ ์ค์ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ pod ๋ณด์์ ์ฌ๋ฌ ์ธก๋ฉด์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
Linux capabilities: ์ปจํ ์ด๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ์ ํํ๋ ๊ฒ(ํน๊ถ ์์ ์ํ ๊ฐ๋ฅ ์ฌ๋ถ ๋ฑ).
SELinux context: ์ปจํ ์ด๋์ ๋ํ SELinux ์ปจํ ์คํธ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก, ํ๋ก์ธ์ค๊ฐ ์์คํ ๋ฆฌ์์ค์ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์ ์ํฉ๋๋ค.
Read-only root filesystem: ํน์ ๋๋ ํ ๋ฆฌ์ ํ์ผ ์์ ์ ๋ฐฉ์งํ๋ ๊ฒ.
ํ์ฉ๋ ํธ์คํธ ๋๋ ํ ๋ฆฌ ๋ฐ ๋ณผ๋ฅจ: pod๊ฐ ๋ง์ดํธํ ์ ์๋ ํธ์คํธ ๋๋ ํ ๋ฆฌ ๋ฐ ๋ณผ๋ฅจ์ ์ง์ ํ๋ ๊ฒ.
Run as UID/GID: ์ปจํ ์ด๋ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน ID๋ฅผ ์ง์ ํ๋ ๊ฒ.
๋คํธ์ํฌ ์ ์ฑ : pod์ ๋คํธ์ํฌ ์ก์ธ์ค๋ฅผ ์ ์ดํ๋ ๊ฒ์ผ๋ก, egress ํธ๋ํฝ์ ์ ํํ๋ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
SCC๋ฅผ ๊ตฌ์ฑํจ์ผ๋ก์จ ๊ด๋ฆฌ์๋ pod๊ฐ ์ ์ ํ ์์ค์ ๋ณด์ ๊ฒฉ๋ฆฌ์ ์ก์ธ์ค ์ ์ด๋ก ์คํ๋๊ณ ํด๋ฌ์คํฐ ๋ด์์ ๋ณด์ ์ทจ์ฝ์ ์ด๋ ๋ฌด๋จ ์ก์ธ์ค์ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก pod ๋ฐฐํฌ๊ฐ ์์ฒญ๋ ๋๋ง๋ค ๋ค์๊ณผ ๊ฐ์ด ์น์ธ ํ๋ก์ธ์ค๊ฐ ์คํ๋ฉ๋๋ค:
์ด ์ถ๊ฐ์ ์ธ ๋ณด์ ๊ณ์ธต์ ํน๊ถ์ด ์๋ pod์ ์์ฑ, ํธ์คํธ ํ์ผ ์์คํ ์ ๋ง์ดํธ, ๋๋ ํน๊ถ ์์น์ผ๋ก ์ด์ด์ง ์ ์๋ ์ด๋ ํ ์์ฑ ์ค์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธ์งํฉ๋๋ค.
Pod Escape PrivilegesOpenshift ํด๋ผ์ด์ธํธ๋ก ๋ชจ๋ SCC๋ฅผ ๋์ดํ๋ ค๋ฉด:
๋ชจ๋ ์ฌ์ฉ์๋ ๊ฐ์ฅ ์๊ฒฉํ SCC์ธ "restricted" ๋ฐ "restricted-v2"์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
Pod์ ์ฌ์ฉ๋๋ SCC๋ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ ๋ด์์ ์ ์๋ฉ๋๋ค:
์ฌ์ฉ์๊ฐ ์ฌ๋ฌ SCC์ ์ก์ธ์ค ํ ๋ ์์คํ ์ ๋ณด์ ์ปจํ ์คํธ ๊ฐ๊ณผ ์ผ์นํ๋ SCC๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ธ์ง๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.