์ญํ ๊ถ์ฅ์ฌํญ์ ์ฌ์ฉํ๋ฉด ์ฃผ ๊ตฌ์ฑ์์ ์ด๊ณผ ๊ถํ์ ์๋ณํ๊ณ ์ญ์ ํ์ฌ ๋ฆฌ์์ค์ ๋ณด์ ๊ตฌ์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ ๊ฐ์
์ญํ ๊ถ์ฅ์ฌํญ์ IAM ์ถ์ฒ์์ ์ํด ์์ฑ๋ฉ๋๋ค. IAM ์ถ์ฒ์๋ ์ถ์ฒ์์์ ์ ๊ณตํ๋ ์ถ์ฒ์ ์ค ํ๋์ ๋๋ค.
๊ฐ ์ญํ ๊ถ์ฅ์ฌํญ์ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ด๊ณผ ๊ถํ์ ๋ถ์ฌํ๋ ์ญํ ์ ์ญ์ ํ๊ฑฐ๋ ๋์ฒดํ ๊ฒ์ ์ ์ํฉ๋๋ค. ๊ท๋ชจ์ ๋ง๊ฒ ์ด๋ฌํ ๊ถ์ฅ์ฌํญ์ ์ฃผ ๊ตฌ์ฑ์์ ์ค์ ๋ก ํ์ํ ๊ถํ๋ง ๋ถ์ฌํ์ฌ ์ต์ ๊ถํ์ ์์น์ ์ ์ฉํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
IAM ์ถ์ฒ์๋ ์ ์ฑ ํต๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ณผ ๊ถํ์ ์๋ณํฉ๋๋ค. ์ ์ฑ ํต๊ณ๋ ์ฃผ ๊ตฌ์ฑ์์ ๊ถํ ์ฌ์ฉ์ ๋ํ ML ๊ธฐ๋ฐ ๋ฐ๊ฒฌ ํญ๋ชฉ์ ๋๋ค.
์ผ๋ถ ๊ถ์ฅ์ฌํญ์ ์ธก๋ฉด ์ด๋ ํต๊ณ์๋ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ฌํ ํต๊ณ๋ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ์ด ๋ค๋ฅธ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ ์ญํ ์ ์๋ณํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ธก๋ฉด ์ด๋ ํต๊ณ ์์ฑ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ์ธ์.
์ ์ฑ ํต๊ณ ์์ฑ ๋ฐฉ๋ฒ
์ ์ฑ ํต๊ณ๋ ์ฃผ ๊ตฌ์ฑ์์ด ์ฌ์ฉํ์ง ์๋ ์ฃผ ๊ตฌ์ฑ์ ์ญํ ์ ๊ถํ์ ๊ฐ์กฐ ํ์ํฉ๋๋ค.
IAM ์ถ์ฒ์๋ ์ฃผ ๊ตฌ์ฑ์์ ์ด ๊ถํ ์๋ฅผ ์ฃผ ๊ตฌ์ฑ์์ด ์ต๊ทผ 90์ผ ๋์ ์ฌ์ฉํ ๊ถํ๊ณผ ๋น๊ตํ์ฌ ์ ์ฑ ํต๊ณ๋ฅผ ์์ฑํฉ๋๋ค. ์ญํ ์ด ๋ถ์ฌ๋ ์ง 90์ผ์ด ์ง๋์ง ์์ ๊ฒฝ์ฐ IAM ์ถ์ฒ์๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ด ๋ถ์ฌ๋ ์์ ๋ถํฐ ์ฃผ ๊ตฌ์ฑ์ ๊ถํ ์ฌ์ฉ ํํฉ์ ์ดํด๋ด ๋๋ค.
๋ค์์ ์ฃผ ๊ตฌ์ฑ์์ด ๊ถํ์ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋๋ค.
์ง์ : ๊ถํ์ด ํ์ํ API ํธ์ถ
์๋ฅผ ๋ค์ด IAM REST API์
roles.list
๋ฉ์๋์๋iam.roles.list
๊ถํ์ด ํ์ํฉ๋๋ค.roles.list
๋ฉ์๋๋ฅผ ํธ์ถํ ๋iam.roles.list
๊ถํ์ ์ฌ์ฉํฉ๋๋ค.๋ง์ฐฌ๊ฐ์ง๋ก ๋ฆฌ์์ค์
testIamPermissions
๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ํ ์คํธ ์ค์ธ ๋ชจ๋ ๊ถํ์ด ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.๊ฐ์ : Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ Google Cloud๋ฆฌ์์ค์ ์ฐ๋
์๋ฅผ ๋ค์ด Google Cloud ์ฝ์์์ ๋ณ๊ฒฝํ๋ ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ถํ์ด ํ์ํ Compute Engine ๊ฐ์ ๋จธ์ (VM) ์ธ์คํด์ค๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง Google Cloud ์ฝ์์๋ ๊ธฐ์กด ์ค์ ๋ ํ์๋์ด
compute.instances.get
๊ถํ์ ํ์๋ก ํฉ๋๋ค.๋ฐ๋ผ์ Google Cloud ์ฝ์์์ VM ์ธ์คํด์ค๋ฅผ ํธ์งํ ๋
compute.instances.get
๊ถํ์ ์ฌ์ฉํฉ๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ด ์ฌ์ฉํ ๊ถํ์ ํ์ธํ๊ธฐ ์ํด IAM ์ถ์ฒ์๋ ์ง๊ณ๋ IAM ์ก์ธ์ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. IAM ์ถ์ฒ์๊ฐ ์ด๋ฌํ ํต๊ณ์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๋ฉด ์ญํ ๊ถ์ฅ์ฌํญ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๋ํ IAM ์ถ์ฒ์๋ ์ฃผ ๊ตฌ์ฑ์์ด ์ต๊ทผ์ ํด๋น ๊ถํ์ ์ฌ์ฉํ์ง ์์๋๋ผ๋ ๋จธ์ ๋ฌ๋์ ์ฌ์ฉํ์ฌ ์ฃผ ๊ตฌ์ฑ์์ ํ์ฌ ์ญํ ์์ ํฅํ ํ์ํ ๊ถํ์ ์๋ณํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ์ ์ฑ ํต๊ณ์ฉ ๋จธ์ ๋ฌ๋์ ์ฐธ์กฐํ์ธ์.
์ฃผ ๊ตฌ์ฑ์์๊ฒ ๋ถ์ฌ๋ ๋ชจ๋ IAM ์ญํ ์ ๋ํด ์ ์ฑ ํต๊ณ๊ฐ ์์ฑ๋์ง๋ ์์ต๋๋ค. ์ญํ ์ ์ ์ฑ ํต๊ณ๊ฐ ์์ ์ ์๋ ์ด์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ๊ฐ์ฉ์ฑ์ ์ฐธ์กฐํ์ธ์.
์ ์ฑ ํต๊ณ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ์ ์ฑ ํต๊ณ ๊ด๋ฆฌ ๋๋ Cloud Storage ๋ฒํท์ ์ ์ฑ ํต๊ณ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฑ ํต๊ณ์ฉ ๋จธ์ ๋ฌ๋
์ผ๋ถ ๊ฒฝ์ฐ์ ์ฃผ ๊ตฌ์ฑ์์ ํ์ฌ ์ญํ ์ ํฌํจ๋์ด ์์ง๋ง ์ต๊ทผ์ ์ฌ์ฉํ์ง ์์ ํน์ ๊ถํ์ด ํ์ํ ์ ์์ต๋๋ค. IAM ์ถ์ฒ์๋ ์ด๋ฌํ ๊ถํ์ ์๋ณํ๊ธฐ ์ํด ์ ์ฑ ํต๊ณ๋ฅผ ์์ฑํ ๋ ๋จธ์ ๋ฌ๋(ML) ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค.
์ด ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ฌ๋ฌ ์ ํธ ์ธํธ์ ๋ํด ํ์ตํฉ๋๋ค.
๊ด์ฐฐ๋ ๋ด์ญ์ ๊ณตํต ์ถํ ํจํด: ์ด์ ์ ์ฌ์ฉ์๊ฐ A, B, C ๊ถํ์ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ A, B, C๊ฐ ์ด๋ค ์์ผ๋ก๋ ๊ด๋ จ์ด ์์ ์ ์๋ค๋ ํํธ๋ฅผ ์ ๊ณตํ๋ฉฐ Google Cloud์์ ์์ ์ ์ํํ๋ ๋ฐ ํ์ํ๋ค๋ ์ ์ ๋๋ค. ML ๋ชจ๋ธ์ด ์ด ํจํด์ ์์ฃผ ๊ด์ฐฐํ๊ฒ ๋๋ฉด ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ A์ B ๊ถํ์ ์ฌ์ฉํ ๋ ๋ชจ๋ธ์ด ์ฌ์ฉ์์๊ฒ C ๊ถํ ๋ํ ํ์ํ ๊ฒ์ด๋ผ๊ณ ์ ์ํฉ๋๋ค.
์ญํ ์ ์์ ์ธ์ฝ๋ฉ๋ ๋๋ฉ์ธ ์ง์: IAM์ ์๋น์ค๋ณ๋ก ์๋ฐฑ ๊ฐ์ง์ ์ฌ์ ์ ์๋ ์ญํ ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ ์ ์๋ ์ญํ ์ ์ผ๋ จ์ ๊ถํ์ด ํฌํจ๋๋ค๋ ๊ฒ์ ์ด๋ฌํ ๊ถํ๋ค์ด ํจ๊ป ๋ถ์ฌ๋์ด์ผ ํ๋ค๋ ๊ฐ๋ ฅํ ์ ํธ์ ๋๋ค.
์ด๋ฌํ ์ ํธ ์ธ์๋ ๋ชจ๋ธ์ ๋จ์ด ์๋ฒ ๋ฉ์ ์ฌ์ฉํ์ฌ ๊ถํ์ด ์ด๋ป๊ฒ ์๋ฏธ์ ์ ์ฌํ์ง ๊ณ์ฐํฉ๋๋ค. ์๋ฏธ์ ๋น์ทํ ๊ถํ์ ์๋ฒ ๋ฉ ํ์ ์๋ก '๊ฐ๊น์'์ง๊ณ ํจ๊ป ๋ถ์ฌ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์๋ฅผ ๋ค์ด bigquery.datasets.get
๊ณผ bigquery.tables.list
๋ ์๋ฒ ๋ฉ ํ ์๋ก ๋งค์ฐ ๊ฐ๊น์์ง๋๋ค.
IAM ์ถ์ฒ์ ๋จธ์ ๋ฌ๋ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ k-์ต๋ช ์ฑ์ ๊ฐ์ง๋๋ค. ์ด๋ ์ต๋ช ํ๋ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ์ธ์ ๋ค์ ์๋ณํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์ต๋ช ์ฑ ์์ค์ ๋ฌ์ฑํ๊ธฐ ์ํด ๊ฐ ๊ถํ ์ฌ์ฉ ํจํด๊ณผ ๊ด๋ จ๋ ์ฌ์ฉ์ ID ๋ฑ์ ๊ฐ์ธ ์๋ณ ์ ๋ณด(PII)๋ฅผ ๋ชจ๋ ์ญ์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Google Cloud์ ์ฒด์ ์์ฃผ ํ์๋์ง ์๋ ์ฌ์ฉ ํจํด์ ๋ชจ๋ ์ญ์ ํฉ๋๋ค. ์ ์ญ ๋ชจ๋ธ์ ์ด ์ต๋ช ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ํ์ต๋์ด ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด์ง ์๊ณ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋จธ์ ๋ฌ๋ ํ๋ก์ธ์ค์ธ ์ ํด ํ์ต์ ์ฌ์ฉํ์ฌ ์กฐ์ง๋ง๋ค ์ ์ญ ๋ชจ๋ธ์ ๋ง์ถค์ค์ ํ ์ ์์ต๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ ์์ฑ ๋ฐฉ๋ฒ
์ ์ฑ ํต๊ณ์์ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ชจ๋ ๊ถํ์ด ํ์ํ์ง ์๋ค๊ณ ํ์๋๋ ๊ฒฝ์ฐ IAM ์ถ์ฒ์๋ ์ญํ ์ ํ๊ฐํ์ฌ ์ญํ ์ ์ทจ์ํ ์ ์๋์ง ๋๋ ๋ ์ ํฉํ ๋ค๋ฅธ ์ญํ ์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ญํ ์ ์ทจ์ํ ์ ์์ผ๋ฉด IAM ์ถ์ฒ์๋ ์ญํ ์ ์ทจ์ํ๋ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค. ๋ ์ ํฉํ ๋ค๋ฅธ ์ญํ ์ด ์์ผ๋ฉด IAM ์ถ์ฒ์๋ ์ญํ ์ ์ถ์ฒ๋ ์ญํ ๋ก ๋์ฒดํ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค. ์ ์ปค์คํ ์ญํ , ๊ธฐ์กด ์ปค์คํ ์ญํ ๋๋ ์ฌ์ ์ ์๋ ์ญํ 1๊ฐ ์ด์์ด ์ญํ ๋ก ์ถ์ฒ๋ ์ ์์ต๋๋ค. ์๋น์ค ์์ด์ ํธ์ ๋ํ ๊ถ์ฅ์ฌํญ์ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๋ฉด ์ญํ ๊ถ์ฅ์ฌํญ์ ์ฃผ ๊ตฌ์ฑ์์ ์ก์ธ์ค ์์ค์ ๋์ด๋ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ํ์ง ์์ต๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ์ IAM ์ก์ธ์ค ์ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์ก์ธ์ค ์ ์ด ๋ชฉ๋ก(ACL) ๋ฐ Kubernetes ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด(RBAC)์ ๊ฐ์ ๋ค๋ฅธ ์ข ๋ฅ์ ์ก์ธ์ค ์ ์ด๋ฅผ ๊ณ ๋ คํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ์ ํ์ ์ก์ธ์ค ์ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ถ์ฅ์ฌํญ์ ๊ฒํ ํ ๋ ํนํ ์ฃผ์ํ๊ณ ์ด๋ฌํ ์ก์ธ์ค ์ ์ด๊ฐ ํ์ฉ ์ ์ฑ ๊ณผ ์ด๋ค ๊ด๋ จ์ด ์๋์ง ๊ณ ๋ คํฉ๋๋ค.
๋ํ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ๋ถ์ฌ๋ ๋ชจ๋ IAM ์ญํ ์ ๋ํ ์ญํ ๊ถ์ฅ์ฌํญ์ด ์์ฑ๋์ง ์์ต๋๋ค. ์ญํ ์ ์ญํ ๊ถ์ฅ์ฌํญ์ด ์์ ์ ์๋ ์ด์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ๊ฐ์ฉ์ฑ์ ์ฐธ์กฐํ์ธ์.
๊ด์ฐฐ ๊ธฐ๊ฐ
์ญํ ๊ถ์ฅ์ฌํญ ๊ด์ฐฐ ๊ธฐ๊ฐ์ ๊ถ์ฅ์ฌํญ ๊ธฐ์ค์ด ๋๋ ๊ถํ ์ฌ์ฉ ๋ฐ์ดํฐ์ ์ผ์์ ๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ์ ์ต๋ ๊ด์ฐฐ ๊ธฐ๊ฐ์ 90์ผ์ ๋๋ค. ์ฆ, IAM ์ถ์ฒ์๋ ์ต๊ทผ 90์ผ ๋์์ ๊ถํ ์ฌ์ฉ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค.
๋ํ IAM ์ถ์ฒ์๋ ํน์ ์ผ์์ ๊ถํ ์ฌ์ฉ ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํ๊ธฐ ์์ํฉ๋๋ค. ์ด ๊ธฐ๊ฐ์ ์ต์ ๊ด์ฐฐ ๊ธฐ๊ฐ์ด๋ผ๊ณ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๊ด์ฐฐ ๊ธฐ๊ฐ์ 90์ผ์ด์ง๋ง ํ๋ก์ ํธ ์์ค ์ญํ ๊ถ์ฅ์ฌํญ์ ๊ฒฝ์ฐ ์๋์ผ๋ก 30์ผ ๋๋ 60์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ญํ ๊ถ์ฅ์ฌํญ ์์ฑ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์. ์ต์ ๊ด์ฐฐ ๊ธฐ๊ฐ์ 90์ผ ๋ฏธ๋ง์ผ๋ก ์ค์ ํ๋ฉด ๊ถ์ฅ์ฌํญ์ด ๋ ๋นจ๋ฆฌ ํ์๋์ง๋ง ๊ถ์ฅ์ฌํญ์ ์ ํ๋๊ฐ ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
์ต์ ๊ด์ฐฐ ๊ธฐ๊ฐ๋ณด๋ค ์ค๋๋์์ง๋ง ์ญํ ์ด ์์ฑ๋์ง 90์ผ ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ ๊ด์ฐฐ ๊ธฐ๊ฐ์ ์ญํ ์ด ๋ถ์ฌ๋ ์ดํ์ ๊ธฐ๊ฐ์ ๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ์ ์ ์ปค์คํ ์ญํ
IAM ์ถ์ฒ์๊ฐ ํน์ ์ญํ ์ ๋์ฒด ์ญํ ์ ์ ์ํ ๋๋ ์ธ์ ๋ ์ฃผ ๊ตฌ์ฑ์์ ์๊ตฌ์ฌํญ์ ๋ ์ ํฉํ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๊ธฐ์กด ์ปค์คํ ์ญํ ๋๋ ์ฌ์ ์ ์๋ ์ญํ 1๊ฐ ์ด์์ ์ ์ํฉ๋๋ค.
IAM ์ถ์ฒ์๊ฐ ์กฐ์ง์์ ๊ธฐ์กด์ ์ฌ์ ์ ์๋ ์ญํ ๋๋ ์ปค์คํ ์ญํ ์ ๋งคํ๋์ง ์๋ ์ผ๋ฐ์ ์ธ ๊ถํ ์ฌ์ฉ ํจํด์ ์๋ณํ๋ฉด ์ ํ๋ก์ ํธ ์์ค ์ปค์คํ ์ญํ ์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ์ปค์คํ ์ญํ ์๋ ๊ถ์ฅ ๊ถํ๋ง ํฌํจ๋ฉ๋๋ค. ๊ถํ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ์ฌ ์ปค์คํ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ ํ ์ ์์ต๋๋ค.
์ต์ ๊ถํ ์์น์ ์ต๋ํ ์๊ฒฉํ ์ ์ฉํ๋ ค๋ฉด ์ ์ปค์คํ ์ญํ ์ ์ ํํฉ๋๋ค. IAM ์ถ์ฒ์๋ ํ๋ก์ ํธ ์์ค์์ ์ปค์คํ ์ญํ ์ ๋ง๋ญ๋๋ค. ์ฌ์ฉ์๋ ํ๋ก์ ํธ์ ์ปค์คํ ์ญํ ์ ์ ์งํ๊ณ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
์๋์ผ๋ก ์ ์ง๊ด๋ฆฌ๋๋ ์ญํ ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ ์ ์๋ ์ญํ ์ ์ ํํ์ธ์. Google Cloud ๋ ๊ถํ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ์ฌ ์ด๋ฌํ ์ญํ ์ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. ์ด๋ฌํ ์ ๋ฐ์ดํธ์ ๋ํ ์๋ฆผ์ ๋ฐ์ผ๋ ค๋ฉด ๊ถํ ๋ณ๊ฒฝ ๋ก๊ทธ์ ๋ํ ๋ด์ค ํผ๋๋ฅผ ๊ตฌ๋ ํ์ธ์. ์ฌ์ ์ ์๋ ์ญํ ์ ์ ํํ๋ฉด ์ฃผ ๊ตฌ์ฑ์์ด ์ ์ด๋ ๋ช ๊ฐ์ง ๊ถํ์ ๊ณ์ ๋ณด์ ํ๊ฒ ๋๊ณ ์์ง๊น์ง ์ฌ์ฉํ ์ ์ด ์์๋ ๋ค์์ ๊ถํ์ ๋ณด์ ํ๊ฒ ๋ ์๋ ์์ต๋๋ค.
IAM ์ถ์ฒ์๋ ํ๋ก์ ํธ์ ๋ถ์ฌ๋ ์ญํ ์๋ง ์ ์ปค์คํ ์ญํ ์ ๊ถ์ฅํฉ๋๋ค. ํด๋ ๋๋ ์กฐ์ง๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋ถ์ฌ๋๋ ์ญํ ์๋ ์๋ก์ด ์ปค์คํ ์ญํ ์ด ๊ถ์ฅ๋์ง ์์ต๋๋ค.
๋ํ IAM ์ถ์ฒ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ ์ปค์คํ ์ญํ ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
- ์กฐ์ง์ ์ด๋ฏธ 100๊ฐ ์ด์์ ์ปค์คํ ์ญํ ์ด ์์ต๋๋ค.
- ํ๋ก์ ํธ์ ์ด๋ฏธ 25๊ฐ ์ด์์ ์ปค์คํ ์ญํ ์ด ์์ต๋๋ค.
IAM ์ถ์ฒ์์์๋ ์ ์ปค์คํ ์ญํ ์ ๊ฐ ํ๋ก์ ํธ๋น ํ๋ฃจ 5๊ฐ ์ดํ, ์ ์ฒด ์กฐ์ง์๋ 15๊ฐ ์ดํ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
์ธก๋ฉด ์ด๋ ํต๊ณ ์์ฑ ๋ฐฉ๋ฒ
์ธก๋ฉด ์ด๋์ ํ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ ์ ์๋ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ์ ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ก์ ํธ A์์ ๋ง๋ ์๋น์ค ๊ณ์ ์ด ํ๋ก์ ํธ B์ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ ์ ์๋ ๊ถํ์ ๋ณด์ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ถํ์ ์ฃผ ๊ตฌ์ฑ์์ ์๋ํ์ง ์์ ๋ฆฌ์์ค ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ํ๋ก์ ํธ ๊ฐ์ ์ผ๋ จ์ ๊ฐ์ฅ์ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ ๊ตฌ์ฑ์์ด ํ๋ก์ ํธ A์ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ๋ ๊ฒฝ์ฐ ์ด ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ B์ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ B์ ์๋น์ค ๊ณ์ ์ ์กฐ์ง ๋ด ๋ค๋ฅธ ํ๋ก์ ํธ์ ๋ค๋ฅธ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ ์ ์๋ ๊ถํ์ด ์์ผ๋ฉด ์ฃผ ๊ตฌ์ฑ์์ด ๊ณ์ํด์ ์๋น์ค ๊ณ์ ๊ฐ์ฅ์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ๊ฐ์ ์ด๋ํ๋ฉฐ ๊ถํ์ ๊ณ์ ์ป์ ์ ์์ต๋๋ค.
IAM ์ถ์ฒ์๋ ๋ค์ ๊ธฐ์ค์ ๋ง๋ ์ญํ ์ ์๋ณํ์ฌ ์ธก๋ฉด ์ด๋ ํต๊ณ๋ฅผ ์์ฑํฉ๋๋ค.
- ์ญํ ์ด ๋ถ์ฌ๋ ์ฃผ ๊ตฌ์ฑ์์ ํด๋น ํ๋ก์ ํธ์์ ์์ฑ๋์ง ์์ ์๋น์ค ๊ณ์ ์ ๋๋ค.
์ด ์ญํ ์๋ ์ฃผ ๊ตฌ์ฑ์์ด ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ๋๋ก ํ์ฉํ๋ ๋ค์ ๊ถํ ์ค ํ๋๊ฐ ํฌํจ๋ฉ๋๋ค.
iam.serviceAccounts.actAs
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.implicitDelegation
iam.serviceAccounts.signBlob
iam.serviceAccounts.signJwt
์ญํ ์ด ์ด๋ฌํ ๊ธฐ์ค์ ๋ถํฉํ๋ฉด IAM ์ถ์ฒ์๊ฐ ์ญํ ์ ์ธก๋ฉด ์ด๋ ํต๊ณ๋ฅผ ์์ฑํฉ๋๋ค. ์ด ํต๊ณ์๋ ๊ฐ์ฅํ ์ ์๋ ์๋น์ค ๊ณ์ ๊ณผ ์ง๋ 90์ผ ๋์ ๊ฐ์ฅ ๊ถํ์ ์ฌ์ฉํ๋์ง ์ฌ๋ถ ๋ฑ ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅ ๊ถํ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
IAM ์ถ์ฒ์๊ฐ ์์ฒด์ ์ผ๋ก ์ธก๋ฉด ์ด๋ ํต๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํ์ง๋ ์์ต๋๋ค. ์๋น์ค ๊ณ์ ์ด ๊ฐ์ฅ ๊ถํ์ ์ฌ์ฉ ์ค์ธ ๊ฒฝ์ฐ IAM ์ถ์ฒ์๊ฐ ์์ ํ๊ฒ ์ญ์ ๋ฅผ ์ ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ญํ ๊ถ์ฅ์ฌํญ์์ ์ฌ์ฉ๋์ง ์๋ ๊ถํ์ ์ญ์ ํ๋๋ก ์ ์ํ๋ ๊ฒฝ์ฐ IAM ์ถ์ฒ์๊ฐ ์ธก๋ฉด ์ด๋ ํต๊ณ๋ฅผ ํด๋น ๊ถ์ฅ์ฌํญ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด๋ฌํ ์ฐ๊ฒฐ์ ํตํด ํ๋ก์ ํธ์์ ์ฌ์ฉ๋์ง ์๋ ๊ฐ๋ ฅํ ๊ฐ์ฅ ๊ถํ์ ๋ณด์ ํ ์๋น์ค ๊ณ์ ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ๋ํ ์ฐ์ ์์๋ฅผ ์ ํ ์ ์์ต๋๋ค.
์ธก๋ฉด ์ด๋ ํต๊ณ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ธก๋ฉด ์ด๋ ํต๊ณ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฐ์ฉ์ฑ
์ฃผ ๊ตฌ์ฑ์์๊ฒ ๋ถ์ฌ๋ ๋ชจ๋ ์ญํ ์ ๋ํด ์ ์ฑ ํต๊ณ, ์ธก๋ฉด ์ด๋ ํต๊ณ, ์ญํ ๊ถ์ฅ์ฌํญ์ด ์์ฑ๋์ง๋ ์์ต๋๋ค. ๋ค์ ์น์ ์ ์ฝ๊ณ ์ ์ฑ ํต๊ณ, ์ธก๋ฉด ์ด๋ ํต๊ณ, ๊ถ์ฅ์ฌํญ์ด ์์ฑ๋๋ ์ญํ ์ ์ดํดํฉ๋๋ค.
์ ์ฑ ํต๊ณ ๊ฐ์ฉ์ฑ
IAM ์ถ์ฒ์๊ฐ ์ญํ ์ ๋ํ ์ ์ฑ ํต๊ณ๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ค์ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
์ญํ ์ ๋ถ์ฌํ๋ IAM ํ์ฉ ์ ์ฑ ์ ๋ค์ ๋ฆฌ์์ค ์ค ํ๋์ ์ฐ๊ฒฐ๋์ด์ผ ํฉ๋๋ค.
- Cloud Storage ๋ฒํท
- BigQuery ๋ฐ์ดํฐ ์ธํธ
- ํ๋ก์ ํธ
- ํด๋
- ์กฐ์ง
IAM ์ถ์ฒ์๋ ์ด๋ฌํ ๋ฆฌ์์ค์ ๋ถ์ฌ๋ ์ญํ ์ ๋ํด์๋ง ์ ์ฑ ํต๊ณ๋ฅผ ์์ฑํฉ๋๋ค.
์ญํ ์ ๋ถ์ฌํ๋ ์ญํ ๊ฒฐํฉ์ ์กฐ๊ฑด์ด ์์ด์ผ ํฉ๋๋ค. IAM ์ถ์ฒ์๋ ์กฐ๊ฑด๋ถ ์ญํ ๋ฐ์ธ๋ฉ์ ์ ์ฑ ํต๊ณ๋ฅผ ์์ฑํ์ง ์์ต๋๋ค.
์ญํ ์ด ๋ถ์ฌ๋ ์ฃผ ๊ตฌ์ฑ์์ ๋ค์ ์ฃผ ๊ตฌ์ฑ์ ์ ํ ์ค ํ๋์ฌ์ผ ํฉ๋๋ค.
- ์ฌ์ฉ์
- ์๋น์ค ๊ณ์
- ๊ทธ๋ฃน
allUsers
allAuthenticatedUsers
- Cloud Storage ๋จ์ถ๊ฐ
- BigQuery ํน๋ณ ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ
๋ค์๊ณผ ๊ฐ์ ์ ํด ID ์ ํ ์ค ํ๋์ ๋๋ค.
- ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋ชจ๋ ID
- ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ๋จ์ผ ID
- ์ง์ ID ํ์ ๋ชจ๋ ID
- ์ง์ ID ํ์ ๋จ์ผ ID
ํน์ Kubernetes ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๋ ๋ชจ๋ Google Kubernetes Engine ํฌ๋
๊ฐ ์ฃผ ๊ตฌ์ฑ์ ์ ํ์ ์๋ณ์ ํ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.
IAM ์ถ์ฒ์๊ฐ ์๋ก ๋ถ์ฌ๋ ์ญํ ์ ๋ํ ์ ์ฑ ํต๊ณ๋ฅผ ์์ฑํ๋ ๋ฐ ์ต๋ 10์ผ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๊ธฐ์กด ์ ์ฑ ํต๊ณ๋ ์ต๊ทผ ๊ถํ ์ฌ์ฉ์ ๋ฐ๋ผ ๋งค์ผ ์๋ก๊ณ ์นจ๋ฉ๋๋ค. ํ์ง๋ง ์ ์ฑ ํต๊ณ์ ๊ธฐ๋ฐ์ด ๋๋ ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ค์ ์ฌ์ฉ๋๋ณด๋ค ์ต๋ 2์ผ ์ง์ฐ๋ฉ๋๋ค.
์ธก๋ฉด ์ด๋ ํต๊ณ ๊ฐ์ฉ์ฑ
์ธก๋ฉด ์ด๋ ํต๊ณ๋ ๋ค์ ๋ฆฌ์์ค์ ๋ถ์ฌ๋ ์ญํ ์ ๋ํด ์์ฑ๋ฉ๋๋ค.
- ์กฐ์ง
- ํด๋
- ํ๋ก์ ํธ
- ์๋น์ค ๊ณ์
์ญํ ๊ถ์ฅ์ฌํญ ๊ฐ์ฉ์ฑ
IAM ์ถ์ฒ์๊ฐ ์ญํ ์ ๋ํ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํ๋ ค๋ฉด ๋ค์ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
- ์ญํ ์ ์ฐ๊ฒฐ๋ ์ ์ฑ ํต๊ณ๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ด ์ ์ฑ ์ ๊ถ์ฅ์ฌํญ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ์ญํ ์ด ๋ถ์ฌ๋ ์ดํ ์ต์ ๊ด์ฐฐ ๊ธฐ๊ฐ๋ณด๋ค ๊ธธ์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด IAM ์ถ์ฒ์๋ ๊ถ์ฅ์ฌํญ์ ์ ๊ณตํ ๋งํผ ์ถฉ๋ถํ ์ฌ์ฉ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๊ด์ฐฐ ๊ธฐ๊ฐ์ 90์ผ์ด์ง๋ง ์๋์ผ๋ก 30์ผ ๋๋ 60์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ญํ ๊ถ์ฅ์ฌํญ ์์ฑ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
- ์ญํ ์ด ๋ถ์ฌ๋ ์ฃผ ๊ตฌ์ฑ์์ด ์๋น์ค ์์ด์ ํธ๋ฉด ์ญํ ์ ์์ ์, ํธ์ง์ ๋๋ ๋ทฐ์ด์ฌ์ผ ํฉ๋๋ค. IAM ์ถ์ฒ์๋ ๋ค๋ฅธ ์ญํ ์ด ์๋ ์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํ์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
์ญํ ์ด ๋๋ฌด ์ต๊ทผ์ ๋ถ์ฌ๋์๊ฑฐ๋ ํต๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ Google Cloud ์ฝ์์ ๋ถ์๋ ๊ถํ ์ด์
์์ด์ฝ์ด ํ์๋ฉ๋๋ค.์๊ฐ์ด ์ถฉ๋ถํ ๊ฒฝ๊ณผํ๊ณ ์ญํ ์ ์ฐ๊ฒฐ๋ ํต๊ณ๊ฐ ์๋๋ผ๋ IAM ์ถ์ฒ์๊ฐ ์ญํ ์ ๋ํ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค.
ํ์ฌ ์ญํ ๋ณด๋ค ์ ์ ํ ์ฌ์ ์ ์๋ IAM ์ญํ ์ด ์์ต๋๋ค. ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ด๋ฏธ ๊ถํ์ด ์ต์ํ๋ ์ฌ์ ์ ์๋ ์ญํ ์ด ๋ถ์ฌ๋์๊ฑฐ๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ๋ณด๋ค ๊ถํ์ด ์ ์ ๊ฒฝ์ฐ IAM ์ถ์ฒ์๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ์ถ์ฒํ ์ ์์ต๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ ์ํ ์ปค์คํ ์ญํ ์ ๋ง๋ค์ด ์ฃผ ๊ตฌ์ฑ์์ ๊ถํ์ ์ค์ผ ์ ์์ต๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ ์๋น์ค ์์ด์ ํธ์ด๋ฉฐ ์ญํ ์ ๊ธฐ๋ณธ ์ญํ ์ด ์๋๋๋ค. IAM ์ถ์ฒ์๋ ๊ธฐ๋ณธ ์ญํ (์์ ์, ํธ์ง์, ๋ทฐ์ด)์ด ์๋ ์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ๋ง ์์ฑํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
ํ๋ก์ ํธ์ ์์ ์ ๊ธฐ๋ณธ ์ญํ ์ ๊ฐ์ง ๋ค๋ฅธ ์ฃผ ๊ตฌ์ฑ์์ด ์์ต๋๋ค. ํ๋ก์ ํธ๋ง๋ค ์ฃผ ๊ตฌ์ฑ์ ์ต์ ํ ๋ช ์ด์์๊ฒ ์์ ์ ์ญํ (
roles/owner
)์ด ์์ด์ผ ํฉ๋๋ค. ์ด ์ญํ ์ด ์๋ ์ฃผ ๊ตฌ์ฑ์์ด ๋จ ํ ๋ช ์ด๋ฉด IAM ์ถ์ฒ์๋ ์ญํ ์ ์ทจ์ํ๊ฑฐ๋ ๋์ฒดํ๋ ๊ฒ์ ์ถ์ฒํ์ง ์์ต๋๋ค.
์ด๋ฌํ ๊ฒฝ์ฐGoogle Cloud ์ฝ์์ ๋ถ์๋ ๊ถํ ์ด์ ์ฃผ ๊ตฌ์ฑ์์ ๊ถํ ์ฌ์ฉ๋์ด ํ์๋์ง๋ง ๊ถ์ฅ์ฌํญ ์ฌ์ฉ ๊ฐ๋ฅ
์์ด์ฝ์ ์์ต๋๋ค.๊ธฐ์กด ์ญํ ๊ถ์ฅ์ฌํญ์ ์ต๊ทผ ๊ถํ ์ฌ์ฉ์ ๋ฐ๋ผ ๋งค์ผ ์๋ก๊ณ ์นจ๋ฉ๋๋ค. ํ์ง๋ง ์ญํ ๊ถ์ฅ์ฌํญ์ ๊ธฐ๋ฐ์ด ๋๋ ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ค์ ์ฌ์ฉ๋๋ณด๋ค ์ต๋ 2์ผ๊น์ง ์ง์ฐ๋ฉ๋๋ค.
์ฐ์ ์์ ๋ฐ ์ฌ๊ฐ๋
๊ถ์ฅ์ฌํญ ์ฐ์ ์์ ๋ฐ ํต๊ณ ์ฌ๊ฐ๋๋ ๊ถ์ฅ์ฌํญ ๋๋ ํต๊ณ์ ๊ธด๊ธ์ฑ์ ์ดํดํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์ฐ์ ์์๋ฅผ ์ง์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ ์ฐ์ ์์
๊ถ์ฅ์ฌํญ์ ์ธ์๋๋ ๊ธด๊ธํ ์์ค์ ๋ฐ๋ผ ์ฐ์ ์์ ์์ค์ด ํ ๋น๋ฉ๋๋ค.
์ฐ์ ์์ ์์ค ๋ฒ์๋ P1
(๊ฐ์ฅ ๋์ ์ฐ์ ์์)์์ P4
(๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์)๊น์ง์
๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ์ ์ฐ์ ์์๋ ๊ถ์ฅ์ฌํญ์ ์ญํ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๊ถ์ฅ์ฌํญ ์ธ๋ถ์ ๋ณด | ์ฐ์ ์์ | ์ค๋ช |
---|---|---|
Cloud Storage ๋ฒํท์ ๋ํ ๊ณต๊ฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ์ญํ ์ ๊ถ์ฅ์ฌํญ | P1 |
๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ฒํท์๋ ์ธํฐ๋ท์์ ๋๊ตฌ๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ณต๊ฐ ์ก์ธ์ค๋ฅผ ์ญ์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. |
BigQuery ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๊ณต๊ฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ์ญํ ์ ๊ถ์ฅ์ฌํญ | P1 |
๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ฐ์ดํฐ ์ธํธ์๋ ์ธํฐ๋ท์์ ๋๊ตฌ๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ณต๊ฐ ์ก์ธ์ค๋ฅผ ์ญ์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. |
ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ถ์ฌ๋๋ ๊ธฐ๋ณธ ์ญํ (์์ ์, ํธ์ง์, ๋ทฐ์ด)์ ๋ํ ๊ถ์ฅ์ฌํญ | P2 |
๊ธฐ๋ณธ ์ญํ ์ ๊ถํ์ด ๋์ผ๋ฉฐ ์ด๋ฌํ ์ญํ ์ ๊ถ์ฅ์ฌํญ์ ์ ์ฉํ๋ฉด ์ด๊ณผ ๊ถํ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. |
๊ณต๊ฐ ์ก์ธ์ค ๋๋ ๊ธฐ๋ณธ ์ญํ ์ ๋ถ์ฌํ์ง ์๋ ๊ถ์ฅ์ฌํญ | P4 |
์ด๋ฌํ ๊ถ์ฅ์ฌํญ์ ํตํด ๊ณผ๋ํ ๊ถํ์ ์ค์ผ ์ ์์ง๋ง ๊ณต๊ฐ ์ก์ธ์ค ๋๋ ๋์ ๊ถํ์ด ์๋ ๊ธฐ๋ณธ ์ญํ ์ ์ญ์ ๋์ง ์์ผ๋ฏ๋ก ์ฐ์ ์์๊ฐ ๋ฎ์ต๋๋ค. |
ํต๊ณ ์ฌ๊ฐ๋
ํต๊ณ์๋ ์ธ์๋๋ ๊ธด๊ธํ ์์ค์ ๋ฐ๋ผ ์ฌ๊ฐ๋ ์์ค์ด ํ ๋น๋ฉ๋๋ค. ์ฌ๊ฐ๋ ์์ค์ LOW
, MEDIUM
, HIGH
, CRITICAL
์ผ ์ ์์ต๋๋ค.
์ ์ฑ ํต๊ณ์ ์ฌ๊ฐ๋๋ ํต๊ณ์ ์ญํ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
ํต๊ณ ์ธ๋ถ์ ๋ณด | ์ฌ๊ฐ๋ | ์ค๋ช |
---|---|---|
Cloud Storage ๋ฒํท์ ๋ํ ๊ณต๊ฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ์ญํ ์ ๋ํ ํต๊ณ | CRITICAL |
๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ฒํท์๋ ์ธํฐ๋ท์์ ๋๊ตฌ๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ณต๊ฐ ์ก์ธ์ค๋ฅผ ์ญ์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. |
BigQuery ๋ฐ์ดํฐ ์ธํธ์ ๊ณต๊ฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ์ญํ ์ ๋ํ ํต๊ณ | CRITICAL |
๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ ๋ฐ์ดํฐ ์ธํธ์๋ ์ธํฐ๋ท์์ ๋๊ตฌ๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ณต๊ฐ ์ก์ธ์ค๋ฅผ ์ญ์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. |
ํ๋ก์ ํธ, ํด๋ ๋๋ ์กฐ์ง์ ๋ถ์ฌ๋ ๊ธฐ๋ณธ ์ญํ (์์ ์, ํธ์ง์, ๋ทฐ์ด)์ ๋ํ ํต๊ณ | HIGH |
๊ธฐ๋ณธ ์ญํ ์ ๊ถํ์ด ๋์ผ๋ฉฐ, ์ด๋ฌํ ์ญํ ์ ๋ํ ํต๊ณ๋ฅผ ์ฒ๋ฆฌํ๋ฉด ๊ณผ๋ํ ๊ถํ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. |
๊ณต๊ฐ ์ก์ธ์ค ๋๋ ๊ธฐ๋ณธ ์ญํ ์ ๋ถ์ฌํ์ง ์๋ ํต๊ณ | LOW |
์ด๋ฌํ ํต๊ณ๋ ๊ณผ๋ํ ๊ถํ์ ๊ฐ์กฐํ์ง๋ง ๊ณต๊ฐ ์ก์ธ์ค ๋๋ ๊ถํ์ด ๋์ ๊ธฐ๋ณธ ์ญํ ์ ํฌํจ๋์ง ์์ผ๋ฏ๋ก ์ฐ์ ์์๊ฐ ๋ฎ์ต๋๋ค. |
๋ชจ๋ ์ธก๋ฉด ์ด๋ ํต๊ณ์ ์ฌ๊ฐ๋๋ LOW
์
๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ ์ ์ฉ ๋ฐฉ๋ฒ
IAM ์ถ์ฒ์๋ ์๋์ผ๋ก ๊ถ์ฅ์ฌํญ์ ์ ์ฉํ์ง ์์ต๋๋ค. ๋์ ์ฌ์ฉ์๊ฐ ๊ถ์ฅ์ฌํญ์ ๊ฒํ ํ๊ณ ์ ์ฉํ๊ธฐ ๋๋ ๋ซ๊ธฐ๋ฅผ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ์ญํ ๊ถ์ฅ์ฌํญ์ ๊ฒํ ๋ฐ ์ ์ฉํ๊ณ ๋ซ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๊ฐ์ด๋ ์ค ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ญํ ์ถ์ฒ ๊ฒํ ๋ฐ ์ ์ฉ
- Cloud Storage ๋ฒํท์ ์ญํ ๊ถ์ฅ์ฌํญ ๊ฒํ ๋ฐ ์ ์ฉ
- BigQuery ๋ฐ์ดํฐ ์ธํธ์ ์ญํ ๊ถ์ฅ์ฌํญ ๊ฒํ ๋ฐ ์ ์ฉ
๊ฐ์ฌ ๋ก๊น
๊ถ์ฅ์ฌํญ์ ์ ์ฉํ๊ฑฐ๋ ๋ซ์ผ๋ฉด IAM ์ถ์ฒ์๊ฐ ๋ก๊ทธ ํญ๋ชฉ์ ๋ง๋ญ๋๋ค. ์ถ์ฒ ๊ธฐ๋ก์์ ํญ๋ชฉ์ ํ์ธํ๊ฑฐ๋ Google Cloud ๊ฐ์ฌ ๋ก๊ทธ์์ ํญ๋ชฉ์ ํ์ธํ ์ ์์ต๋๋ค.
์ญํ ๊ถ์ฅ์ฌํญ ํ์์ ํ
์ญํ ๊ถ์ฅ์ฌํญ์ ๊ถ์ฅ ์์ ์ ๋ฐ๋ผ ์ฌ๋ฌ ํ์์ ํ์ผ๋ก ๋๋ฉ๋๋ค. gcloud CLI ๋๋ REST API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ํ์์ ํ์ผ๋ก ๊ถ์ฅ์ฌํญ์ ํํฐ๋งํ ์ ์์ต๋๋ค.
ํ์์ ํ | ์ค๋ช |
---|---|
REMOVE_ROLE |
์ฃผ ๊ตฌ์ฑ์์ ํ๋ก์ ํธ ์์ค, ํด๋ ์์ค, ์กฐ์ง ์์ค ์ญํ ์ ์ญ์ ํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. |
REMOVE_ROLE_BIGQUERY_DATASET |
์ฃผ ๊ตฌ์ฑ์์ ๋ฐ์ดํฐ ์ธํธ ์์ค ์ญํ ์ ์ญ์ ํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. |
REMOVE_ROLE_STORAGE_BUCKET |
์ฃผ ๊ตฌ์ฑ์์ ๋ฒํท ์์ค ์ญํ ์ ์ญ์ ํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. |
REPLACE_ROLE |
์ฃผ ๊ตฌ์ฑ์์ ํ๋ก์ ํธ ์์ค, ํด๋ ์์ค ๋๋ ์กฐ์ง ์์ค ์ญํ ์ ๊ถํ์ด ๋ ๋ฎ์ ์ญํ ๋ก ๋์ฒดํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. ๊ถ์ฅ๋๋ ๋์ฒด ์ญํ ์ ๊ธฐ์กด ์ปค์คํ ์ญํ ๋๋ ํ๋ ์ด์์ ์ฌ์ ์ ์๋ ์ญํ ์ผ ์ ์์ต๋๋ค. |
REPLACE_ROLE_CUSTOMIZABLE |
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ํ์ฌ ์ญํ ๋ณด๋ค ๊ถํ์ด ๋ ๋ฎ์ ์ ์ปค์คํ ์ญํ ๋ก ๋์ฒดํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. |
REPLACE_ROLE_BIGQUERY_DATASET |
์ฃผ ๊ตฌ์ฑ์์ ๋ฐ์ดํฐ ์ธํธ ์์ค ์ญํ ์ ๊ถํ์ด ๋ ๋ฎ์ ์ญํ ๋ก ๋์ฒดํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. ๊ถ์ฅ๋๋ ๋์ฒด ์ญํ ์ ๊ธฐ์กด ์ปค์คํ ์ญํ ๋๋ ํ๋ ์ด์์ ์ฌ์ ์ ์๋ ์ญํ ์ผ ์ ์์ต๋๋ค. |
REPLACE_ROLE_STORAGE_BUCKET |
์ฃผ ๊ตฌ์ฑ์์ ๋ฒํท ์์ค ์ญํ ์ ๊ถํ์ด ๋ ๋ฎ์ ์ญํ ๋ก ๋์ฒดํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. ๊ถ์ฅ๋๋ ๋์ฒด ์ญํ ์ ๊ธฐ์กด ์ปค์คํ ์ญํ ๋๋ ํ๋ ์ด์์ ์ฌ์ ์ ์๋ ์ญํ ์ผ ์ ์์ต๋๋ค. |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
์๋น์ค ๊ณ์ ์ ์์ ์, ํธ์ง์ ๋๋ ๋ทฐ์ด ์ญํ ์, ์๋น์ค ๊ณ์ ์ ์์ฑ ์์ ์๋์ผ๋ก ๋ถ์ฌ๋ ์ญํ ๋ก ๊ต์ฒดํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ์ฐธ์กฐํ์ธ์. |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
์๋น์ค ์์ด์ ํธ์ ์์ ์, ํธ์ง์ ๋๋ ๋ทฐ์ด ์ญํ ์ ๊ถํ์ด ๋ฎ์ ์ญํ ๋ก ๊ต์ฒดํ๊ธฐ ์ํ ๊ถ์ฅ์ฌํญ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ์ ์ฐธ์กฐํ์ธ์. |
์๋น์ค ์์ด์ ํธ์ ์ญํ ๊ถ์ฅ์ฌํญ
์๋น์ค ์์ด์ ํธ์ ๊ฒฝ์ฐ, IAM ์ถ์ฒ์๋ ๊ธฐ๋ณธ ์ญํ (์์ ์, ํธ์ง์, ๋ทฐ์ด)์ ๋ํ ๊ถ์ฅ์ฌํญ๋ง ์ ๊ณตํฉ๋๋ค.
์๋น์ค ์์ด์ ํธ์ ๊ถ์ฅ์ฌํญ์ ๋ ๊ฐ์ง ๊ถ์ฅ์ฌํญ ํ์์ ํ์ผ๋ก ๋๋ฉ๋๋ค.
SERVICE_AGENT_WITH_DEFAULT_ROLE
์ผ๋ถ ์๋น์ค ์์ด์ ํธ์๋ ์์ฑ ์ Google Cloud ์๋น์ค๊ฐ ์ ๋๋ก ์๋ํ๋๋ก ์๋น์ค ์์ด์ ํธ ์ญํ ์ด ์๋์ผ๋ก ๋ถ์ฌ๋ฉ๋๋ค. ์ด ์ญํ ์ ๊ธฐ๋ณธ ์ญํ (์์ ์, ํธ์ง์, ๋ทฐ์ด)๋ก ๋ฐ๊พธ๋ฉด ์ถ์ฒ์๋ ์๋น์ค ์์ด์ ํธ ์ญํ ์ด ๊ธฐ๋ณธ ์ญํ ์ ์๋ ๊ถํ์ ๊ฐ์ง ๊ฒฝ์ฐ์๋ ์๋ ์๋น์ค ์์ด์ ํธ ์ญํ ์ ๋ณต์ํ์ฌ ์ด๊ณผ ๊ถํ์ ์ญ์ ํ๋๋ก ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ถ์ฒ์๋ SERVICE_AGENT_WITH_DEFAULT_ROLE
ํ์ ์ ํ์ด ์์ต๋๋ค. ์ด๋ ๋ชจ๋ Google Cloud ์๋น์ค๊ฐ ์ ๋๋ก ์๋ํ๋ฉด์ ์ด๊ณผ ๊ถํ์ ์์ ํ๊ฒ ์ญ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
SERVICE_AGENT_WITH_DEFAULT_ROLE
๊ถ์ฅ์ฌํญ์ ํ์ฌ ์ญํ ์ ์๋ ๊ถํ์ ๊ฐ์ง ์ญํ ์ ์ ์ํ ์ ์๋ ์ ์ผํ ๊ถ์ฅ์ฌํญ ์ ํ์
๋๋ค.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
์์ฑ ์ ์๋น์ค ์์ด์ ํธ์ ์ญํ ์ด ์๋์ผ๋ก ๋ถ์ฌ๋์ง ์์ผ๋ฉด ์๋น์ค ์์ด์ ํธ์ ๊ถ์ฅ์ฌํญ์ ์๋น์ค ์์ด์ ํธ์์ ์ฌ์ฉํ๋ ๊ถํ์ ๊ธฐ๋ฐ์ผ๋ก๋ง ๊ฒฐ์ ๋ฉ๋๋ค. ์ด๋ฌํ ๊ถ์ฅ์ฌํญ์๋ SERVICE_AGENT_WITHOUT_DEFAULT_ROLE
ํ์์ ํ์ด ์์ต๋๋ค.
Security Command Center์ ์ญํ ์ถ์ฒ
ํ๋ฆฌ๋ฏธ์ ๋๋ Enterprise ๋ฑ๊ธ์ Security Command Center๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Security Command Center์์ ์ญํ ์ถ์ฒ์ ์ผ๋ถ ํ์์ ํ์ ๋ฐ๊ฒฌ ํญ๋ชฉ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ๊ฐ ํ์ ์ ํ์ ๊ฐ์ง๊ธฐ์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
๊ถ์ฅ์ฌํญ ํ์์ ํ | ๋ฐ๊ฒฌ ํญ๋ชฉ ์นดํ ๊ณ ๋ฆฌ |
---|---|
REMOVE_ROLE |
Unused IAM role |
REPLACE_ROLE |
IAM role has excessive permissions |
SERVICE_AGENT_WITH_DEFAULT_ROLE |
Service agent role replaced with basic role |
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE |
Service agent granted basic role |
Security Command Center์์ ์ญํ ์ถ์ฒ์ ๋ณด๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ Security Command Center ๋ฌธ์์ IAM ์ถ์ฒ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฐ๊ฒฉ ์ฑ ์
๊ธฐ๋ณธ ์ญํ ์ ํ๋ก์ ํธ ์์ค, ํด๋ ์์ค, ์กฐ์ง ์์ค ์ญํ ๊ถ์ฅ์ฌํญ์ ๊ณ์ ๋ฌด๋ฃ๋ก ์ ๊ณต๋ฉ๋๋ค.
๋ค์ ๊ณ ๊ธ IAM ์ถ์ฒ์ ๊ธฐ๋ฅ์ Security Command Center ํ๋ฆฌ๋ฏธ์ ๋๋ Enterprise ๋ฑ๊ธ์ ํ๋ก์ ํธ ์์ค ๋๋ ์กฐ์ง ์์ค ํ์ฑํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ์ด ์๋ ์ญํ ์ ๋ํ ๊ถ์ฅ์ฌํญ
- ์กฐ์ง, ํด๋, ํ๋ก์ ํธ๊ฐ ์๋ ๋ฆฌ์์ค์ ๋ถ์ฌ๋ ์ญํ ์ ๋ํ ๊ถ์ฅ์ฌํญ(์: Cloud Storage ๋ฒํท์ ๋ถ์ฌ๋ ์ญํ ์ ๋ํ ๊ถ์ฅ์ฌํญ)
- ์ปค์คํ ์ญํ ์ ์ ์ํ๋ ๊ถ์ฅ์ฌํญ
- ์ ์ฑ ํต๊ณ
- ์ธก๋ฉด ์ด๋ ํต๊ณ
์์ธํ ๋ด์ฉ์ ๊ฒฐ์ ๊ด๋ จ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ญํ ๊ถ์ฅ์ฌํญ ์์
๋ค์ ์์๋ ์ฌ์ฉ์์ ๋ํ ๊ถ์ฅ์ฌํญ ์ ํ์ ๋ณด์ฌ์ค๋๋ค.
๊ธฐ์กด ์ญํ ์ทจ์
์ฌ์ฉ์ my-user@example.com
์๊ฒ ํ๋ก์ ํธ์ ๋ํ ๋ธ๋ผ์ฐ์ ์ญํ ์ด ๋ถ์ฌ๋์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์ญํ ์๋ ์ฌ์ฉ์๊ฐ ํ๋ก์ ํธ์ ๋ฆฌ์์ค๋ฅผ ๋ณผ ์ ์๊ฒ ํ๋ 6๊ฐ์ ๊ถํ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๋ 90์ผ ๋์ my-user@example.com
์ ์ด๋ค ๋ฆฌ์์ค๋ ๋ณด์ง ๋ชปํ์ต๋๋ค.
๋ฐ๋ผ์ IAM ์ถ์ฒ์๋ my-user@example.com
์์ ๋ธ๋ผ์ฐ์ ์ญํ ์ ์ทจ์ํ ๊ฒ์ ์ ์ํ๋ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค.
์ฝ์
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"member": "user:my-user@example.com",
"removedRole": "roles/browser",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "This role has not been used during the observation window.",
"etag": "\"9fc3241da8bfab51\"",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"priority": "P4",
"recommenderSubtype": "REMOVE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2022-05-20T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 6
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/browser"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/browser"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"9fc3241da8bfab51\"",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
}
],
"priority": "P4"
}
๊ธฐ์กด ์ญํ ๋ฐ๊พธ๊ธฐ
์๋น์ค ๊ณ์ ์ ํ๋ก์ ํธ์ ๋ํ ํธ์ง์ ์ญํ (roles/editor
)์ด ๋ถ์ฌ๋์์ต๋๋ค.
์ด ๊ธฐ๋ณธ ์ญํ ์๋ 3,000๊ฐ๊ฐ ๋๋ ๊ถํ์ด ํฌํจ๋๋ฉฐ ํ๋ก์ ํธ์ ๋ํ ๊ด๋ฒ์ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ง๋ 90์ผ ๋์ ์๋น์ค ๊ณ์ ์ ์ด๋ฌํ ๊ถํ ์ค ์ผ๋ถ๋ง ์ฌ์ฉํ์ต๋๋ค.
๋ฐ๋ผ์ IAM ์ถ์ฒ์๋ ํธ์ง์ ์ญํ ์ ์ทจ์ํ๊ณ 2๊ฐ์ ๋ค๋ฅธ ์ญํ ์กฐํฉ์ผ๋ก ๋์ฒดํ์ฌ ์์ฒ ๊ฐ์ ์ด๊ณผ ๊ถํ์ ์ญ์ ํ ๊ฒ์ ์ ์ํ๋ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค.
์ฝ์
gcloud
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/iam.serviceAccountUser"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/editor"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"addedRoles": [
"roles/iam.serviceAccountUser",
"roles/storage.objectAdmin"
],
"member": "user:my-user@example.com",
"minimumObservationPeriodInDays": "0",
"removedRole": "roles/editor",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
}
},
"description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
"etag": "\"0da9a354c2a83d96\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 2998
}
}
},
"priority": "P2",
"recommenderSubtype": "REPLACE_ROLE",
"stateInfo": {
"state": "ACTIVE"
}
}
REST
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
"description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 2998
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/iam.serviceAccountOwner"
}
},
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/editor"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"member": "user:my-user@example.com",
"removedRole": "roles/editor",
"addedRoles": [
"roles/iam.serviceAccountUser",
"roles/storage.objectAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"0da9a354c2a83d96\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
}
],
"priority": "P2"
}
๋ง์ถค ์ญํ ๋ง๋ค๊ธฐ
์ฌ์ฉ์ my-user@example.com
์๊ฒ ํ๋ก์ ํธ์ ๋ํ Cloud Trace ๊ด๋ฆฌ์ ์ญํ (roles/cloudtrace.admin
)์ด ๋ถ์ฌ๋์์ต๋๋ค. ์ด ์ญํ ์๋ 10๊ฐ๊ฐ ๋๋ ๊ถํ์ด ํฌํจ๋์ด ์์ง๋ง ์ ์ฑ
ํต๊ณ๋ ์ง๋ 90์ผ ๋์ my-user@example.com
์ด ์ด๋ฌํ ๊ถํ ์ค 4๊ฐ๋ง ์ฌ์ฉํ์์ ๋ํ๋
๋๋ค.
๋ฐ๋ผ์ IAM ์ถ์ฒ์๋ my-user@example.com
์ด ์ค์ ๋ก ์ฌ์ฉํ ๊ถํ๋ง ํฌํจํ๋ ์ปค์คํ
์ญํ ์ ๋ง๋ค๋๋ก ์ ์ํ๋ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค.
์ฝ์
gcloud
REPLACE_ROLE_CUSTOMIZABLE
ํ์์ ํ์ IAM ์ถ์ฒ์๊ฐ ์ฌ์ฉ๋ ๊ถํ์ผ๋ก ์ปค์คํ
์ญํ ์ ๋ง๋๋ ๊ฒ์ ๊ถ์ฅํจ์ ๋ํ๋
๋๋ค. ์ฌ์ฉ๋ ๊ถํ์ ํ์ธํ๋ ค๋ฉด ๊ด๋ จ ์ ์ฑ
ํต๊ณ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"associatedResourceNames": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"path": "/iamPolicy/bindings/*/members/-",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"value": "user:my-user@example.com"
},
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"etag": "\"c7f57a4725d32d66\"",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"originalContent": {},
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {},
"revokedIamPermissionsCount": 1
}
},
"priority": "P4",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"stateInfo": {
"state": "ACTIVE"
},
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
]
}
REST
REPLACE_ROLE_CUSTOMIZABLE
ํ์์ ํ์ IAM ์ถ์ฒ์๊ฐ ์ฌ์ฉ๋ ๊ถํ์ผ๋ก ์ปค์คํ
์ญํ ์ ๋ง๋๋ ๊ฒ์ ๊ถ์ฅํจ์ ๋ํ๋
๋๋ค. ์ฌ์ฉ๋ ๊ถํ์ ํ์ธํ๋ ค๋ฉด ๊ด๋ จ ์ ์ฑ
ํต๊ณ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2022-06-22T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 1
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:my-user@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
"/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
}
}
]
}
],
"overview": {
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "\"c7f57a4725d32d66\"",
"recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
}
],
"priority": "P4"
}
์ญํ ๊ถ์ฅ์ฌํญ์ ๊ธฐ์กด ์ญํ ์ Cloud Trace ์ฌ์ฉ์ ์ญํ (roles/cloudtrace.user
)๋ก ๋์ฒดํ๋ ๋ค๋ฅธ ์ต์
๋ ์ ์ํฉ๋๋ค. ์ด ์ฌ์ ์ ์๋ ์ญํ ์๋ Cloud Trace ๊ด๋ฆฌ์ ์ญํ ๋ณด๋ค ์ฝ๊ฐ ์ ์ ๊ถํ์ด ํฌํจ๋ฉ๋๋ค.
๋จธ์ ๋ฌ๋์์ ์ ์ํ๋ ๊ถํ์ผ๋ก ์ญํ ๋์ฒด
์๋น์ค ๊ณ์ ์ ํ๋ก์ ํธ์ ๋ํ ํธ์ง์ ์ญํ (roles/editor
)์ด ๋ถ์ฌ๋์์ต๋๋ค.
์ด ๊ธฐ๋ณธ ์ญํ ์๋ 3,000๊ฐ๊ฐ ๋๋ ๊ถํ์ด ํฌํจ๋๋ฉฐ ํ๋ก์ ํธ์ ๋ํ ๊ด๋ฒ์ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฑ
ํต๊ณ์์๋ ์๋น์ค ๊ณ์ ์ด ์ง๋ 90์ผ ๋์ 10๊ฐ ๋ฏธ๋ง์ ๊ถํ์ ์ฌ์ฉํ ๊ฒ์ผ๋ก ๋ํ๋ฉ๋๋ค.
์ ์ฑ ํต๊ณ๋ ํฅํ ์๋น์ค ๊ณ์ ์ ํ์ํ ์ ์๋ ๋ช ๊ฐ์ง ๊ถํ์ ๊ฐ์กฐํ์ํฉ๋๋ค. IAM ์ถ์ฒ์๋ ๋จธ์ ๋ฌ๋์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ถํ์ ์๋ณํ์ต๋๋ค.
IAM ์ถ์ฒ์๋ ํธ์ง์ ์ญํ ์ ์ทจ์ํ๊ณ ์คํ ๋ฆฌ์ง ๊ฐ์ฒด ๊ด๋ฆฌ์ ์ญํ (roles/storage.objectAdmin
)๋ก ๋์ฒดํ ๊ฒ์ ์ ์ํ๋ ์ญํ ๊ถ์ฅ์ฌํญ์ ์์ฑํฉ๋๋ค. ์คํ ๋ฆฌ์ง ๊ฐ์ฒด ๊ด๋ฆฌ์ ์ญํ ์ Cloud Storage ๋ฒํท์์ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ์ ์ฒด ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ์ด๋ ๊ฒ ๋ณ๊ฒฝํ๋ฉด ์์ฒ ๊ฐ์ ์ด๊ณผ ๊ถํ์ด ์ญ์ ๋์ง๋ง, ์๋น์ค ๊ณ์ ์์ ์ฌ์ฉํ ๊ถํ ๋ฐ ํฅํ ์๋น์ค ๊ณ์ ์ ํ์ํ ์ ์๋ ๊ถํ๋ ๋ชจ๋ ํฌํจ๋ฉ๋๋ค.
์ฝ์
IAM ์ถ์ฒ์๋ ๊ถํ ์ฌ์ฉ์ด ์๋ IAM ์ถ์ฒ์์ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ๋ ๊ถํ์ ์๋ณํ๋๋ก ๋จธ์ ๋ฌ๋resourcemanager.projects.get
๊ถํ์ด ์ถ์ฒ๋์์ต๋๋ค.
gcloud
๊ถํ ์ฌ์ฉ์ด ์๋ IAM ์ถ์ฒ์์ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ๋ ๊ถํ์ ๊ถ์ฅ์ฌํญ ์์ฒด์ ๋์ด๋์ง ์์ต๋๋ค. ๋์ ๊ถ์ฅ์ฌํญ๊ณผ ์ฐ๊ฒฐ๋ ์ ์ฑ
ํต๊ณ์ ๋์ด๋ฉ๋๋ค. ๋ชจ๋ ML ๊ธฐ๋ฐ ๊ถํ์ ํต๊ณ์ inferredPermissions
ํ๋์ ๋์ด๋ฉ๋๋ค. ์ด ์์์์๋ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก resourcemanager.projects.get
๊ถํ์ด ์ถ์ฒ๋์์ต๋๋ค.
associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
condition:
description: ''
expression: ''
location: ''
title: ''
currentTotalPermissionsCount: '5069'
exercisedPermissions:
- permission: storage.objects.create
- permission: storage.objects.delete
- permission: storage.objects.get
- permission: storage.objects.list
inferredPermissions:
- permission: resourcemanager.projects.get
member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
role: roles/editor
description: 4 of the permissions in this role binding were used in the past 90 days.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012
severity: HIGH
์ ์ฑ ํต๊ณ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ค์ ์ค ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
REST
๊ถํ ์ฌ์ฉ์ด ์๋ IAM ์ถ์ฒ์์ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ถ๊ฐ๋ ๊ถํ์ ๊ถ์ฅ์ฌํญ ์์ฒด์ ๋์ด๋์ง ์์ต๋๋ค. ๋์ ๊ถ์ฅ์ฌํญ๊ณผ ์ฐ๊ฒฐ๋ ์ ์ฑ
ํต๊ณ์ ๋์ด๋ฉ๋๋ค. ๋ชจ๋ ML ๊ธฐ๋ฐ ๊ถํ์ ํต๊ณ์ inferredPermissions
ํ๋์ ๋์ด๋ฉ๋๋ค. ์ด ์์์์๋ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก resourcemanager.projects.get
๊ถํ์ด ์ถ์ฒ๋์์ต๋๋ค.
{
"name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
"description": "4 of the permissions in this role binding were used in the past 90 days.",
"content": {
"role": "roles/editor",
"member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
"condition": {
"expression": "",
"title": "",
"description": "",
"location": ""
},
"exercisedPermissions": [
{
"permission": "storage.objects.create"
},
{
"permission": "storage.objects.delete"
},
{
"permission": "storage.objects.get"
},
{
"permission": "storage.objects.list"
}
],
"inferredPermissions": [
{
"permission": "resourcemanager.projects.get"
}
],
"currentTotalPermissionsCount": "5069"
},
"lastRefreshTime": "2020-07-12T07:00:00Z",
"observationPeriod": "7776000s",
"stateInfo": {
"state": "ACTIVE"
},
"category": "SECURITY",
"associatedRecommendations": [
{
"recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
}
],
"targetResources": [
"//cloudresourcemanager.googleapis.com/projects/123456789012"
],
"insightSubtype": "PERMISSIONS_USAGE",
"etag": "\"d3cdec23cc712bd0\"",
"severity": "HIGH"
}
์ ์ฑ ํต๊ณ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ค์ ์ค ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- ์ญํ ๊ถ์ฅ์ฌํญ ์ฌ์ฉ์ ์ํ ๊ถ์ฅ์ฌํญ ์ดํดํ๊ธฐ
- ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ญํ ์ถ์ฒ ๊ฒํ ๋ฐ ์ ์ฉ
- Cloud Storage ๋ฒํท์ ์ญํ ๊ถ์ฅ์ฌํญ ๊ฒํ ๋ฐ ์ ์ฉ
- BigQuery ๋ฐ์ดํฐ ์ธํธ์ ์ญํ ๊ถ์ฅ์ฌํญ ๊ฒํ ๋ฐ ์ ์ฉ
- ์ถ์ฒ์ ์์ธํ ์์๋ณด๊ธฐ
- IAM์ ์ฌ์ ์ ์๋ ์ญํ ๊ณผ ์ปค์คํ ์ญํ ์ดํดํ๊ธฐ