๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ ์ฌ์ฉํ๋ฉด ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ํฅ์ ๊ฐ์ฌ, ํ์ธ, ๋ถ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํธ๋ํฝ์ ๊ฑฐ๋ถํ๋๋ก ์ค๊ณ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์๋ํ ๋๋ก ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ ํน์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ํฅ์ ๋ฐ๋ ์ฐ๊ฒฐ ์๋ฅผ ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์ ์ฉํฉ๋๋ค.
์ฐ๊ฒฐ์ ๋ก๊น
ํด์ผ ํ๋ ๊ฐ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น
์ ๊ฐ๋ณ์ ์ผ๋ก ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น
์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์์
(allow
๋๋ deny
) ๋๋ ๋ฐฉํฅ(์ธ๊ทธ๋ ์ค ๋๋ ์ด๊ทธ๋ ์ค)์ ๊ด๊ณ์์ด ๋ชจ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ํ ์ต์
์
๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ Compute Engine ๊ฐ์ ๋จธ์ (VM) ์ธ์คํด์ค์์ ์ฃผ๊ณ ๋ฐ๋ ํธ๋ํฝ์ ๋ก๊น ํฉ๋๋ค. ์ฌ๊ธฐ์๋ Google Kubernetes Engine(GKE) ํด๋ฌ์คํฐ ๋ฐ App Engine ๊ฐ๋ณํ ํ๊ฒฝ ์ธ์คํด์ค์ ๊ฐ์ด Compute Engine VM์์ ๋น๋๋Google Cloud ์ ํ์ด ํฌํจ๋ฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ฉด Google Cloud ๋ ๊ท์น์ด ํธ๋ํฝ์ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ ๋๋ง๋ค ์ฐ๊ฒฐ ๋ ์ฝ๋๋ผ๊ณ ํ๋ ํญ๋ชฉ์ ๋ง๋ญ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ก์ Cloud Logging์์ ๋ณผ ์ ์์ผ๋ฉฐ Cloud Logging ๋ด๋ณด๋ด๊ธฐ๊ฐ ์ง์๋๋ ๋ชจ๋ ๋์์ผ๋ก ๋ก๊ทธ๋ฅผ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
๊ฐ ์ฐ๊ฒฐ ๋ ์ฝ๋์๋ ์์ค ๋ฐ ๋์ IP ์ฃผ์, ํ๋กํ ์ฝ ๋ฐ ํฌํธ, ๋ ์ง ๋ฐ ์๊ฐ, ํธ๋ํฝ์ ์ ์ฉ๋ ๋ฐฉํ๋ฒฝ์ ๋ํ ์ฐธ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ VPC ๋ฐฉํ๋ฒฝ ๊ท์น๊ณผ ๊ณ์ธต์ ๋ฐฉํ๋ฒฝ ์ ์ฑ ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ก๊ทธ๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
์ฌ์
๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ ์ฌ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Virtual Private Cloud(VPC) ๋คํธ์ํฌ์ ๊ท์น์๋ง ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค. ๊ธฐ์กด ๋คํธ์ํฌ๋ ์ง์๋์ง ์์ต๋๋ค.
- ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ TCP ๋ฐ UDP ์ฐ๊ฒฐ๋ง ๊ธฐ๋กํฉ๋๋ค. ๋ค๋ฅธ ํ๋กํ ์ฝ์ ์ ์ฉ ๊ฐ๋ฅํ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค ์ ์์ง๋ง ์ด ์ฐ๊ฒฐ์ ๋ก๊น ํ ์๋ ์์ต๋๋ค. ๋ค๋ฅธ ํ๋กํ ์ฝ๋ ๋ก๊น ํ๋ ค๋ฉด ํจํท ๋ฏธ๋ฌ๋ง์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋ฌต์์ ์ธ๊ทธ๋ ์ค ๊ฑฐ๋ถ ๋ฐ ๋ฌต์์ ์ด๊ทธ๋ ์ค ํ์ฉ ๊ท์น์๋ ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
- ๋ก๊ทธ ํญ๋ชฉ์ VM์ ๊ด์ ์์ ์์ฑ๋ฉ๋๋ค. ๋ก๊ทธ ํญ๋ชฉ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋๊ณ ๋ฐฉํ๋ฒฝ ๊ท์น์ด VM์ ์ค๊ฐ๋ ํธ๋ํฝ์ ์ ์ฉ๋ ๋๋ง ์์ฑ๋ฉ๋๋ค. ํญ๋ชฉ์ ์ต์์ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ ๋ก๊น ํ๋์ ๋ฐ๋ผ ์์ฑ๋ฉ๋๋ค.
- ํน์ ๊ฐ๊ฒฉ์ผ๋ก ๋ก๊น ํ ์ ์๋ ์ฐ๊ฒฐ ์๋ ๋จธ์ ์ ํ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
- ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ณ๊ฒฝ์ฌํญ์ VPC ๊ฐ์ฌ ๋ก๊ทธ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ก๊น ์์
๋ก๊ทธ ํญ๋ชฉ์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ํธ๋ํฝ์ ์ ์ฉ๋ ๋๋ง๋ค ์์ฑ๋ฉ๋๋ค. ์ง์ ๋ ํจํท ํ๋ฆ์๋ ๋ก๊ทธ ํญ๋ชฉ์ด ์ด 2๊ฐ ์ด์ ์์ฑ๋ ์ ์์ง๋ง ์ง์ ๋ VM์ ๊ด์ ์์ ๋ณผ ๋ VM์ ์ ์ฉ๋๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋๋ฉด ๋ก๊ทธ ํญ๋ชฉ์ด ์ต๋ 1๊ฐ๋ง ์์ฑ๋ ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ๋ฐฉํ๋ฒฝ ๋ก๊ทธ๊ฐ ์คํ๋๋ ๋ฐฉ์์ ๋ณด์ฌ์ค๋๋ค.
์ด๊ทธ๋ ์ค ๊ฑฐ๋ถ ์์
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
example-proj
ํ๋ก์ ํธ์example-net
VPC ๋คํธ์ํฌ์์ VM ์ธ์คํด์ค ์ฌ์ด์ ํธ๋ํฝ์ด ๊ณ ๋ ค๋ฉ๋๋ค.- ๋ ๊ฐ์ VM ์ธ์คํด์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
west-subnet
(us-west1
๋ฆฌ์ )์์ IP ์ฃผ์๊ฐ10.10.0.99
์ธus-west1-a
์์ญ์ VM1east-subnet
(us-east1
๋ฆฌ์ )์์ IP ์ฃผ์๊ฐ10.20.0.99
์ธus-east1-b
์์ญ์ VM2
- ๊ท์น A: ์ด๊ทธ๋ ์ค ๊ฑฐ๋ถ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ธ์คํด์ค ๋์์ธ
10.20.0.99
(VM2) ๋์์ ํฌํจํ๋ฉฐ TCP ํฌํธ 80์ ์ ์ฉ๋ฉ๋๋ค.- ์ด ๊ท์น์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
- ๊ท์น B: ์ธ๊ทธ๋ ์ค ํ์ฉ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ธ์คํด์ค ๋์์ธ
10.10.0.99
(VM1) ์์ค๋ฅผ ํฌํจํ๋ฉฐ TCP ํฌํธ 80์ ์ ์ฉ๋ฉ๋๋ค.- ์ด ๊ท์น์๋ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ท์น A: TCP 80์ ๋ํ ์ด๊ทธ๋ ์ค ๊ฑฐ๋ถ ๊ท์น์ด๋ฉฐ ๋ชจ๋ ์ธ์คํด์ค,
10.20.0.99
๋์์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.gcloud compute firewall-rules create rule-a \ --network example-net \ --action deny \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-logging
๊ท์น B: TCP 80์ ๋ํ ์ธ๊ทธ๋ ์ค ํ์ฉ ๊ท์น์ด๋ฉฐ ๋ชจ๋ ์ธ์คํด์ค,
10.10.0.99
์์ค์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
VM1์ด TCP ํฌํธ 80์์ VM2๋ก ์ฐ๊ฒฐ์ ์๋ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ค์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ๋ก๊น ๋ฉ๋๋ค.
- VM1์ด
10.20.0.99
(VM2)๋ก ์ฐ๊ฒฐ์ ์๋ํ๋ฉด VM1์ ๊ด์ ์์ ๊ท์น A์ ๋ก๊ทธ ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค. - ๊ท์น A๊ฐ ์ค์ ๋ก ํธ๋ํฝ์ ์ฐจ๋จํ์ฌ ๊ท์น B๋ ๊ณ ๋ ค๋์ง ์์ผ๋ฏ๋ก VM2์ ๊ด์ ์์ ๊ท์น B์ ๋ก๊ทธ ํญ๋ชฉ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ๋ฐฉํ๋ฒฝ ๋ก๊ทธ ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
ํ๋ | ๊ฐ |
---|---|
connection | src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition | ๊ฑฐ๋ถ๋จ |
rule_details | reference = "network:example-net/firewall:rule-a" priority = 10 action = DENY destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
์ธ์คํด์ค | project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance | project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location | ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ด ํ๋๋ ๋์์ด VPC ๋คํธ์ํฌ ์ธ๋ถ์ ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. |
์ด๊ทธ๋ ์ค ํ์ฉ, ์ธ๊ทธ๋ ์ค ํ์ฉ ์์
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
example-proj
ํ๋ก์ ํธ์example-net
VPC ๋คํธ์ํฌ์์ VM ์ธ์คํด์ค ์ฌ์ด์ ํธ๋ํฝ์ด ๊ณ ๋ ค๋ฉ๋๋ค.- ๋ ๊ฐ์ VM ์ธ์คํด์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
west-subnet
(us-west1
๋ฆฌ์ )์์ IP ์ฃผ์๊ฐ10.10.0.99
์ธus-west1-a
์์ญ์ VM1east-subnet
(us-east1
๋ฆฌ์ )์์ IP ์ฃผ์๊ฐ10.20.0.99
์ธus-east1-b
์์ญ์ VM2
- ๊ท์น A: ์ด๊ทธ๋ ์ค ํ์ฉ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ธ์คํด์ค ๋์์ธ
10.20.0.99
(VM2) ๋์์ ํฌํจํ๋ฉฐ TCP ํฌํธ 80์ ์ ์ฉ๋ฉ๋๋ค.- ์ด ๊ท์น์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
- ๊ท์น B: ์ธ๊ทธ๋ ์ค ํ์ฉ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ธ์คํด์ค ๋์์ธ
10.10.0.99
(VM1) ์์ค๋ฅผ ํฌํจํ๋ฉฐ TCP ํฌํธ 80์ ์ ์ฉ๋ฉ๋๋ค.- ์ด ๊ท์น์๋ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ท์น A: TCP 80์ ๋ํ ์ด๊ทธ๋ ์ค ํ์ฉ ๊ท์น์ด๋ฉฐ ๋ชจ๋ ์ธ์คํด์ค,
10.20.0.99
(VM2) ๋์์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.gcloud compute firewall-rules create rule-a \ --network example-net \ --action allow \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-logging
๊ท์น B: TCP 80์ ๋ํ ์ธ๊ทธ๋ ์ค ํ์ฉ ๊ท์น์ด๋ฉฐ ๋ชจ๋ ์ธ์คํด์ค,
10.10.0.99
(VM1) ์์ค์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
VM1์ด TCP ํฌํธ 80์์ VM2๋ก ์ฐ๊ฒฐ์ ์๋ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ค์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ๋ก๊น ๋ฉ๋๋ค.
- VM1์ด
10.20.0.99
(VM2)์ ์ฐ๊ฒฐ๋๋ฉด VM1์ ๊ด์ ์์ ๊ท์น A์ ๋ก๊ทธ ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค. - VM2๊ฐ
10.10.0.99
(VM1)์ ์์ ์ฐ๊ฒฐ์ ํ์ฉํ๋ฉด VM2์ ๊ด์ ์์ ๊ท์น B์ ๋ก๊ทธ ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค.
๋ค์ ์์์์๋ VM1์์ ๋ณด๊ณ ํ ๋ฐฉํ๋ฒฝ ๋ก๊ทธ ๋ ์ฝ๋๊ฐ ์์ฑ๋ฉ๋๋ค.
ํ๋ | ๊ฐ |
---|---|
connection | src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition | ํ์ฉ๋จ |
rule_details | reference = "network:example-net/firewall:rule-a" priority = 10 action = ALLOW destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
์ธ์คํด์ค | project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance | project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location | ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ด ํ๋๋ ๋์์ด VPC ๋คํธ์ํฌ ์ธ๋ถ์ ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. |
๋ค์ ์์์์๋ VM2์์ ๋ณด๊ณ ํ ๋ฐฉํ๋ฒฝ ๋ก๊ทธ ๋ ์ฝ๋๊ฐ ์์ฑ๋ฉ๋๋ค.
ํ๋ | ๊ฐ |
---|---|
connection | src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition | ํ์ฉ๋จ |
rule_details | reference = "network:example-net/firewall:rule-b" priority = 10 action = ALLOW source_range = 10.10.0.99/32 ip_port_info = tcp:80 direction = ingress |
์ธ์คํด์ค | project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_instance | project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
remote_vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location | ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ด ํ๋๋ ๋์์ด VPC ๋คํธ์ํฌ ์ธ๋ถ์ ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. |
์ธํฐ๋ท ์ธ๊ทธ๋ ์ค ์์
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
example-net
VPC ๋คํธ์ํฌ ์ธ๋ถ์ ์์คํ ์์ ์ด ๋คํธ์ํฌ์ VM ์ธ์คํด์ค๋ก ์ด๋ํ๋ ํธ๋ํฝ์ด ๊ณ ๋ ค๋ฉ๋๋ค. ๋คํธ์ํฌ๋example-proj
ํ๋ก์ ํธ์ ์์ต๋๋ค.- ์ธํฐ๋ท ์์คํ
์ IP ์ฃผ์๋
203.0.113.114
์ ๋๋ค. west-subnet
(us-west1
๋ฆฌ์ )์์ IP ์ฃผ์๊ฐ10.10.0.99
์ธus-west1-a
์์ญ์ VM1- ๊ท์น C: ์ธ๊ทธ๋ ์ค ํ์ฉ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ธ์คํด์ค ๋์์ธ ๋ชจ๋ IP ์ฃผ์(
0.0.0.0/0
) ์์ค๋ฅผ ํฌํจํ๋ฉฐ TCP ํฌํธ 80์ ์ ์ฉ๋ฉ๋๋ค.- ์ด ๊ท์น์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
- ๊ท์น D: ์ด๊ทธ๋ ์ค ๊ฑฐ๋ถ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ธ์คํด์ค ๋์์ธ IP ์ฃผ์(
0.0.0.0/0
) ๋์์ ํฌํจํ๋ฉฐ ๋ชจ๋ ํ๋กํ ์ฝ์ ์ ์ฉ๋ฉ๋๋ค.- ์ด ๊ท์น์๋ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
๋ค์ gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ท์น C: TCP 80์ ๋ํ ์ธ๊ทธ๋ ์ค ํ์ฉ ๊ท์น์ด๋ฉฐ ๋ชจ๋ ์ธ์คํด์ค, ๋ชจ๋ ์์ค์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
gcloud compute firewall-rules create rule-c \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 0.0.0.0/0 \ --priority 10 \ --enable-logging
๊ท์น D: ๋ชจ๋ ํ๋กํ ์ฝ์ ๋ํ ์ก์ ๊ฑฐ๋ถ ๊ท์น์ด๋ฉฐ ๋ชจ๋ ์ธ์คํด์ค, ๋ชจ๋ ๋์์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
gcloud compute firewall-rules create rule-d \ --network example-net \ --action deny \ --direction EGRESS \ --rules all \ --destination-ranges 0.0.0.0/0 \ --priority 10 \ --enable-logging
IP ์ฃผ์๊ฐ 203.0.113.114
์ธ ์์คํ
์ด TCP ํฌํธ 80์์ VM1๋ก ์ฐ๊ฒฐ์ ์๋ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค.
- VM1์ด
203.0.113.114
์ ํธ๋ํฝ์ ํ์ฉํ๋ฉด VM1์ ๊ด์ ์์ ๊ท์น C์ ๋ก๊ทธ ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค. - Google Cloud ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ํ๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก ๊ท์น D์๋ ๋ถ๊ตฌํ๊ณ VM1์ ์์ ์์ฒญ์ ์๋ตํ๋๋ก ํ์ฉ๋ฉ๋๋ค. ์์ ์์ฒญ์ด ํ์ฉ๋๋ ๊ฒฝ์ฐ ์ค์ ๋ ์๋ต์ ๋ชจ๋ ์ข ๋ฅ์ ์ด๊ทธ๋ ์ค ๊ท์น์ผ๋ก ์ฐจ๋จํ ์ ์์ต๋๋ค.
- ๊ท์น D๊ฐ ์ ์ฉ๋์ง ์์ ๊ณ ๋ ค๋์ง ์์ผ๋ฏ๋ก ๊ท์น D์ ๋ก๊ทธ ํญ๋ชฉ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ๋ฐฉํ๋ฒฝ ๋ก๊ทธ ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
ํ๋ | ๊ฐ |
---|---|
connection | src_ip=203.0.113.114 src_port=[EPHEMERAL_PORT] dest_ip=10.10.0.99 dest_port=80 protocol=6 |
disposition | ํ์ฉ๋จ |
rule_details | reference = "network:my-vpc/firewall:rule-c" priority = 10 action = ALLOW source_range = 0.0.0.0/0 ip_port_info = tcp:80 direction = ingress |
์ธ์คํด์ค | project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc | project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location | continent country region city |
๋ฐฉํ๋ฒฝ ๋ก๊ทธ ํ์
VM ์ธ์คํด์ค๋ฅผ ์ค๊ฐ๋ ํธ๋ํฝ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๊ฒฝ์ฐ ์ฌ์์ ๋ฐ๋ผ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋ ๊ฐ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ํด Cloud Logging์ ๋ก๊ทธ ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค. ๋ก๊ทธ ๊ธฐ๋ก์ Logging LogEntry์ JSON ํ์ด๋ก๋ ํ๋์ ํฌํจ๋ฉ๋๋ค.
๋ก๊ทธ ๋ ์ฝ๋์๋ ๋ชจ๋ ๋ก๊ทธ ๋ ์ฝ๋์ ํต์ฌ ํ๋์ธ ๊ธฐ๋ณธ ํ๋์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๋ฉํ๋ฐ์ดํฐ ํ๋๊ฐ ์์ต๋๋ค. ๋ฉํ๋ฐ์ดํฐ ํ๋๋ฅผ ํฌํจํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๋๋ฅผ ์๋ตํ๋ฉด ์คํ ๋ฆฌ์ง ๋น์ฉ์ ์ ์ฝํ ์ ์์ต๋๋ค.
์ผ๋ถ ๋ก๊ทธ ํ๋๋ ํ๋์ด๊ธฐ๋ ํ ๊ฐ์ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ํ๋์๋ ์ง์ ๋ ํ๋์ 2๊ฐ ์ด์์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด connection
ํ๋๋ IpConnection
ํ์์ด๋ฉฐ ์์ค ๋ฐ ๋์ IP ์ฃผ์, ํฌํธ, ํ๋กํ ์ฝ์ด ๋จ์ผ ํ๋์ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ํ๋๋ ๋ค์ ํ์ ์ค๋ช
๋์ด ์์ต๋๋ค.
ํ๋ | ์ค๋ช | ํ๋ ์ ํ: ๊ธฐ๋ณธ ๋๋ ์ ํ์ ๋ฉํ๋ฐ์ดํฐ |
---|---|---|
connection | IpConnection ์ด ์ฐ๊ฒฐ์ ์์ค ๋ฐ ๋์ IP ์ฃผ์, ์์ค ๋ฐ ๋์ ํฌํธ, IP ํ๋กํ ์ฝ์ ์ค๋ช ํ๋ 5-ํํ์ ๋๋ค. |
๊ธฐ๋ณธ |
disposition | ๋ฌธ์์ด์ ์ฐ๊ฒฐ์ด ALLOWED ์ธ์ง DENIED ์ธ์ง๋ฅผ ๋ํ๋
๋๋ค. |
๊ธฐ๋ณธ |
rule_details | RuleDetails ์ด ์ฐ๊ฒฐ์ ์ ์ฉ๋ ๊ท์น์ ์ธ๋ถ์ ๋ณด์ ๋๋ค. |
|
rule_details.reference ํ๋ |
๊ธฐ๋ณธ | |
๊ธฐํ ๊ท์น ์ธ๋ถ์ ๋ณด ํ๋ | ๋ฉํ๋ฐ์ดํฐ | |
์ธ์คํด์ค | InstanceDetails VM ์ธ์คํด์ค ์ธ๋ถ์ ๋ณด์ ๋๋ค. ๊ณต์ VPC ๊ตฌ์ฑ์์ project_id ๋ ์๋น์ค ํ๋ก์ ํธ์ ํ๋ก์ ํธ ID์ ํด๋นํฉ๋๋ค. |
๋ฉํ๋ฐ์ดํฐ |
vpc | VpcDetails VPC ๋คํธ์ํฌ ์ธ๋ถ์ ๋ณด์ ๋๋ค. ๊ณต์ VPC ๊ตฌ์ฑ์์ project_id ๋ ํธ์คํธ ํ๋ก์ ํธ์ ํ๋ก์ ํธ ID์ ํด๋นํฉ๋๋ค. |
๋ฉํ๋ฐ์ดํฐ |
remote_instance | InstanceDetails ์ฐ๊ฒฐ์ ์๊ฒฉ ์๋ํฌ์ธํธ๊ฐ Compute Engine์ ์์นํ VM์ธ ๊ฒฝ์ฐ VM ์ธ์คํด์ค ์ธ๋ถ์ ๋ณด๊ฐ ์ด ํ๋์ ์ ๋ ฅ๋ฉ๋๋ค. |
๋ฉํ๋ฐ์ดํฐ |
remote_vpc | VpcDetails ์ฐ๊ฒฐ์ ์๊ฒฉ ์๋ํฌ์ธํธ๊ฐ VPC ๋คํธ์ํฌ์ ์๋ VM์ธ ๊ฒฝ์ฐ ์ด ํ๋๋ ๋คํธ์ํฌ ์ธ๋ถ์ ๋ณด๋ก ์ฑ์์ง๋๋ค. |
๋ฉํ๋ฐ์ดํฐ |
remote_location | GeographicDetails ์ฐ๊ฒฐ์ ์๊ฒฉ ์๋ํฌ์ธํธ๊ฐ VPC ๋คํธ์ํฌ์ ์ธ๋ถ์ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์์น ๋ฉํ๋ฐ์ดํฐ๊ฐ ์ด ํ๋์ ์ ๋ ฅ๋ฉ๋๋ค. |
๋ฉํ๋ฐ์ดํฐ |
IpConnection
ํ๋ | ์ ํ | ์ค๋ช |
---|---|---|
src_ip | ๋ฌธ์์ด | ์์ค IP ์ฃผ์์
๋๋ค. ์์ค๊ฐ Compute Engine VM์ธ ๊ฒฝ์ฐ src_ip ๋ ๊ธฐ๋ณธ ๋ด๋ถ IP ์ฃผ์์ด๊ฑฐ๋ VM ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ณ์นญ IP ๋ฒ์์ ์๋ ์ฃผ์์
๋๋ค. ์ธ๋ถ IP ์ฃผ์๋ ํ์๋์ง ์์ต๋๋ค. VM์ด ํจํท ํค๋์์ IP ์ฃผ์๋ฅผ ํ์ธํ ๋ VM์์ TCP ๋คํ๋ฅผ ์คํํ ๊ฒ๊ณผ ๋์ผํ๊ฒ ๋ก๊น
์ VM์ IP๊ฐ ํ์๋ฉ๋๋ค. |
src_port | ์ ์ | ์์ค ํฌํธ |
dest_ip | ๋ฌธ์์ด | ๋์ IP ์ฃผ์์
๋๋ค. ๋์์ด Google Cloud VM์ธ ๊ฒฝ์ฐ dest_ip ๋ ๊ธฐ๋ณธ ๋ด๋ถ IP ์ฃผ์์ด๊ฑฐ๋ VM ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ณ์นญ IP ๋ฒ์์ ์๋ ์ฃผ์์
๋๋ค. ์ธ๋ถ IP ์ฃผ์๋ ์ฐ๊ฒฐ์ ์ฌ์ฉ๋ ๊ฒฝ์ฐ์๋ ํ์๋์ง ์์ต๋๋ค. |
dest_port | ์ ์ | ๋์ ํฌํธ |
ํ๋กํ ์ฝ | ์ ์ | ์ฐ๊ฒฐ์ IP ํ๋กํ ์ฝ |
RuleDetails
ํ๋ | ์ ํ | ์ค๋ช |
---|---|---|
์ฐธ์กฐ | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ํ ์ฐธ์กฐ์
๋๋ค. ํ์:"network:{network name}/firewall:{firewall_name}" |
์ฐ์ ์์ | ์ ์ | ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ฐ์ ์์์ ๋๋ค. |
action | ๋ฌธ์์ด | ALLOW ๋๋ DENY |
source_range[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ์์ค ๋ฒ์ ๋ชฉ๋ก์ ๋๋ค. |
destination_range[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋์ ๋ฒ์ ๋ชฉ๋ก์ ๋๋ค. |
ip_port_info[ ] | IpPortDetails | ๊ท์น์ IP ํ๋กํ ์ฝ ๋ฐ ์ ์ฉ ๊ฐ๋ฅํ ํฌํธ ๋ฒ์ ๋ชฉ๋ก์ ๋๋ค. |
direction | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ฐฉํฅ์ ๋๋ค(์ธ๊ทธ๋ ์ค ๋๋ ์ด๊ทธ๋ ์ค). |
source_tag[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ์์ค ํ๊ทธ ๋ชฉ๋ก์ ๋๋ค. |
target_tag[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ๋์ ํ๊ทธ ๋ชฉ๋ก์ ๋๋ค. |
source_service_account[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ์์ค ์๋น์ค ๊ณ์ ๋ชฉ๋ก์ ๋๋ค. |
target_service_account[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ๋์ ์๋น์ค ๊ณ์ ๋ชฉ๋ก์ ๋๋ค. |
source_region_code[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ์์ค ๊ตญ๊ฐ ์ฝ๋ ๋ชฉ๋ก์ ๋๋ค. |
destination_region_code[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ๋์ ๊ตญ๊ฐ ์ฝ๋ ๋ชฉ๋ก์ ๋๋ค. |
source_fqdn[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ์์ค ๋๋ฉ์ธ ์ด๋ฆ ๋ชฉ๋ก์ ๋๋ค. |
destination_fqdn[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ๋์ ๋๋ฉ์ธ ์ด๋ฆ ๋ชฉ๋ก์ ๋๋ค. |
source_threat_intelligence[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ์์ค Google Threat Intelligence ๋ชฉ๋ก ์ด๋ฆ์ ๋ชฉ๋ก์ ๋๋ค. |
destination_threat_intelligence[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ๋์ Google Threat Intelligence ๋ชฉ๋ก ์ด๋ฆ์ ๋ชฉ๋ก์ ๋๋ค. |
source_address_groups[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ์์ค ์ฃผ์ ๊ทธ๋ฃน์ ๋ชฉ๋ก์ ๋๋ค. |
destination_address_groups[ ] | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ ๋ชจ๋ ๋์ ์ฃผ์ ๊ทธ๋ฃน์ ๋ชฉ๋ก์ ๋๋ค. |
IpPortDetails
ํ๋ | ์ ํ | ์ค๋ช |
---|---|---|
ip_protocol | ๋ฌธ์์ด | ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ ์ฉ๋๋ IP ํ๋กํ ์ฝ์ ๋๋ค. ๋ชจ๋ ํ๋กํ ์ฝ์ ์ ์ฉ๋๋ฉด 'ALL'์ ๋๋ค. |
port_range[ ] | ๋ฌธ์์ด | ๊ท์น์ ์ ์ฉ ๊ฐ๋ฅํ ํฌํธ ๋ฒ์ ๋ชฉ๋ก์
๋๋ค(์: 8080-9090 ). |
InstanceDetails
ํ๋ | ์ ํ | ์ค๋ช |
---|---|---|
project_id | ๋ฌธ์์ด | VM์ด ํฌํจ๋ ํ๋ก์ ํธ์ ID |
vm_name | ๋ฌธ์์ด | VM์ ์ธ์คํด์ค ์ด๋ฆ |
์ง์ญ | ๋ฌธ์์ด | VM์ ๋ฆฌ์ |
์์ญ | ๋ฌธ์์ด | VM์ ์์ญ |
VpcDetails
ํ๋ | ์ ํ | ์ค๋ช |
---|---|---|
project_id | ๋ฌธ์์ด | ๋คํธ์ํฌ๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ ID |
vpc_name | ๋ฌธ์์ด | VM์ด ์๋ ์ค์ธ ๋คํธ์ํฌ |
subnetwork_name | ๋ฌธ์์ด | VM์ด ์๋ ์ค์ธ ์๋ธ๋ท |
GeographicDetails
ํ๋ | ์ ํ | ์ค๋ช |
---|---|---|
continent | ๋ฌธ์์ด | ์ธ๋ถ ์๋ํฌ์ธํธ์ ๋๋ฅ |
๊ตญ๊ฐ | ๋ฌธ์์ด | ์ธ๋ถ ์๋ํฌ์ธํธ์ ๊ตญ๊ฐ |
์ง์ญ | ๋ฌธ์์ด | ์ธ๋ถ ์๋ํฌ์ธํธ์ ๋ฆฌ์ |
๋์ | ๋ฌธ์์ด | ์ธ๋ถ ์๋ํฌ์ธํธ์ ๋์ |
๋ค์ ๋จ๊ณ
- ๋ก๊น ์ ์ค์ ํ๊ณ ๋ก๊ทธ๋ฅผ ๋ณด๋ ค๋ฉด ๋ฐฉํ๋ฒฝ ๊ท์น ๋ก๊น ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
- ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋ํ ํต๊ณ๋ ๋ฐฉํ๋ฒฝ ํต๊ณ๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๋ก๊ทธ ๋ฐ์ดํฐ ๋ฐ ์ด๋ฒคํธ๋ฅผ ์ ์ฅ, ๊ฒ์, ๋ถ์ ๋ชจ๋ํฐ๋งํ๋ ค๋ฉด Cloud Logging์ ์ฐธ์กฐํ์ธ์.
- ๋ก๊ทธ ํญ๋ชฉ์ ๋ผ์ฐํ ํ๋ ค๋ฉด ์ฑํฌ ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.