์ด ๋ฌธ์๋ ์กฐ๊ฑด ํํ์์์ ์ง์๋๋ ์์ฑ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ง์๋๋ ์กฐ๊ฑด ์์ฑ
๋ค์ ์น์ ์๋ ์ง์๋๋ ์์ฑ์ ์์ฝํ๊ณ ๊ฐ ์์ฑ์ ์ธ์ํ๋Google Cloud ์๋น์ค๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๋ฆฌ์์ค ์์ฑ
๋ค์ ์์ฑ์ ์์ฒญ์ ์ฃผ์ฒด์ธ ๋ฆฌ์์ค์ ๊ด๋ จ์ด ์์ต๋๋ค.
์์ฑ | ์ฌ์ฉ ์์ฝ | ์ง์๋๋ Google Cloud ์๋น์ค |
---|---|---|
๋ฆฌ์์ค ์๋น์ค ์์ฑ |
์ฌ์ฉ ์ค์ธ Google Cloud ์๋น์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด ์์ฑ์ ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
๋ฆฌ์์ค ์ ํ ์์ฑ |
๋ฆฌ์์ค ์ ํ์ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด ์์ฑ์ ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
๋ฆฌ์์ค ์ด๋ฆ ์์ฑ |
๋ฆฌ์์ค ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด ์์ฑ์ ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
๋ฆฌ์์ค ํ๊ทธ |
๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ ํ๊ทธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด ์์ฑ์ ๋ค์ ์์น์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
|
๋ชจ๋ Google Cloud ์๋น์ค(์์๋ ์กฐ๊ฑด ์ง์ ์ฐธ์กฐ) |
๋ฆฌ์์ค ์์ฑ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ๋ฆฌ์์ค ์์ฑ์ ์ฐธ์กฐํ์ธ์.
์ฃผ ๊ตฌ์ฑ์ ์์ฑ
๋ค์ ์์ฑ์ ์์ฒญ์ ์ํํ๋ ์ฃผ ๊ตฌ์ฑ์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์์ฑ | ์ฌ์ฉ ์์ฝ | ์ง์๋๋ ์ฃผ ๊ตฌ์ฑ์ ์ ํ |
---|---|---|
์์ฒญ์ ์ฃผ ๊ตฌ์ฑ์ ์ ํ์ ๋ฐ๋ผ ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค. ์ด ์์ฑ์ ์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ ์ ์ ์ฑ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
|
์์ฒญ์ ์ฃผ ๊ตฌ์ฑ์ ID์ ๋ฐ๋ผ ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค. ์ด ์์ฑ์ ์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ ์ ์ ์ฑ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
์ฃผ ๊ตฌ์ฑ์ ์์ฑ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ์ฃผ ๊ตฌ์ฑ์ ์์ฑ์ ์ฐธ์กฐํ์ธ์.
์์ฒญ ์์ฑ
๋ค์ ์์ฑ์ ์์ฒญ์ ์ธ๋ถ์ ๋ณด์ ๊ด๋ จ์ด ์์ต๋๋ค.
์์ฑ | ์ฌ์ฉ ์์ฝ | ์ง์๋๋ Google Cloud ์๋น์ค |
---|---|---|
ํน์ ์ก์ธ์ค ์์ค์ ๋ฐ๋ผ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ก์ธ์ค ์์ค์ ์๋ณธ IP ์ฃผ์, ๊ธฐ๊ธฐ ์์ฑ, ์๊ฐ ๋ฑ ์์ฒญ ๋ฐ ์์ฒญ์์ ๋ํ ์์ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ๋ ์์ฑ์
๋๋ค. ์๋ฅผ ๋ค์ด ์ด ์์ฑ์ ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
IAP(Identity-Aware Proxy) |
|
ํน์ Google CloudAPI ๋๋ ์๋น์ค์์ ์ ๊ณต๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด ์์ฑ์ ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
|
Google Cloud ๋ฆฌ์์ค์ ๋ง๋ฃ, ์์ฝ, ๊ธฐ๊ฐ ์ ํ ์ก์ธ์ค๋ฅผ ์ค์ ํฉ๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ด๋ฌํ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
๋ชจ๋ Google Cloud ์๋น์ค(์์๋ ์กฐ๊ฑด ์ง์ ์ฐธ์กฐ) |
|
์์ฒญ์ ๋์ IP ์ฃผ์ ๋๋ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด Compute Engine ๊ฐ์ ๋จธ์ (VM) ์ธ์คํด์ค๋ IAP(Identity-Aware Proxy) TCP ์ ๋ฌ์ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ด๋ฌํ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
IAP(Identity-Aware Proxy) |
|
์ฃผ ๊ตฌ์ฑ์์ด ๋ง๋ค ์ ์๋ ์ ๋ฌ ๊ท์น์ ์ ํ์ ์ง์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ ๊ตฌ์ฑ์์ด ์ธํฐ๋ท์์ ๋ฐ์ํ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์ธ๋ถ Google Cloud ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์๋ Google Cloud ๋คํธ์ํฌ ๋ด๋ถ์์ ๋ฐ์ํ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋ด๋ถ Google Cloud ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ์ ๋ฌ ๊ท์น์ ๋ง๋ค ์ ์๋๋ก ํ์ฉํ ์ ์์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ด๋ฌํ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
|
์์ฒญ์ URL ๊ฒฝ๋ก ๋๋ ํธ์คํธ์ ๋ฐ๋ผ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ด๋ฌํ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|
์์ฒญ ์์ฑ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ์์ฒญ ์์ฑ์ ์ฐธ์กฐํ์ธ์.
์์๋ ์กฐ๊ฑด ์ง์
์ผ๋ถ Google Cloud ๋ฆฌ์์ค ์ ํ์ ํ์ฉ ์ ์ฑ ์ ์กฐ๊ฑด์ ํ์ฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์กฐ์ง, ํด๋ ๋๋ ํ๋ก์ ํธ ์์ค์์ ์กฐ๊ฑด๋ถ ์ญํ ๋ฐ์ธ๋ฉ์ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ฆฌ์์ค๋ ๋ฆฌ์์ค ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํตํด ์ด๋ฌํ ์ญํ ๋ฐ์ธ๋ฉ์ ์์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์กฐ๊ฑด๋ถ ์ญํ ๋ฐ์ธ๋ฉ์ ํ์ฉํ๋ ๋ฆฌ์์ค ์ ํ์ ํ์ธํ์ธ์.
์กฐ์ง, ํด๋ ๋๋ ํ๋ก์ ํธ ์์ค์์ ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ์์ฑ์ ํน์ ๋ฆฌ์์ค ์ ํ์์๋ง ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ์ ์ํ์ธ์. ์กฐ๊ฑด์ ์ผ๋ถ๋ฅผ ์ฌ์ฉํ ์ ์๋ ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ์ผ๋ถ๊ฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ผ๋ก ํด์๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด resource.name.endsWith == devResource
์กฐ๊ฑด์ IAM ๋ฆฌ์์ค๊ฐ ๋ฆฌ์์ค ์ด๋ฆ์ ์ ๊ณตํ์ง ์์ผ๋ฏ๋ก IAM ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ด ํ์ด์ง์ ์ค๋ช
๋ ๋ฆฌ์์ค ์ ํ ๋ฐ ๋ฆฌ์์ค ์๋น์ค ์์ฑ์ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด ๋ฒ์๋ฅผ ์ ํํ์ธ์. ์๋ฅผ ๋ค์ด ๋ค์ ์กฐ๊ฑด์ Compute Engine ์ธ์คํด์ค ์ด์ธ์ ๋ชจ๋ ๋ฆฌ์์ค ์ ํ์ ๋ํด true
๋ก ํ๊ฐ๋ฉ๋๋ค. ๋ฐ๋๋ก Compute Engine ์ธ์คํด์ค์ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ฆฌ์์ค ์ด๋ฆ์ ํ์ธํฉ๋๋ค.
resource.type != 'compute.googleapis.com/Disk' ||
resource.name.endsWith('devResource')
๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ ํ๊ทธ๋ฅผ ํ์ธํ๋ ์กฐ๊ฑด์ ๋ฒ์๋ฅผ ์ ํํ ํ์๋ ์์ต๋๋ค. ํ๊ทธ ํค ๋ฐ ๊ฐ์ ํ์ธํ ๋ ๋ฆฌ์์ค ์ ํ ๋ฐ ๋ฆฌ์์ค ์๋น์ค๋ฅผ ํฌํจํ ๋ค๋ฅธ ์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฆฌ์์ค ์์ฑ
๋ฆฌ์์ค ์๋น์ค, ๋ฆฌ์์ค ์ ํ, ๋ฆฌ์์ค ์ด๋ฆ ์์ฑ์ ์ผ๋ฐ์ ์ผ๋ก ์ญํ ๋ฐ์ธ๋ฉ์์ ์ ๊ณตํ๋ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ์ ๋ฒ์๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ญํ ์ ์ฌ๋ฌ ๋ฆฌ์์ค ํน์ ์์ฑ์ ์ ์ฉ๋๋ ๊ถํ์ด ํฌํจ๋ ๊ฒฝ์ฐ, ๋ฆฌ์์ค ๊ธฐ๋ฐ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ํน์ ์ ํ ๋๋ ํน์ ์๋น์ค์ ๋ํ ์ญํ ๊ถํ์ ํ์ ์งํฉ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
resource.service ์์ฑ
resource.service
์์ฑ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ ์ค์ธGoogle Cloud ์๋น์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด cloudresourcemanager.googleapis.com
์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์์ค์ ๋ํ ์ฌ์ฉ์ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์ง์๋๋ ๊ฐ ๋ชฉ๋ก์ ๋ฆฌ์์ค ์๋น์ค ๊ฐ์ ์ฐธ์กฐํ์ธ์.
resource.service
์์ฑ์ ํ์ฉ ์ ์ฑ
์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฑ ๋ณ์ | resource.service |
---|---|
์์ฑ ์ ํ |
์ง์๋๋ ๊ฐ ๋ชฉ๋ก์ ๋ฆฌ์์ค ์๋น์ค ๊ฐ์ ์ฐธ์กฐํ์ธ์. |
์ง์๋๋ ์ฐ์ฐ์ | , |
์ธ๋ถ์ ๋ณด |
์กฐ๊ฑด์์ resource.type ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์ฑ๊ณผ ๊ฐ์( ) ๋๋ ๊ฐ์ง ์์( )์ ํ์ธํฉ๋๋ค.
์ ๋์ฌ ๋๋ ์ ๋ฏธ์ฌ ํ์ธ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋น๊ต๋ก ์ธํด ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
|
์ |
Compute Engine ๋ฆฌ์์ค์ ๊ฒฝ์ฐ resource.service == "compute.googleapis.com" |
์ง์๋๋ ์๋น์ค |
|
resource.type ์์ฑ
resource.type
์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค ์ ํ์ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด storage.googleapis.com/Object
์ ํ์ ๋ฆฌ์์ค์ ๋ํ ์ฌ์ฉ์ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์ง์๋๋ ๊ฐ ๋ชฉ๋ก์ ๋ฆฌ์์ค ์ ํ ๊ฐ์ ์ฐธ์กฐํ์ธ์.
์กฐ๊ฑด์์ resource.name
์์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ resource.type
์์ฑ์ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ด ์ ์ฉ๋๋ ๋ฆฌ์์ค ์ ํ์ ์ ์ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ resource.name
์์ฑ์ ์ฐธ์กฐํ์ธ์.
resource.type
์์ฑ์ ํ์ฉ ์ ์ฑ
์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฑ ๋ณ์ | resource.type |
||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
์์ฑ ์ ํ |
์ง์๋๋ ๊ฐ ๋ชฉ๋ก์ ๋ฆฌ์์ค ์ ํ ๊ฐ์ ์ฐธ์กฐํ์ธ์. |
||||||||||||||||||||||||||||||||||||||||||||||||
์ง์๋๋ ์ฐ์ฐ์ | , |
||||||||||||||||||||||||||||||||||||||||||||||||
์ธ๋ถ์ ๋ณด |
์กฐ๊ฑด์์ resource.type ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์ฑ๊ณผ ๊ฐ์( ) ๋๋ ๊ฐ์ง ์์( )์ ํ์ธํฉ๋๋ค. ์ ๋์ฌ ๋๋ ์ ๋ฏธ์ฌ ํ์ธ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋น๊ต๋ก ์ธํด ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
|
||||||||||||||||||||||||||||||||||||||||||||||||
์์ |
๋ฆฌ์์ค๊ฐ Compute Engine ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ resource.type != "compute.googleapis.com/Image"
๋ฆฌ์์ค๊ฐ Compute Engine ์ด๋ฏธ์ง ๋๋ ์๊ตฌ ๋์คํฌ์ธ ๊ฒฝ์ฐ์๋ง (resource.type == "compute.googleapis.com/Image" || resource.type == "compute.googleapis.com/Disk") |
||||||||||||||||||||||||||||||||||||||||||||||||
์ง์๋๋ ๋ฆฌ์์ค ์ ํ |
1 Cloud Key Management Service๋ ์ด ๋ฆฌ์์ค ์ ํ์ ํค๋ง ๋ฆฌ์์ค์ ์์ ์์๋ก ์ฌ์ฉํฉ๋๋ค. |
resource.name ์์ฑ
resource.name
์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค ์ด๋ฆ์ ์ ์ฒด ๋๋ ์ผ๋ถ๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ๋ฆฌ์์ค ์ด๋ฆ ํ์ ๋ชฉ๋ก์ ๋ฆฌ์์ค ์ด๋ฆ ํ์์ ์ฐธ์กฐํ์ธ์.
resource.name
์์ฑ์ ์ด ์น์
์ ํ์ ๋์ด๋ ํน์ ๋ฆฌ์์ค ์ ํ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์กฐ๊ฑด์ ์ ์ฉ ๋ฒ์๋ฅผ ์๋ํ ๋ฆฌ์์ค ์ ํ์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ญํ ์ resource.name
์์ฑ์ ์ ๊ณตํ์ง ์๋ ๋ฆฌ์์ค ์ ํ์ ๋ํ ๊ถํ์ด ํฌํจ๋ ๊ฒฝ์ฐ resource.name
์ ํ์ธํ๋ ์กฐ๊ฑด์ ์ผ๋ถ๋ก ์ด๋ฌํ ๊ถํ์ด ์ ํ๋์ง ์๋๋ก ํ์ธํด์ผ ํฉ๋๋ค.
๋ค์ ์์๋ ์ด ๋์์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด ์์์์ ์กฐ๊ฑด์ Cloud Storage ๋ฒํท ๋ฐ ๊ฐ์ฒด๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฆฌ์์ค ์ ํ์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํฉ๋๋ค. ๋ฐ๋ฉด, ๋ฒํท ๋ฐ ๊ฐ์ฒด์ ๊ฒฝ์ฐ ์กฐ๊ฑด์ ๋ฒํท example-bucket
๊ณผ ์ฌ๊ธฐ์ ํฌํจ๋ ๊ฐ์ฒด์ ๋ํ ์ก์ธ์ค๋ง ํ์ฉํฉ๋๋ค.
(resource.type != 'storage.googleapis.com/Bucket' &&
resource.type != 'storage.googleapis.com/Object') ||
resource.name.startsWith('projects/_/buckets/example-bucket')
์กฐ๊ฑด์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์์๋ ๋ฆฌ์์ค๊ฐ ๋ฒํท ๋๋ ๊ฐ์ฒด๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๋ฆฌ์์ค์ ์ ํ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ ๋ฆฌ์์ค ์ด๋ฆ์ ๊ด๊ณ์์ด ์ ์ฒด ์กฐ๊ฑด์ด true
๋ก ํ๊ฐ๋ฉ๋๋ค.
๋ํ ์กฐ๊ฑด์ resource.service
์์ฑ์ด ์๋ resource.type
์์ฑ์ ํ์ธํฉ๋๋ค. resource.type
์์ฑ์ ํ์ธํ๋ฉด ๋ช ๊ฐ์ง ์ด์ ์ด ์์ต๋๋ค.
resource.name
๊ฒ์ฌ๋ฅผ ์ ํฉํ ๋ฆฌ์์ค ์ธํธ๋ก ์ ํํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ์ด๋ฆ์ผ๋ก Compute Engine ์ธ์คํด์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ค๋ฉด Compute Engine ์ธ์คํด์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฆฌ์์ค ์ ํ์ ์ ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.- ์ดํ ์๋น์ค๊ฐ ์ ๋ฆฌ์์ค ์ ํ์ ์ถ๊ฐํ๋ฉด ์กฐ๊ฑด ๋ฒ์๊ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ์กฐ๊ฑด์์๋ ์ฐ์ฐ์์ ์ผ์น ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋์
startsWith()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ์ด๋ฆ์ ํ๊ฐํฉ๋๋ค. ์กฐ๊ฑด์์ ๋ฆฌ์์ค ์ด๋ฆ ์์์ ๋ณด๊ธฐ ๋๋ฌธ์ ๋ฒํท๊ณผ ํด๋น ๋ฒํท์ ์๋ ๊ฐ์ฒด์ ์ผ์นํฉ๋๋ค. ์ผ์น๊ฐ ํ์ธ๋๋ฉด ๋ฒํท๊ณผ๋ง ์ผ์นํฉ๋๋ค.
*
์ ๊ฐ์ ์์ผ๋ ์นด๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฆฌ์์ค ์ด๋ฆ์ ์ผ์น์ํฌ ์ ์์ต๋๋ค. ๋ค์ ๋์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
extract()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ์ด๋ฆ์์ ๊ฐ์ ์ถ์ถํฉ๋๋ค. ์๋ฅผ ๋ค์ด Compute Engine VM ์ธ์คํด์ค์ ๋ฆฌ์์ค ์ด๋ฆ์์ ํ๋ก์ ํธ ID๋ฅผ ์ถ์ถํ ํ ์ด ํ๋ก์ ํธ ID๋ฅผ ์ฐธ์กฐํ๋ ์กฐ๊ฑด ํํ์์ ์์ฑํ ์ ์์ต๋๋ค.์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง์ ์์ฑ์์ ๊ฐ ์ถ์ถ์ ์ฐธ์กฐํ์ธ์.
startsWith()
๋๋endsWith()
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ์ด๋ฆ์ ์์์ด๋ ๋์ ํ๊ฐํ๋ ์กฐ๊ฑด์ ์์ฑํฉ๋๋ค.
resource.name
์์ฑ์ ํ์ฉ ์ ์ฑ
์ญํ ๋ฐ์ธ๋ฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฑ ๋ณ์ | resource.name |
||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
์์ฑ ์ ํ |
๊ฐ ๋ฆฌ์์ค ์ ํ์ ๋ฆฌ์์ค ์ด๋ฆ์ ํน์ ํ์์ ์ฌ์ฉํฉ๋๋ค. ํ์ ๋ชฉ๋ก์ ๋ฆฌ์์ค ์ด๋ฆ ํ์์ ์ฐธ์กฐํ์ธ์. |
||||||||||||||||||||||||||||||||||||||||||||
์ง์๋๋ ํจ์ ๋ฐ ์ฐ์ฐ์ |
startsWith(), endsWith(), extract(),
, |
||||||||||||||||||||||||||||||||||||||||||||
์ธ๋ถ์ ๋ณด |
|
||||||||||||||||||||||||||||||||||||||||||||
์์ |
๋ฆฌ์์ค ์ด๋ฆ์ด resource.name != "projects/_/buckets/secret-bucket-123"
๋ฆฌ์์ค ์ด๋ฆ์ด Compute Engine VM ์ธ์คํด์ค์์ ์ฌ์ฉํ๋ ํ์์ผ๋ก ์ง์ ๋ ์ ๋์ฌ๋ก ์์ํ๋ ๊ฒฝ์ฐ resource.name.startsWith("projects/project-123/zones/us-east1-b/instances/prod-")
๋ฆฌ์์ค ์ด๋ฆ์ด Cloud Storage ๋ฒํท์์ ์ฌ์ฉํ๋ ํ์์ผ๋ก ์ง์ ๋ ์ ๋์ฌ๋ก ์์ํ๋ฉด resource.name.startsWith("projects/_/buckets/my_bucket/objects/test-object-")
๋ฆฌ์์ค ์ด๋ฆ์ด ์ง์ ๋ ์ ๋ฏธ์ฌ๋ก ๋๋๋ ๊ฒฝ์ฐ(์: Cloud Storage ๊ฐ์ฒด์ ํ์ผ ํ์ฅ์) resource.name.endsWith(".jpg") ํ๋ก์ ํธ ์ด๋ฆ ๋๋ ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ฐํํฉ๋๋ค. resource.name.extract("projects/{project}/") |
||||||||||||||||||||||||||||||||||||||||||||
์ง์๋๋ ๋ฆฌ์์ค ์ ํ |
|
๋ฆฌ์์ค ํ๊ทธ
๋ฆฌ์์ค ํ๊ทธ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋๊ฑฐ๋ ์์๋๋ ํ๊ทธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๊ทธ env: prod
๊ฐ ์ฐ๊ฒฐ๋ ๋ฆฌ์์ค์ ๋ํด์๋ง ์ญํ ์ ๋ถ์ฌํ๋ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ก์ธ์ค ์ ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๊ทธ ๋ฐ ์ก์ธ์ค ์ ์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฐ ํ๊ทธ๋ ํค์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ ํค ๋ฐ ๊ฐ์๋ ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ ํ์ ์๋ณ์๊ฐ ์์ต๋๋ค.
-
์๊ตฌ ID: ์ ์ญ์ ์ผ๋ก ๊ณ ์ ํ๋ฉฐ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๊ทธ ํค๋ ์๊ตฌ ID
tagKeys/123456789012
, ํ๊ทธ ๊ฐ์ ์๊ตฌ IDtagValues/567890123456
๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. -
๋๋ค์: ๊ฐ ํค์ ๋๋ค์์ ํค๊ฐ ์ ์๋ ํ๋ก์ ํธ๋ ์กฐ์ง ๋ด์์ ๊ณ ์ ํด์ผ ํ๋ฉฐ ๊ฐ ๊ฐ์ ๋๋ค์์ ์ฐ๊ฒฐ๋ ํค์ ๊ณ ์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๊ทธ ํค์๋ ๋๋ค์
env
๊ฐ, ํ๊ทธ ๊ฐ์๋ ๋๋ค์prod
๊ฐ ์์ ์ ์์ต๋๋ค. -
๋ค์์คํ์ด์คํ๋ ์ด๋ฆ: ์กฐ์ง์ ์ซ์ ID๋ ํ๋ก์ ํธ ID๋ฅผ ํ๊ทธ ํค์ ๋๋ค์์ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์กฐ์ง์ ๋ง๋ ํ๊ทธ ํค์๋ ๋ค์์คํ์ด์คํ๋ ์ด๋ฆ
123456789012/env
๊ฐ ์์ ์ ์์ต๋๋ค. ์กฐ์ง ID๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์กฐ์ง ๋ฆฌ์์ค ID ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. ํ๋ก์ ํธ์ ๋ง๋ ํ๊ทธ ํค์๋ ๋ค์์คํ์ด์คํ๋ ์ด๋ฆmyproject/env
๊ฐ ์์ ์ ์์ต๋๋ค. ํ๋ก์ ํธ ID๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ํ๋ก์ ํธ ์๋ณ์ ์ฐธ์กฐํ์ธ์.
์กฐ๊ฑด์์ ์ฌ์ฉํ ์๋ณ์ ์ ํ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ํ๊ทธ ์ ์ ๋ฐ ์๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ๊ทธ ๊ธฐ๋ฐ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์กฐ๊ฑด๋ถ๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์์ฒด ํ๊ทธ๊ฐ ์๋ ๋ฆฌ์์ค์ ๋ค๋ฅธ ๋ฆฌ์์ค์์ ํ๊ทธ๋ฅผ ์์ํ๋ ๋ฆฌ์์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ฆฌ์์ค ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํตํด ํ๊ทธ๊ฐ ์์๋๋ ๋ฐฉ์์ ๊ดํ ์์ธํ ๋ด์ฉ์ ํ๊ทธ ์์์ ์ฐธ๊ณ ํ์ธ์.
ํ๊ทธ ๊ธฐ๋ฐ ์กฐ๊ฑด์ ๋ค์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ
- ๊ฑฐ๋ถ ์ ์ฑ ๊ฑฐ๋ถ ๊ท์น
๋ค์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค.
ํจ์ | ์ค๋ช |
---|---|
resource.hasTagKey(
bool
|
์์ฒญ์ ๋ฆฌ์์ค์ ์ง์ ๋ ํค๊ฐ ์๋ ํ๊ทธ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ํ๊ทธ ํค๋ ๋ค์์คํ์ด์คํ๋ ์ด๋ฆ์ผ๋ก ์กฐํ๋ฉ๋๋ค. ์๊ตฌ ID๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ ํค๋ฅผ ํ์ธํ๋ ค๋ฉด
|
resource.hasTagKeyId(
bool
|
์์ฒญ์ ๋ฆฌ์์ค์ ์ง์ ๋ ํค๊ฐ ์๋ ํ๊ทธ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ํ๊ทธ ํค๋ ์๊ตฌ ID๋ก ์กฐํ๋ฉ๋๋ค.
๋ค์์คํ์ด์คํ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ํ๊ทธ ํค๋ฅผ ํ์ธํ๋ ค๋ฉด
|
resource.matchTag(
bool
|
์์ฒญ์ ๋ฆฌ์์ค์ ์ง์ ๋ ํค ๋ฐ ๊ฐ์ด ์๋ ํ๊ทธ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ํค๋ ๋ค์์คํ์ด์คํ๋ ์ด๋ฆ์ผ๋ก ์กฐํ๋๊ณ ๊ฐ์ ๋๋ค์์ผ๋ก ์กฐํ๋ฉ๋๋ค. ์๊ตฌ ID๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ ํค ๋ฐ ๊ฐ์ ํ์ธํ๋ ค๋ฉด
|
resource.matchTagId(
bool
|
์์ฒญ์ ๋ฆฌ์์ค์ ์ง์ ๋ ํค ๋ฐ ๊ฐ์ด ์๋ ํ๊ทธ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ํค์ ๊ฐ์ ์๊ตฌ ID๋ก ์กฐํ๋ฉ๋๋ค. ๋ค์์คํ์ด์คํ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ํ๊ทธ ํค๋ฅผ ํ์ธํ๊ณ ๋๋ค์์ ์ฌ์ฉํ์ฌ ๊ฐ์ ํ์ธํ๋ ค๋ฉด
|
์ฃผ ๊ตฌ์ฑ์ ์์ฑ
์ฃผ ๊ตฌ์ฑ์ ์์ฑ์ ์ฌ์ฉํ๋ฉด ์์ฒญ์ ์คํํ ์ฃผ ๊ตฌ์ฑ์์ ๊ธฐ๋ฐ์ผ๋ก ์กฐ๊ฑด์ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ฑ์ ์ฌ์ฉํ๋ฉด ์ ์ฑ ์ด ์ํ๋๋ ์ฃผ ๊ตฌ์ฑ์์ ๋ฏธ์ธ ์กฐ์ ํ ์ ์์ต๋๋ค.
์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ ์ ์ ์ฑ ๋ฐ์ธ๋ฉ์ ์ฃผ ๊ตฌ์ฑ์ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
principal.type
์์ฑ
principal.type
์์ฑ์ ์ฌ์ฉํ๋ฉด ์์ฒญ์ ์คํํ๋ ์ฃผ ๊ตฌ์ฑ์์ ์ ํ์ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ
์ ์ ์ฑ
๋ฐ์ธ๋ฉ์ ์กฐ๊ฑด์ ์ถ๊ฐํ์ฌ ์ ์ฑ
์ด ์๋น์ค ๊ณ์ ์๋ง ์ํ๋๋๋ก ํ ์ ์์ต๋๋ค.
์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ ์ ์ ์ฑ ๋ฐ์ธ๋ฉ์ ์ฃผ ๊ตฌ์ฑ์ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฑ ๋ณ์ | principal.type |
---|---|
์์ฑ ์ ํ |
|
์ง์๋๋ ์ฐ์ฐ์ | , , in |
์ง์๋๋ ์ฃผ ๊ตฌ์ฑ์ ์ ํ |
|
์์ |
์์ฒญ์ ์ฃผ ๊ตฌ์ฑ์์ด ์๋น์ค ๊ณ์ ์ธ ๊ฒฝ์ฐ principal.type == "iam.googleapis.com/ServiceAccount"
์์ฒญ์ ์ฃผ ๊ตฌ์ฑ์์ด Google Workspace ID ๋๋ ์ง์ ID ํ ID์ธ ๊ฒฝ์ฐ principal.type in ["iam.googleapis.com/WorkspaceIdentity", "iam.googleapis.com/WorkforcePoolIdentity"] |
principal.subject
์์ฑ
principal.subject
์์ฑ์ ์ฌ์ฉํ๋ฉด ์์ฒญ์ ์คํํ๋ ์ฃผ ๊ตฌ์ฑ์์ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฉ์ผ ์ฃผ์๊ฐ @example.com
์ผ๋ก ๋๋๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ๋ง ์ ์ฑ
์ด ์ํ๋๋๋ก ์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ
์ ์ ์ฑ
๋ฐ์ธ๋ฉ์ ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์กฐ๊ฑด์ principal.subject
์์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ principal.type
์์ฑ๋ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ด ์ ์ฉ๋๋ ์ฃผ ๊ตฌ์ฑ์ ์ ํ์ ์ ์ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฃผ ๊ตฌ์ฑ์ ์๋ณ์๊ฐ ์ฃผ ๊ตฌ์ฑ์ ์ ํ ๊ฐ์ ๋ฐ๋์ ๊ณ ์ ํ์ง๋ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์๋ฅผ ๋ค์ด ์๋ณ์ example-user@example.com
์ ์ง์ ID ํ์ Google ๊ณ์ ๋๋ ์ฌ์ฉ์๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
principal.subject
์์ฑ ์ธ์ principal.type
์์ฑ๋ ์ฌ์ฉํ๋ฉด ์กฐ๊ฑด์ด ์ฃผ ๊ตฌ์ฑ์์ ์๋ํ ์ ํ๊ณผ๋ง ๋งค์นญํ๋๋ก ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ํํ์์ ์ด๋ฉ์ผ ์ฃผ์๊ฐ @example.com
์ผ๋ก ๋๋๋ Google ๊ณ์ ๊ณผ ์ผ์นํฉ๋๋ค.
principal.type == 'iam.googleapis.com/WorkspaceIdentity' &&
principal.subject.endsWith('@example.com')
์ฃผ ๊ตฌ์ฑ์ ์ก์ธ์ค ๊ฒฝ๊ณ ์ ์ฑ ์ ์ ์ฑ ๋ฐ์ธ๋ฉ์ ์ฃผ ๊ตฌ์ฑ์ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฑ ๋ณ์ | principal.subject |
---|---|
์์ฑ ์ ํ |
|
์ง์๋๋ ์ฐ์ฐ์ |
|
์ง์๋๋ ์ฃผ ๊ตฌ์ฑ์ ์ฃผ์ฒด |
|
์ |
์์ฒญ์ ์ฃผ ๊ตฌ์ฑ์์ด principal.subject.endsWith("@example.com")
์์ฒญ์ ์ฃผ ๊ตฌ์ฑ์์ด principal.subject == "example-service-account@example-project.iam.gserviceaccount.com" |
์์ฒญ ์์ฑ
์์ฒญ ์์ฑ์ ์ฌ์ฉํ๋ฉด ์ก์ธ์ค ์์ค, ๋ ์ง/์๊ฐ, ๋์ IP ์ฃผ์ ๋ฐ ํฌํธ(IAP TCP ํฐ๋๋ง) ๋๋ ์์ URL ๊ฒฝ๋ก/ํธ์คํธ(IAP ๋ฐ Cloud Run)์ ๊ฐ์ ์์ฒญ์ ๋ํ ์ธ๋ถ์ ๋ณด๋ฅผ ํ๊ฐํ๋ ์กฐ๊ฑด์ ๋ง๋ค ์ ์์ต๋๋ค.
์ก์ธ์ค ์์ค ์์ฑ
์ก์ธ์ค ์์ค ์์ฑ์ ์ฌ์ฉํ๋ฉด ํ๋ ์ด์์ ์ก์ธ์ค ์์ค์ ์ถฉ์กฑํด์ผ ์์ฒญ์ด ์น์ธ๋๋๋ก ์๊ตฌํ๋ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ก์ธ์ค ์์ค ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ก์ธ์ค ์์ค ์์ฑ์ ์๋ณธ IP ์ฃผ์, ๊ธฐ๊ธฐ ์์ฑ, ์๊ฐ ๋ฑ ์์ฒญ ์์ฑ์์ ๊ฐ์ ธ์ต๋๋ค. ์๋ฅผ ๋ค์ด fullyTrusted
๋ผ๋ ์ก์ธ์ค ์์ค์ ์์ฒญํ๋ ๊ธฐ๊ธฐ๊ฐ ํ์ฌ ์์ ์ด๋ฉฐ ํ๋ฉด ์ ๊ธ์ด ์์ด์ผ ํ๋ค๊ณ ์๊ตฌํ ์ ์์ต๋๋ค. onNetwork
์ก์ธ์ค ์์ค์์ ์์ฒญํ๋ ๊ธฐ๊ธฐ๋ ํน์ IP ์ฃผ์ ๋ฒ์์์ ์์ํด์ผ ํ ์ ์์ต๋๋ค. ์ก์ธ์ค ์์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ Access Context Manager ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ก์ธ์ค ์์ค ์์ฑ์ IAP(Identity-Aware Proxy)๋ฅผ ์ฌ์ฉํ์ฌ ํฐ๋ ์ธ์คํด์ค์ ์ก์ธ์คํ๊ฑฐ๋ App Engine ๋๋ Compute Engine ๋ฐฑ์๋ ์๋น์ค์์ ์คํ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ ๋๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋ ์ก์ธ์ค ์์ค ์์ฑ์ ๋ค์ ๊ถํ ์ค ํ๋๋ฅผ ํ์ธํ๋ ์์ฒญ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
iap.tunnelInstances.accessViaIAP
iap.webServiceVersions.accessViaIAP
๋ค์๊ณผ ๊ฐ์ ์ฌ์ ์ ์๋ ์ญํ ์ ์กฐ๊ฑด๋ถ๋ก ๋ถ์ฌํ ๋ ์ก์ธ์ค ์์ค ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
IAP ๋ณด์ ํฐ๋ ์ฌ์ฉ์(
roles/iap.tunnelResourceAccessor
)๋จ์ผ ๊ถํ
iap.tunnelInstances.accessViaIAP
์ด(๊ฐ) ํฌํจ๋ฉ๋๋ค.IAP ๋ณด์ ์น ์ฑ ์ฌ์ฉ์(
roles/iap.httpsResourceAccessor
)๋จ์ผ ๊ถํ
iap.webServiceVersions.accessViaIAP
์ด(๊ฐ) ํฌํจ๋ฉ๋๋ค.
๋ํ ์ก์ธ์ค ์์ค ์์ฑ์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ถํ์ด ํฌํจ๋ ์ปค์คํ ์ญํ ์ ์กฐ๊ฑด๋ถ๋ก ๋ถ์ฌํ ์ ์์ต๋๋ค. ์ปค์คํ ์ญํ ์๋ ๋ค๋ฅธ ๊ถํ์ด ํฌํจ๋๋ฉด ์ ๋ฉ๋๋ค.
request.auth.access_levels
์์ฑ
์์ฑ ๋ณ์ | request.auth.access_levels |
---|---|
์์ฑ ์ ํ | list <string > |
์ง์๋๋ ์ฐ์ฐ์ | in |
์ธ๋ถ์ ๋ณด |
์์ฒญ์ด ํน์ ์ก์ธ์ค ์์ค์ ์ถฉ์กฑํ๋์ง ํ์ธํ๋ ค๋ฉด ACCESS_LEVEL_FULL_NAME in request.auth.access_levels ์ก์ธ์ค ์์ค์ ์ ์ฒด ์ด๋ฆ์๋ ๋ค์ ํ์์ด ์ฌ์ฉ๋ฉ๋๋ค. accessPolicies/POLICY_NUMBER/accessLevels/ACCESS_LEVEL |
์ |
์์ฒญ์ด "accessPolicies/199923665455/accessLevels/CorpNet" in request.auth.access_levels |
์ง์๋๋ ๋ฆฌ์์ค ์ ํ | IAP(Identity-Aware Proxy)๋ฅผ ์ฌ์ฉํ์ฌ ํฐ๋ ์ธ์คํด์ค, ํฐ๋ ๋์ ๊ทธ๋ฃน, Google Cloud ๋ถํ ๋ถ์ฐ์์ ์คํ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋๋ App Engine์์ ์คํ๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ๋ ์์ฒญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
API ์์ฑ
API ์์ฑ์ ์ฌ์ฉํ๋ฉด ํน์ Google Cloud API ๋๋ ์๋น์ค์์ ์ ๊ณต๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ API ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด Cloud Storage๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒํท์ ๊ฐ์ฒด๋ฅผ ๋์ดํ ๊ฒฝ์ฐ ์์ฒญ์ prefix
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฆ์ด ํน์ ์ ๋์ฌ๋ก ์์ํ๋ ๊ฐ์ฒด๋ง ํฌํจํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ์ก์ธ์ค ๊ฒฝ๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ๋จ๊ธฐ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๋ฒ์๋ฅผ ์ค์ด๋ ค๋ฉด API ์์ฑ storage.googleapis.com/objectListPrefix
๋ฅผ ํ์ธํ์ฌ ๊ฐ์ฒด ๋์ด์ ๋ํ ๊ถํ์ ์ ํํ๋ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ์ก์ธ์ค ๊ฒฝ๊ณ๋ฅผ ๋ง๋ค๋ฉด ๋ฉ๋๋ค. ์ด API ์์ฑ์๋ ์์ฒญ์ prefix
๋งค๊ฐ๋ณ์ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
์กฐ๊ฑด์์ API ์์ฑ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์์๋ ๋ค์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ผ๋ถ ์๋น์ค๋ API ์์ฑ์ ์ธ์ํ์ง ๋ชปํฉ๋๋ค. ๋ค์ ์น์ ์ ๊ฐ API ์์ฑ์ ์ธ์ํ๋ ์๋น์ค๋ฅผ ๋ํ๋ ๋๋ค.
API ์์ฑ์ฉ ํจ์
๋ค์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด API ์์ฑ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํจ์ | ์ค๋ช | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
api.getAttribute(
V<T>
|
์์ฒญ๋ API ์์ฑ์ ๊ฐ์ ธ์ต๋๋ค.
|
||||||||||||
hasOnly(
bool |
๋ชฉ๋ก์ ํ์ฉ๋ ํญ๋ชฉ ๋๋ ์ด๋ฌํ ํญ๋ชฉ์ ํ์ ์งํฉ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
|
Cloud Storage API ์์ฑ
Cloud Storage๋ ๋ค์ API ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
์์ฑ ๋ณ์ | storage.googleapis.com/objectListPrefix |
---|---|
์์ฑ ์ ํ | string |
์ธ๋ถ์ ๋ณด |
๋ฒํท์ ๊ฐ์ฒด ๋์ด ์์ฒญ์ ๊ฒฝ์ฐ ์์ฒญ์ ๋ค๋ฅธ ์ ํ์ ์์ฒญ์์๋ ์ด ์์ฑ์ด ์ ์๋์ง ์์ต๋๋ค. |
์ด ์์ฑ์ ์ธ์ํ๋ ์๋น์ค: | Cloud Storage |
IAM API ์์ฑ
IAM์ ๋ค์๊ณผ ๊ฐ์ API ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
์์ฑ ๋ณ์ | iam.googleapis.com/modifiedGrantsByRole |
---|---|
์์ฑ ์ ํ | list<string> |
์ธ๋ถ์ ๋ณด |
๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ ์ ์ค์ ํ๊ธฐ ์ํ ์์ฒญ์ ๊ฒฝ์ฐ ์ด ์์ฑ์๋ ์์ฒญ์ด ์์ ํ๋ ๊ฒฐํฉ์ ์ญํ ์ด๋ฆ์ด ํฌํจ๋ฉ๋๋ค. ๋ค๋ฅธ ์ ํ์ ์์ฒญ์์๋ ์ด ์์ฑ์ด ์ ์๋์ง ์์ต๋๋ค. |
์ด ์์ฑ์ ํ์ฉํ๋ ๋ฆฌ์์ค ์ ํ |
๋ค์ ๋ฆฌ์์ค ์ ํ์ ํด๋น ํ์ฉ ์ ์ฑ
์์
|
์ด ์์ฑ์ ์ธ์ํ๋ ์๋น์ค: |
๋ค์ ์๋น์ค๋
|
๋ ์ง/์๊ฐ ์์ฑ
๋ ์ง/์๊ฐ ์์ฑ์ Google Cloud ๋ฆฌ์์ค์ ๋ํ ๋ง๋ฃ, ์์ฝ, ๊ธฐ๊ฐ ์ ํ ์ก์ธ์ค๋ฅผ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ๋ ์ง/์๊ฐ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ์์ฑ์ ๋ชจ๋ Google Cloud ์๋น์ค ๋ฐ ๋ฆฌ์์ค ์ ํ์์ ์ง์๋ฉ๋๋ค. ์ด๋ฅผ ์ง์ ์ง์ํ์ง ์๋ ๋ฆฌ์์ค์ ๋ ์ง/์๊ฐ ์กฐ๊ฑด์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ด ํ์ด์ง์ ์์๋ ์กฐ๊ฑด ์ง์์ ์ฐธ์กฐํ์ธ์.
request.time
์์ฑ์๋ ์์ฒญ์ ํ์์คํฌํ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด ํ์์คํฌํ๋ฅผ ๋ค๋ฅธ ํ์์คํฌํ ๋๋ ๊ธฐ๊ฐ๊ณผ ๋น๊ตํ ์ ์์ต๋๋ค.
๋ค์ ์น์ ์๋ ํ์์คํฌํ ๋ฐ ๊ธฐ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์กฐ๊ฑด์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํจ์๊ฐ ๋์ ์์ต๋๋ค.
ํ์์คํฌํ ๋ฐ ๊ธฐ๊ฐ ๋ง๋ค๊ธฐ, ๋น๊ต, ์์
ํจ์ ๋๋ ์ฐ์ฐ์ | ์ค๋ช |
---|---|
date(
Timestamp |
๋ ์ง๋ฅผ
|
duration(
Duration |
์๊ฐ์
|
timestamp(
Timestamp |
|
, , , |
๋ ๊ฐ์
|
|
|
ํ์์คํฌํ์์ ์ ๋ณด ์ถ์ถ
์ด ์น์ ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์์คํฌํ์ ํด๋นํ๋ ์์ผ๊ณผ ๊ฐ์ด ํ์์คํฌํ์์ ์ ๋ณด๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค.
IAM ์กฐ๊ฑด์์ ๋ชจ๋ ํ์์คํฌํ๋ UTC๋ก ํ์๋ฉ๋๋ค. ํ์ง๋ง ๋ค๋ฅธ ์๊ฐ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ณด๋ฅผ ์ถ์ถํด์ผ ํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด UTC ํ์์คํฌํ๊ฐ ๋ ์ผ ๋ฒ ๋ฅผ๋ฆฐ์ ์๊ฐ๋์์ ์์์ผ์ธ์ง ์์๋ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๋ค๋ฅธ ์๊ฐ๋๋ฅผ ์ง์ ํ๋ ค๋ฉด ํด๋น ์๊ฐ๋๋ฅผ ํจ์์ ์ ๋ฌํฉ๋๋ค. IETF ์๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ ๋๋ UTC ์คํ์
์ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ค๋ถ ์ ๋ฝ ํ์ค์(CET)์ Europe/Berlin
๋๋ +01:00
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ง์๋๋ ํจ์ ๋ฐ ์ฐ์ฐ์ | ์ค๋ช |
---|---|
Timestamp.getDate(
int
|
|
Timestamp.getDayOfMonth(
int
|
|
Timestamp.getDayOfWeek(
int
|
|
Timestamp.getDayOfYear(
int
|
|
Timestamp.getFullYear(
int
|
|
Timestamp.getHours(
int
|
์ด ํจ์๋ฅผ
|
Timestamp.getMilliseconds(
int
|
|
Timestamp.getMinutes(
int
|
|
Timestamp.getMonth(
int
|
|
Timestamp.getSeconds(
int
|
|
, , , |
์ด ํ์์ ๋ ํจ์์ ์ถ๋ ฅ์ ๋น๊ตํฉ๋๋ค. |
๋์ IP/ํฌํธ ์์ฑ
๋์ IP/ํฌํธ ์์ฑ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์์ฒญ์ ๋ด๋ถ ๋์ IP ์ฃผ์ ๋ฐ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ๋์ IP/ํฌํธ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด Compute Engine VM ์ธ์คํด์ค๋ ์ธ๋ถ IP ์ฃผ์ ๋ฐ ํฌํธ 132.168.42.21:3001
์ ๋ด๋ถ IP ์ฃผ์์ ๋งคํํ๊ณ ํฌํธ 10.0.0.1:2300
์ ์ผ๋ฐ์ ์ธ ์ฉ๋์ ๋งคํํ ์ ์์ต๋๋ค. ๋ฐ๋๋ก ๋ด๋ถ IP ์ฃผ์์ ํฌํธ 10.0.0.1:22
๋ ๊ด๋ฆฌ ์ฉ๋๋ก๋ง ๋ด๋ถ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋์ IP/ํฌํธ ์์ฑ์ ์ฌ์ฉํ์ฌ ๋ด๋ถ IP ์ฃผ์ ๋ฐ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
TCP ์ ๋ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ IAP(Identity-Aware Proxy) ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋์.ip ์์ฑ
์์ฑ ๋ณ์ | destination.ip |
---|---|
์์ฑ ์ ํ | string |
์ง์๋๋ ์ฐ์ฐ์ | , |
์ธ๋ถ์ ๋ณด |
๋ณ์ |
์์ |
๋์ IP ์ฃผ์๊ฐ destination.ip == "10.0.0.1"
๋์ IP ์ฃผ์๊ฐ destination.ip != "10.0.0.1" |
์ง์๋๋ ๋ฆฌ์์ค ์ ํ | IAP(Identity-Aware Proxy)๋ฅผ ์ฌ์ฉํ์ฌ ํฐ๋ ์ธ์คํด์ค์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
destination.port ์์ฑ
์์ฑ ๋ณ์ | destination.port |
---|---|
์์ฑ ์ ํ | int |
์ง์๋๋ ์ฐ์ฐ์ | , , , , , |
์ธ๋ถ์ ๋ณด |
|
์์ |
๋ชฉ์ ์ง ํฌํธ๊ฐ destination.port == 21
๋ชฉ์ ์ง ํฌํธ๊ฐ destination.port < 3001 |
์ง์๋๋ ๋ฆฌ์์ค ์ ํ | IAP(Identity-Aware Proxy)๋ฅผ ์ฌ์ฉํ์ฌ ํฐ๋ ์ธ์คํด์ค์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
์ ๋ฌ ๊ท์น ์์ฑ
์ ๋ฌ ๊ท์น ์์ฑ์ ์ฌ์ฉํ๋ฉด ์ฃผ ๊ตฌ์ฑ์์ด ๋ง๋ค ์ ์๋ ์ ๋ฌ ๊ท์น์ ์ ํ์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ ๊ตฌ์ฑ์์ด ์ธํฐ๋ท์์ ๋ฐ์ํ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์ธ๋ถ Google Cloud๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์๋ Google Cloud ๋คํธ์ํฌ ๋ด๋ถ์์ ๋ฐ์ํ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ๋ด๋ถ Google Cloud๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ์ ๋ฌ ๊ท์น์ ๋ง๋ค ์ ์๋๋ก ํ์ฉํ ์ ์์ต๋๋ค. ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ ์ ๋ฌ ๊ท์น ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Cloud Load Balancing์ ๊ฒฝ์ฐ ์ ๋ฌ ๊ท์น ์์ฑ์ ๋ฐฑ์๋ ์๋น์ค, ๋์ ํ๋ก์, ์ํ ์ ๊ฒ, URL ๋งต๊ณผ ๊ฐ์ Google Cloud ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ค๋ฅธ ๊ตฌ์ฑ์์๋ฅผ ๋ง๋๋ ๊ธฐ๋ฅ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
์ง์๋๋ ํจ์
ํจ์ | ์ค๋ช |
---|---|
compute.isForwardingRule
bool
|
์์ฒญ์ด ์ ๋ฌ ๊ท์น์ ๋ง๋๋์ง ํ์ธํฉ๋๋ค.
|
compute.matchLoad
bool
|
์์ฒญ์ด ์ง์ ๋ ์ ํ์ ๋ถํ ๋ถ์ฐ ์คํค๋ง ์ค ํ๋์ ์ํฅ์ ๋ฏธ์น๋์ง ํ์ธํฉ๋๋ค. ๊ฐ ๋ถํ ๋ถ์ฐ ์คํค๋ง์ ์๋ณ์์ ์์ธํ ๋ด์ฉ์ Google Cloud ๋ถํ ๋ถ์ฐ๊ธฐ์์ IAM ์กฐ๊ฑด ์ฌ์ฉ์ ์ฐธ๊ณ ํ์ธ์.
|
์ง์๋๋ ๋ฆฌ์์ค ์ ํ
์ด ์์ฑ์ ๋ค์ ๋ฆฌ์์ค ์ ํ์ ๋ง๋๋ ์์ฒญ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋น์ค | ๋ฆฌ์์ค ์ ํ |
---|---|
Cloud Load Balancing | ์ ๋ฌ ๊ท์น |
Cloud VPN | ์ ๋ฌ ๊ท์น(์ ์ญ ๋ฐ ๋ฆฌ์ ) |
Compute Engine | ์ ๋ฌ ๊ท์น(ํ๋กํ ์ฝ ์ ๋ฌ) |
Cloud Service Mesh1 | ์ ๋ฌ ๊ท์น |
1 Compute Engine์ ๋ฆฌ์์ค ์์ฑ์ ์ฌ์ฉํฉ๋๋ค.
URL ๊ฒฝ๋ก/ํธ์คํธ ์์ฑ
URL ๊ฒฝ๋ก ๋ฐ ํธ์คํธ ์์ฑ์ ์ฌ์ฉํ๋ฉด ์์ฒญ์ URL ๊ฒฝ๋ก ๋๋ ํธ์คํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ https://example.com
์ ์ผ๋ฐ ์ฌ์ฉ์ ๋๋ฉ์ธ์ด ์ก์ธ์คํ ์ ์๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ง์ ํ๊ณ https://hr.example.com/admin
์ ์ธ์ฌ ๊ด๋ฆฌ ๋ด๋น์๋ง ์ก์ธ์คํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ด์ง์ ์ก์ธ์คํ ๋ ์ฌ์ฉ๋๋๋ก ์ง์ ํ ์ ์์ต๋๋ค.
ํ์ฉ ์ ์ฑ ์ญํ ๋ฐ์ธ๋ฉ์์ URL ๊ฒฝ๋ก/ํธ์คํธ ์์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
request.path ์์ฑ
์์ฑ ๋ณ์ | request.path |
---|---|
์์ฑ ์ ํ | string |
์ง์๋๋ ํจ์ ๋ฐ ์ฐ์ฐ์ | , startsWith(), endsWith() |
์ธ๋ถ์ ๋ณด |
์ด ์์ฑ์๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. request.path != "/admin" ๊ณผ ๊ฐ์ด ๋ถ๋ฑ์ ํ์ธํ๋ ๋์ !request.path.startsWith("/admin") ์ ๊ฐ์ด ์์ฑ์ ์ ๋์ฌ๋ฅผ ํ์ธํ์ธ์. ์ ๋์ฌ๋ฅผ ํ์ธํ์ฌ /admin ๊ณ์ธต ๊ตฌ์กฐ ๋ด์์ URL ๊ฒฝ๋ก(์: /admin/payroll/ )๋ฅผ ๋ณดํธํ ์๋ ์์ต๋๋ค.
|
์์ |
์์ฒญ ๊ฒฝ๋ก๊ฐ ์ง์ ๋ URL ๊ฒฝ๋ก์ ๋์ผํ๋ฉด request.path == "/admin" request.path == "/admin/payroll"
์์ฒญ ๊ฒฝ๋ก๊ฐ ์ง์ ๋ URL ๊ฒฝ๋ก๋ก ์์๋๋ฉด request.path.startsWith("/admin")
์์ฒญ ๊ฒฝ๋ก๊ฐ ์ง์ ๋ URL ๊ฒฝ๋ก๋ก ๋๋๋ฉด request.path.endsWith("/payroll.js") |
์ง์๋๋ ๋ฆฌ์์ค ์ ํ |
|
request.host ์์ฑ
์์ฑ ๋ณ์ | request.host |
---|---|
์์ฑ ์ ํ | string |
์ง์๋๋ ํจ์ ๋ฐ ์ฐ์ฐ์ | , endsWith() |
์ธ๋ถ์ ๋ณด |
์ด ์์ฑ์๋ .startsWith() ํจ์๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ฌํ ํจ์์ ์ฐ์ฐ์๋ ์๊ธฐ์น ์์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
|
์์ |
ํธ์คํธ ์ด๋ฆ์ด ์ง์ ๋ ๊ฐ๊ณผ ๋์ผํ ๊ฒฝ์ฐ request.host == "www.example.com" request.host == "hr.example.com"
ํธ์คํธ ์ด๋ฆ์ด ์ง์ ๋ ๊ฐ์ผ๋ก ๋๋๋ฉด request.host.endsWith("example.com") |
์ง์๋๋ ๋ฆฌ์์ค ์ ํ |
|
์์ฑ์์ ๊ฐ ์ถ์ถ
extract()
ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฑ์์ ๊ฐ์ ์ถ์ถํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฆฌ์์ค ์ด๋ฆ์ ์์ ๋ถ๋ถ์ ์ถ์ถํ ํ ์ถ์ถ๋ ํ
์คํธ๋ฅผ ์ฐธ์กฐํ๋ ์กฐ๊ฑด ํํ์์ ์์ฑํ ์ ์์ต๋๋ค.
extract()
ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ถ์ถํ ์์ฑ์ ์ผ๋ถ๋ฅผ ์ง์ ํ๋ ์ถ์ถ ํ
ํ๋ฆฟ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด Compute Engine VM ์ธ์คํด์ค์ ๋ฆฌ์์ค ์ด๋ฆ์์ ํ๋ก์ ํธ ID๋ฅผ ์ถ์ถํ๋ ค๋ ๊ฒฝ์ฐ projects/{project}/
ํ
ํ๋ฆฟ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ถ ํ ํ๋ฆฟ์๋ ๋ค์ ๋ถ๋ถ์ด ํฌํจ๋ฉ๋๋ค.
์ค๊ดํธ๋ก ๋ฌถ์ธ ์๋ณ์๋ ์ถ์ถํ ํ์ ๋ฌธ์์ด์ ์๋ณํฉ๋๋ค.
์ถ์ถํ ๊ฐ์ ๋ช ํํ๊ฒ ํ๋ ์งง๊ณ ์๋ฏธ ์๋ ์๋ณ์๋ฅผ ์ ํํฉ๋๋ค.
A
~Z
์ ๋๋ฌธ์์ ์๋ฌธ์, ์ซ์, ๋ฐ์ค(_
)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.projects/{project}/
ํ ํ๋ฆฟ์์ ์๋ณ์๋project
์ ๋๋ค.์ ํ์ฌํญ: ์ถ์ถํ ํ์ ๋ฌธ์์ด ์์ ์์ผ ํ๋ ์ ๋์ฌ์ ๋๋ค.
projects/{project}/
ํ ํ๋ฆฟ์์ ํ๋ฆฌํฝ์ค๋projects/
์ ๋๋ค.์ ํ์ฌํญ: ์ถ์ถํ ํ์ ๋ฌธ์์ด ๋ค์์ ์์ผ ํ๋ ์ ๋ฏธ์ฌ์ ๋๋ค.
projects/{project}/
ํ ํ๋ฆฟ์์ ์ ๋ฏธ์ฌ๋/
์ ๋๋ค.
extract()
ํจ์๋ ์ถ์ถ ํ
ํ๋ฆฟ์ ์ ๋์ฌ, ์ ๋ฏธ์ฌ ๋๋ ๋ ๋ค๊ฐ ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์์ฑ์ ๋ค๋ฅธ ๋ถ๋ถ์ ์ถ์ถํฉ๋๋ค.
ํ๋ฆฌํฝ์ค ์์ | ์ ๋ฏธ์ฌ ์์ | ์ถ์ถ๋ ๊ฐ |
---|---|---|
โ | โ | ์ ์ฒด ์์ฑ |
โ | ์ ๋์ฌ์ ์ฒซ ๋ฒ์งธ ์ด์ปค๋ฐ์ค ๋ค์์ ์ค๋ ๋ฌธ์ ๋๋ ์ ๋์ฌ ๋ค์์ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด | |
โ | ์ ๋ฏธ์ฌ์ ์ฒซ ๋ฒ์งธ ์ด์ปค๋ฐ์ค ์์ ์ค๋ ๋ฌธ์ ๋๋ ์ ๋ฏธ์ฌ ์์ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด | |
ํ๋ฆฌํฝ์ค์ ์ฒซ ๋ฒ์งธ ์ผ์นํ๋ ํญ๋ชฉ๊ณผ ์ํฝ์ค์ ์ฒซ ๋ฒ์งธ ์ผ์นํ๋ ํญ๋ชฉ ์ฌ์ด์ ๋ฌธ์ ๋๋ ํ๋ฆฌํฝ์ค์ ์ํฝ์ค ์ฌ์ด์ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด |
์์ฑ์ ํ์๋์ง ์๋ ์ ๋์ฌ ๋๋ ์ ๋ฏธ์ฌ๋ฅผ ์ง์ ํ๊ฑฐ๋ ์ ๋ฏธ์ฌ๊ฐ ์ ๋์ฌ ์์๋ง ์์ผ๋ฉด extract()
ํจ์๋ ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
๋ค์ ์์์์๋ ๋ช ๊ฐ์ง ์ถ์ถ ํ
ํ๋ฆฟ์ ์ถ๋ ฅ์ ๋ณด์ฌ์ค๋๋ค. ๋ค์ ์์์์๋ Cloud Storage ๊ฐ์ฒด projects/_/buckets/acme-orders-aaa/objects/data_lake/orders/
์ ๋ฆฌ์์ค ์ด๋ฆ์ ์ฐธ์กฐํฉ๋๋ค.
์ถ์ถ ํ ํ๋ฆฟ | ์ถ๋ ฅ |
---|---|
/order_date={date}/ |
2019-11-03 |
buckets/{name}/ |
acme-orders-aaa |
/orders/{empty}order_date |
๋น์ด ์๋ string |
{start}/objects/data_lake |
projects/_/buckets/acme-orders-aaa |
orders/{end} |
order_date=2019-11-03/aef87g87ae0876 |
{all} |
projects/_/buckets/acme-orders-aaa/objects/data_lake/orders/ |
/orders/{none}/order_date= |
๋น์ด ์๋ string |
/orders/order_date=2019-11-03/ |
๋น์ด ์๋ string |
๋ ์ง๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ ์ถ์ถํ๋ ๊ฒฝ์ฐ ์ด ํ์ด์ง์ ๋ ์ง/์๊ฐ ํจ์ ๋ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ถ์ถ๋ ๊ฐ์ Timestamp
๋ก ๋ณํํ ์ ์์ต๋๋ค. ์์๋ ๋ฆฌ์์ค ๊ธฐ๋ฐ ์ก์ธ์ค ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.