๋ค์ ์น์ ์์๋ Google Cloud Armor๊ฐ ๋ค๋ฅธ Google Cloud ๊ธฐ๋ฅ ๋ฐ ์ ํ๊ณผ ์ํธ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Google Cloud Armor ๋ฐ VPC ๋ฐฉํ๋ฒฝ ๊ท์น
Google Cloud Armor ๋ณด์ ์ ์ฑ ๊ณผ VPC ๋ฐฉํ๋ฒฝ ๊ท์น์ ๊ธฐ๋ฅ์ ์๋ก ๋ค๋ฆ ๋๋ค.
- Google Cloud Armor ๋ณด์ ์ ์ฑ ์ ์์ง ๋ณด์์ ์ ๊ณตํ๊ณ Google ํ๋ฐํธ์๋(GFE)์ ๋ํ ํด๋ผ์ด์ธํธ ํธ๋ํฝ์์ ์๋ํฉ๋๋ค.
- VPC ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ฐฑ์๋์ ํธ๋ํฝ์ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํฉ๋๋ค. ๋ฐ๋ผ์ ๋์์ด ๋ถํ ๋ถ์ฐ๋ ๋ฐฑ์๋ VM์ด๊ณ ์์ค๊ฐ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์์ ์ฌ์ฉํ๋ IP ๋ฒ์์ธ ์ธ๊ทธ๋ ์ค ํ์ฉ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๊ท์น์ ํตํด GFE์ ์ํ ์ ๊ฒ ์์คํ ์ด ๋ฐฑ์๋ VM๊ณผ ํต์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด CIDR ๋ฒ์ 100.1.1.0/24 ๋ฐ CIDR ๋ฒ์ 100.1.2.0/24์ ํธ๋ํฝ๋ง ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ก์ธ์คํ๋๋ก ํ์ฉํ๋ ์๋๋ฆฌ์ค๋ฅผ ๊ฐ์ ํฉ๋๋ค. ๋ชฉํ๋ ํธ๋ํฝ์ด ๋ฐฑ์๋ ๋ถํ ๋ถ์ฐ ์ธ์คํด์ค์ ์ง์ ๋๋ฌํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ๊ด๋ จ ๋ณด์ ์ ์ฑ ์ด ์๋ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ํ๋ก์๋ ์ธ๋ถ ํธ๋ํฝ๋ง ์ธ์คํด์ค์ ๋๋ฌํด์ผ ํฉ๋๋ค.
์์ ์ด๋ฏธ์ง์์๋ ๋ค์๊ณผ ๊ฐ์ด Google Cloud ๋ฐฐํฌ๋ฅผ ๊ตฌ์ฑํ์ฌ ๋ณด์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ์ต๋๋ค.
- ์ธ์คํด์ค ๊ทธ๋ฃน์
us-west1
๋ฆฌ์ ๊ณผeurope-west1
๋ฆฌ์ ์ ์๊ฒ ํ์ฌ ๋ ๊ฐ ๋ง๋ญ๋๋ค. - ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๋ฅผ ์ธ์คํด์ค ๊ทธ๋ฃน์ VM์ ๋ฐฐํฌํฉ๋๋ค.
- ํ๋ฆฌ๋ฏธ์ ๋ฑ๊ธ์์ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
๋ฐฑ์๋๊ฐ ์ด์ ๋จ๊ณ์์ ๋ง๋ ์ธ์คํด์ค ๊ทธ๋ฃน ๋ ๊ฐ์ธ URL ๋งต๊ณผ ๋จ์ผ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ ๋ฌ ๊ท์น์ด
120.1.1.1
์ธ๋ถ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋์ง ํ์ธํฉ๋๋ค. - 100.1.1.0/24 ๋ฐ 100.1.2.0/24์์ ๋ค์ด์ค๋ ํธ๋ํฝ์ ํ์ฉํ๊ณ ๊ทธ ์ธ ๋ชจ๋ ํธ๋ํฝ์ ๊ฑฐ๋ถํ๋ Google Cloud Armor ๋ณด์ ์ ์ฑ ์ ๊ตฌ์ฑํฉ๋๋ค.
- ์ด ์ ์ฑ ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋น์ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด์ ์ ์ฑ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์. ๋ณด๋ค ๋ณต์กํ URL ๋งต์ ์ฌ์ฉํ๋ ์ธ๋ถ HTTP(S) ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ฐฑ์๋ ์๋น์ค ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ํ์์ ๋ฐ๋ผ ๋ณด์ ์ ์ฑ ์ ๋ฐฑ์๋ ์๋น์ค ํ ๊ฐ ์ด์์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
- ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํธ๋ํฝ์ ํ์ฉํ๋๋ก ์ธ๊ทธ๋ ์ค ํ์ฉ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๊ตฌ์ฑํ์ธ์. ์์ธํ ๋ด์ฉ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ฐธ์กฐํ์ธ์.
ํ์ด๋ธ๋ฆฌ๋ ๋ฐฐํฌ๊ฐ ํฌํจ๋ Google Cloud Armor
ํ์ด๋ธ๋ฆฌ๋ ๋ฐฐํฌ์์ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ Google Cloud์ธ๋ถ(์: ๋ค๋ฅธ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ์ธํ๋ผ)์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์ฝํ ์ธ ์์ค์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. Google Cloud Armor๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋ฐฐํฌ๋ฅผ ๋ณดํธํ ์ ์์ต๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ ๋ถํ ๋ถ์ฐ๊ธฐ์๋ ๋ฐฑ์๋ ์๋น์ค ๋ ๊ฐ๊ฐ ์์ต๋๋ค. ํ ์๋น์ค์๋ ์ธ์คํด์ค ๊ทธ๋ฃน์ด ๋ฐฑ์๋๋ก ์์ต๋๋ค. ๋ค๋ฅธ ๋ฐฑ์๋ ์๋น์ค์๋ ์ธํฐ๋ท NEG๊ฐ ๋ฐฑ์๋๋ก ์์ผ๋ฉฐ ์ธํฐ๋ท NEG๋ ํ์ฌ ์ ๊ณต์ ์ฒด์ ๋ฐ์ดํฐ ์ผํฐ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ธํฐ๋ท NEG๋ฅผ ๋ฐฑ์๋๋ก ์ฌ์ฉํ๋ ๋ฐฑ์๋ ์๋น์ค์ Google Cloud Armor ๋ณด์ ์ ์ฑ ์ ์ฐ๊ฒฐํ๋ฉด Google Cloud Armor๋ ํด๋น ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋์์ผ๋ก ํ๋ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ฐฉํ๋ ๋ชจ๋ L7 ์์ฒญ์ ๊ฒ์ฌํฉ๋๋ค.
ํ์ด๋ธ๋ฆฌ๋ ๋ฐฐํฌ์ ์ฌ์ฉ๋๋ Google Cloud Armor ๋ณดํธ ์กฐ์น์๋ ์ธํฐ๋ท NEG์ ์ ์ฉ๋๋ ์ ํ์ฌํญ๊ณผ ๋์ผํ ์ ํ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
Google Kubernetes Engine(GKE) ์ธ๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ๋ Google Cloud Armor
Google Cloud Armor ๋ณด์ ์ ์ฑ ์ ๊ตฌ์ฑํ ํ์๋ Kubernetes ์ธ๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉํ์ฌ GKE๋ก ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
BackendConfig
์ ๋ณด์ ์ ์ฑ
์ด๋ฆ์ ์ถ๊ฐํ์ฌ BackendConfig
๋ฆฌ์์ค๋ก ๋ณด์ ์ ์ฑ
์ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ๋ค์ BackendConfig
๋งค๋ํ์คํธ๋ example-security-policy
๋ผ๋ ๋ณด์ ์ ์ฑ
์ ์ง์ ํฉ๋๋ค.
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
namespace: cloud-armor-how-to
name: my-backendconfig
spec:
securityPolicy:
name: "example-security-policy"
์ธ๊ทธ๋ ์ค ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ๊ทธ๋ ์ค ๊ธฐ๋ฅ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
Cloud CDN์ด ํฌํจ๋ Google Cloud Armor
CDN ์๋ณธ ์๋ฒ๋ฅผ ๋ณดํธํ๋ ค๋ฉด Cloud CDN๊ณผ ํจ๊ป Google Cloud Armor๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. Google Cloud Armor๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ CDN ์๋ณธ ์๋ฒ๋ฅผ ๋ณดํธํ๊ณ OWASP ์์ 10๊ฐ ์ํ์ ์ํํ๊ณ ๋ ์ด์ด 7 ํํฐ๋ง ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค. Google Cloud Armor๊ฐ Cloud CDN์์ ์๋ํ๋ ๋ฐฉ์์ ์ํฅ์ ์ฃผ๋ ๋ณด์ ์ ์ฑ ์๋ ์์ง ๋ณด์ ์ ์ฑ ๊ณผ ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ์ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
์์ง ๋ณด์ ์ ์ฑ
Cloud CDN์ด ์ฌ์ฉ ์ค์ ๋ ๋ฐฑ์๋ ์๋น์ค ๋ฐ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋ค์ ์๋ Cloud Storage ๋ฐฑ์๋ ๋ฒํท์ ์์ง ๋ณด์ ์ ์ฑ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ง ๋ณด์ ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ์ฝํ ์ธ ๊ฐ ์บ์์์ ์ ๊ณต๋๊ธฐ ์ ์ ์์ฒญ์ ํํฐ๋งํฉ๋๋ค.
๋ฐฑ์๋ ๋ณด์ ์ ์ฑ
Cloud CDN์ด ์ฌ์ฉ ์ค์ ๋ ๋ฐฑ์๋ ์๋น์ค์ Google Cloud Armor ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ์ด ์ ์ฉ๋๋ฉด ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ๋ ์์ฒญ์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์์ฒญ์๋ ๋์ ์ฝํ ์ธ ์์ฒญ๊ณผ ์บ์ ๋ถ์ ์ค, ์ฆ Cloud CDN ์บ์๋ฅผ ๋๋ฝํ๊ฑฐ๋ ์ฐํํ๋ ์์ฒญ์ด ํฌํจ๋ฉ๋๋ค.
์์ง ๋ณด์ ์ ์ฑ ๊ณผ ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ์ด ๋์ผํ ๋ฐฑ์๋ ์๋น์ค์ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์์ง ๋ณด์ ์ ์ฑ ์ ํต๊ณผํ ์บ์ ๋ถ์ ์ค ์์ฒญ์ ๋ํด์๋ง ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ์ด ์ ์ฉ๋ฉ๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ์์ง ๋ณด์ ์ ์ฑ ์์ ์์ฒญ์ด ํ์ฉ๋ ํ ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ์ด Cloud CDN ์๋ณธ์์ ์๋ํ๋ ๋ฐฉ์๋ง ๋ณด์ฌ์ค๋๋ค.
Cloud CDN์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud CDN ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud Run, App Engine ๋๋ Cloud Run ํจ์๋ฅผ ์ฌ์ฉํ๋ Google Cloud Armor
Google Cloud Armor ๋ณด์ ์ ์ฑ ์ Cloud Run, App Engine ๋๋ Cloud Run ํจ์ ์๋น์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ Google Cloud Armor๋ฅผ ์๋ฒ๋ฆฌ์ค NEG, Cloud Run ๋๋ Cloud Run ํจ์์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค ์๋ํฌ์ธํธ์ ๋ํ ๋ชจ๋ ์ก์ธ์ค๊ฐ Google Cloud Armor ๋ณด์ ์ ์ฑ ์ ํตํด ํํฐ๋ง๋๋๋ก ํน์ํ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ URL์ด ์๋ ์ฌ์ฉ์๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ฐํํ์ฌ ์๋น์ค URL๋ก ์ง์ ์ด๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด Google Cloud Armor ๋ณด์ ์ ์ฑ ์ ์ฐํํ๊ฒ ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด Google Cloud ์์ Cloud Run ์๋น์ค๋ Cloud Run ํจ์(2์ธ๋)์ ์๋์ผ๋ก ํ ๋นํ๋ ๊ธฐ๋ณธ URL์ ์ค์งํฉ๋๋ค. App Engine ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๋ ค๋ฉด ์ธ๊ทธ๋ ์ค ์ปจํธ๋กค์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์ธ๊ทธ๋ ์ค ์ปจํธ๋กค์ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ์ ์ด๊ฐ ๋ชจ๋ ์์ ํธ๋ํฝ์ ์ ์ฉ๋๋์ง ํ์ธํ๋ ค๋ฉด Cloud Run ํจ์ ๋๋ Cloud Run์ ๊ตฌ์ฑํ ๋ internal-and-gclb
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ ๋๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์์ ๋
ธ์ถ๋๋ ์ธ๋ถ IP ์ฃผ์๋ก ์ ์ก๋๋ ํธ๋ํฝ๊ณผ ๋ด๋ถ ํธ๋ํฝ๋ง ํ์ฉ๋ฉ๋๋ค. ๋น๊ณต๊ฐ ๋คํธ์ํฌ ์ธ๋ถ์์ ์ด๋ฌํ ๊ธฐ๋ณธ URL๋ก ์ ์ก๋๋ ํธ๋ํฝ์ด ์ฐจ๋จ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์๊ฐ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ์ค์ ๋ ์ก์ธ์ค ์ ์ด(์: Google Cloud Armor ๋ณด์ ์ ์ฑ
)๋ฅผ ์ฐํํ ์ ์์ต๋๋ค.
์๋ฒ๋ฆฌ์ค NEG์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ๊ฐ์ ๋ฐ ์๋ฒ๋ฆฌ์ค NEG ์ค์ ์ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
- ๋ณด์ ์ ์ฑ , ๊ท์น, ํํ์ ๊ตฌ์ฑ
- Cloud Armor Enterprise ๋ฑ๊ธ์ ๊ธฐ๋ฅ ์์๋ณด๊ธฐ
- ๋ฌธ์ ํด๊ฒฐ