[AWS Client VPN Enpoint] Open VPN ์ด์ฉํ์ฌ ์ธ๋ถ ๋คํธ์ํฌ์์ AWS ํด๋ผ์ฐ๋ ๋ด๋ถ ๋คํธ์ํฌ์ ์ ๊ทผํ๊ธฐ
๐โ๏ธ AWS Client VPN Endpoint๋?
- ์ฌ๋ด ๋คํธ์ํฌ์ AWS ๋ฆฌ์์ค ๋ฐ ๋ฆฌ์์ค์ ์์ ํ๊ฒ ์ก์ธ์ค ํ ์ ์๋๋ก ์ง์ํ๋ ํด๋ผ์ด์ธํธ ๊ธฐ๋ฐ managed VPN ์๋น์ค.
- Client VPN์ ์ฌ์ฉํ๋ฉด OpenVPN ๊ธฐ๋ฐ VPN ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์์น์์ ๋ฆฌ์์ค์ ์ก์ธ์ค ํ ์ ์๋ค.
- AWS ์ธ๋ถ์์ AWS ํด๋ผ์ฐ๋ ๋ด๋ถ ๋คํธ์ํฌ์ ์ ๊ทผํ๊ณ ์ ํ๋๋ฐ Client ์ชฝ VPN ์ฅ๋น๊ฐ ์๋ ๊ฒฝ์ฐ, Client VPN Endpoint๋ฅผ ์ด์ฉํ ์ ์๋ค.
๐จ To-Be Architecture
1๏ธโฃ ์์ฑ ์ ํ์ ์ฌ์ ์์ - ์๋ฒ ์ธ์ฆ์ ์์ฑ ๋ฐ ACM ์ ๋ก๋
AWS Cloud๋ก ๋ค์ด์ค๋ ์ฒซ๋ฒ์งธ ์ง์ ์ ์์ Client ์ธ์ฆ์ด ์คํ๋๋ค. ์ธ์ฆ์ ์ฑ๊ณตํด์ผ client๋ Client VPN ์๋ํฌ์ธํธ๋ก ์ฐ๊ฒฐํ ์ ์๊ณ VPN ์ธ์ ์ด ๋งบ์ด์ง๋ค. Client VPN Endpoint๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ๋ฐ๋์ AWS Certificate Manager์ server ์ธ์ฆ์๊ฐ ์์ด์ผ ํ๋ค.
- Mutual Authentication
- client์ server ๊ฐ์ ์ธ์ฆ์ ํ๊ธฐ ์ํด์๋ certificate authority (CA)๋ก๋ถํฐ ๋ฐํ๋ฐ์ ๋์งํธ ์ฆ๋ช ์์ธ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ค.
- mutual authentication์ ์ํด์๋,
- server ์ธ์ฆ์์ ํค & ํ๋ ์ด์์ client ์ธ์ฆ์์ ํค๋ฅผ ์์ฑํ๋ค.
(easy RSA๋ฅผ ์ด์ฉํ ์ธ์ฆ์ ์์ฑ์ ์ํด ์ฐธ๊ณ : AWS Document, ๊ธฐ์ ๋ธ๋ก๊ทธ) - AWS Certificate Manager (ACM)์ server ์ธ์ฆ์์ ํ๋ผ์ด๋น ํค, ๊ทธ๋ฆฌ๊ณ CA์ ๋ํด ์ ๋ก๋ํด์ผ ํ๋ค.
- server ์ธ์ฆ์์ ํค & ํ๋ ์ด์์ client ์ธ์ฆ์์ ํค๋ฅผ ์์ฑํ๋ค.
2๏ธโฃ Client VPN Endpoint ์์ฑํ๊ธฐ
1. Client๊ฐ ํ ๋นํ CIDR ๋ฒ์ ์ ์
- ์ฐ๊ฒฐํ VPC์ CIDR ๋ฐ VPC์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ค๋ฅธ ๋คํธ์ํฌ ๋ฒ์์ ์ค๋ณต๋์ด์๋ ์ ๋๋ค.
- /22 ~ /12 ์ฌ์ด์ ๋ฒ์๋ก CIDR ์ ์ ๊ฐ๋ฅ. (ex: 10.0.0.0/22)
- Client VPN ์๋ํฌ์ธํธ๋ฅผ ์์ฑํ ํ์๋ ํด๋ผ์ด์ธํธ ์ฃผ์ ๋ฒ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
2. ์ธ์ฆ ๋ฐฉ์ ์ ํ
- ์๋ฒ & ํด๋ผ์ด์ธํธ ์ธ์ฆ์ ARN : ๋ชจ๋ ์ฌ์ ์ ACM์ import ํ๋ ์ธ์ฆ์๋ฅผ ์ ๋ ฅํ๋ค.
- ์ธ์ฆ ์ต์ : mutual authentication ์ ํ
3. (์ ํ) Connection Logging ํ์ฑํ
- Client VPN Endpoint์ ์ฐ๊ฒฐ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๋ค.
- ๋ก๊น ์ ์ํด์๋ ํด๋น ๊ณ์ ์ CloudWatch Logs์ ์ฐ๊ฒฐ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ ๋ก๊ทธ ๊ทธ๋ฃน์ด ์์ฑ๋์ด ์์ด์ผ ํ๋ค.
4. (์ ํ) Other Parameters
- ์ ์ก ํ๋กํ ์ฝ : UDP(default)
- split-tunnel ํ์ฑํ : ํ์ฑํ(์ฐธ๊ณ : Split-tunnel on AWS Client VPN endpoints)
- VPN ID : Client VPN Endpoint ์์ฑ ์, VPC๋ฅผ ๋ช ์ํ๋ฉด ํด๋น VPC ๋ด์ Subnet๋ค๊ณผ๋ง ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค. ๋ช ์ํ์ง ์์ผ๋ฉด ๋ชจ๋ VPC์ ์ฐ๊ฒฐ ๊ฐ๋ฅํ๋ค.
5. ์์ฑ ์๋ฃํ์์ผ๋ Pending-associate ์ํ(๊ตฌ์ฑ ๋ฏธ์๋ฃ)
5-1. Target Network Association
- ์ฐ๊ฒฐํ VPC ๋ฐ Subnet์ ์ ํํ๋ค.
5-2. Route Table
- 5-1์ ์์ ๊น์ง ์๋ฃ๋๋ฉด ์์ฑํ Client VPN ์๋ํฌ์ธํธ์ ๋ผ์ฐํ ํ ์ด๋ธ์ ์์ ๊ฐ์ด ๋ผ์ฐํ ์ด ํ์ฑํ๋๋ค.
5-3. Authorization rules
- Client VPN Endpoint๋ก ์ ๊ทผ์ ํ์ฉํ ๋คํธ์ํฌ ๋์ญ์ ๋ช ์ํ๋ค. ๋ฐฉํ๋ฒฝ์ฒ๋ผ ์๋ํ๋ค.
6. AWS Client VPN Endpoint ๊ตฌ์ฑ ์๋ฃ~!
3๏ธโฃ Client์์ VPN Endpoint ์ ์ํ๊ธฐ
1. Client Configuration ํ์ผ(downloaded-client-config.ovpn)์ ๋ค์ด๋ก๋
2. downloaded-client-config.ovpn ํธ์ง
- <ca></ca> ํ๊ทธ ์๋, <cert> ํ๊ทธ์ <key> ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ค.
- <cert> : ํด๋ผ์ด์ธํธ ์ธ์ฆ์
- <key> : ํด๋ผ์ด์ธํธ ํ๋ผ์ด๋น ํค
3. Client์์ Open VPN ์คํ
- 2์์ ํธ์งํ download-client-config.ovpn ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
- VPN ์ฐ๊ฒฐ ํ AWS์ ์์นํ ์๋ฒ ์ฌ์ค IP๋ฅผ ํตํด ์ ์์ด ๋๋์ง ํ์ธ → ์ฑ๊ณต~!