클라우드/공통
[클라우드] 보안그룹 설정
세브웁스
2022. 4. 29. 15:00
반응형
클라우드에 웹서비스 구축하기
생각 중인 웹 프로젝트(https)의 클라우드 아키텍처의 구성도는 다음과 같다.
이러한 구성을 하기 위해서는 VM 내부 방화벽 정책, Security List를 통한 보안설정이 필요하다.
각 Security List는 각각의 VM, Subnet, 네트워크망에 설정 가능하므로 꼼꼼히 적성해야 한다.
또한 OCI같은경우 제로 트러스트로 각각에 보안설정을 해주지 않는다면 모두 막는다.
- LoadBalancer(L4) 1
- FrontEnd 2
- BackEnd 2
- 기본 보안그룹
default Security List | |||
Ingress | 0.0.0.0/0 | TCP | 22 |
Ingress | 0.0.0.0/0 | ICMP | 3,4 |
Ingress | 10.0.0.0/16 | ICMP | 3 |
Egress | 0.0.0.0/0 | ALL | ALL |
- 로드밸런서 보안 그룹
LB Security List | |||
Ingress | 0.0.0.0/0 | TCP | 443 |
Egress | 0.0.0.0/0 | TCP | ALL |
- 웹서버 보안 그룹
WebServer Security List | |||
Ingress | 0.0.0.0/0 | TCP | 22 |
Ingress | 0.0.0.0/0 | TCP | 443 |
Ingress | 0.0.0.0/0 | ICMP | 3,4 |
Ingress | 10.0.0.0/16 | ICMP | 3 |
Egress | 0.0.0.0/0 | ALL | ALL |
- 백엔드 Security List
WAS Security List | |||
Ingress | 0.0.0.0/0 | TCP | 22 |
Ingress | 10.0.0.0/16 | TCP | 3306 |
Ingress | 10.0.0.0/16 | TCP | 서비스IP |
Ingress | 0.0.0.0/0 | ICMP | 3,4 |
Ingress | 10.0.0.0/16 | ICMP | 3 |
Egress | 0.0.0.0/0 | ALL | ALL |
원래라면 백엔드 또한 로드밸런서를 통해 구현하여 헬스케어를 하며 로드밸런싱 하는 것이 좋다.
이 솔루션의 경우 Nginx 내부 기능 속에 Upstram이라는 것을 이용하여 Was1,2로 나뉘어 전송한다.
TroubleShooting
1. 502 에러
L4 로드밸런서로 세팅하면 문제가 생기지 않으나, L7 로드밸런서로 Webserver를 나눴을 때에 502 Error
-> OCI 내부에서 Webserver를 나눌 때에는 L4 로드밸런서를 사용할 것
- L4 로드밸런서는 IP, Port를 기준으로 부하분산
- L7 로드밸런서는 IP, Port, URL, Payload, Http Header, Cookie 등의 내용기반 부하분산
- L7 로드밸런서는 L4 로드밸런서와 다르게 데이터를 분석하여 처리 가능 but 자원 소모가 큼
2. 내부망 접속 관련 SSH키 이슈
- puttygen을 이용하여 ssh키를 만들 때 ppk형식으로 저장이 된다. 하지만 이렇게 저장하지 않고 메뉴바에 있는 Conversions-ExportOpenSSHkey를 눌러 파일을 만들어야 한다.
- /root/. ssh 위치에 authorized_keys라는 파일이 존재한다. 일단 내부망이기 때문에 외부에서 접속하기 위해서는 DMZ존에 있는 Webserver를 통해 접속하거나, Bastion Server를 만들어 내부망에 접속한다. 본 솔루션은 전송해야 할 파일크기가 크지 않기 때문에 따로 Bastion Server를 두지 않고 수행하였다. Webserver에 개인키를 전송한 뒤 Webserver에서 개인키를 이용하여 내부망에 존재하는 Was로 접속한다. 이후 Was의 authorized_keys에 공개키를 등록( 본인의 ssh키를 복사한 뒤 뒤에 붙여주면 됨 )을 해주고 ssh접속과 scp접속을 원활하게 수행하도록 한다.
- 개인키를 이용한 ssh 접속
# ssh -i 개인키파일 아이디@IP
ssh -i /home/id_rsa root@192.168.56.4
- 개인키를 이용한 scp 전송
# scp -i 개인키 파일 아이디@IP:/전송경로
scp -i /home/id_rsa root@192.168.56.4:/home/
반응형