개발자

ec2 우분트 인스턴스 접속 방법 보안 관리 어떻게 하는게 좋을지 고민됩니다

2023년 04월 19일조회 88

안녕하세요, 보안(로그인) 관련해서 질문이 있습니다. ec2 우분투 인스턴스를 만들고 pem 키를 발급받아서 노트북 한 대에 pem 키를 두려고 생각하고 있습니다. 접속은 로그인이 아닌 user을 만들어서 ssh ""user""@IP 이렇게 접속하도록 할 계획이에요. 궁금한 점은 이렇게 하면 보안 측에서 안좋은 점이 있을지, 보통 회사들에서 어떤 방식으로 로그인을 하도록 하는지 궁금합니다...!!!!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 4

인기 답변

동호님의 프로필 사진

SSH는 현존하는 터널링 프로토콜중 가장 안전한 연결방식을 지원하고 있습니다. 따라서 pem키와 같은 Shared 타입의 보안방식은 강력하고도 편리하죠. 즉, 연결의 보안성에 대해 데이터가 interceptor될 가능성은 현저히 적긴 합니다. 다만, pem키가 탈취되었을 때에는 그만큼 취약한게 없기에, 어느 정도 수준의 보안이 필요한지에 따라 다를 것 같습니다. 먼저, 네트워크 대역에서 서버가 물리적인 분리가 되어있지 않다는 점을 질문자님께서 말씀하신 바로 추측을 해볼 수 있는데요, AWS에서는 VPC를 통해 Subnet을 가용영역에 맞춰 분리를 해 관리할 수 있습니다. 어디서든지 Port만 열려있다면 접속할 수 있다는 바는, 바로 Private 한 환경의 Subnet을 생성해 관리하고 있지 않다라고 볼 수 있는데, 이 부분은 Private한 환경으로 구성해 두시는 것을 추천 드립니다. 저희는 백엔드 서버는 모두 Private Subnet에 구성이 되어 있습니다. 그 뒤, Public Subnet에 연결이 되어있으며 Private Subnet으로 연결이 가능한 네트워크 bridge를 생성한 뒤, Proxy서버를 모두 Public Subnet에 두고 있습니다. 이렇게 할 경우, 백엔드 서버에 물리적으로 접근할 수 있는 방법이 매우 제한적이게 되는데, Private Subnet으로 갈 길을 열어줘야 하는 상황이 만들어 지죠. 이 때 저희는 SSH 터널링을 Bastion Host로 활용할 인스턴스를 하나 만듭니다. Public Subnet(외부에서 접속 가능) - Bastion Host - Private Subnet(외부 접속 불가능) 해당 Bastion Host에만 Private Subnet 22번 포트를 열어두시게 된다면, Public Subnet에 존재하는 Bastion Host에서만 안전하게 접근이 가능하도록 서버를 만들 수 있습니다. 이 때 여러 방법이 있겠지만, 저희는 사내에서는 Jump Host(Using bastion host)를 이용하여 바로 Private Subnet으로 들어가구요, 사외일 경우, 사내 VPN서버(혹은 Bastion Host 내부에 VPN서버를 만듭니다! 이것도 좋은 방법이에요)에 접근하여 백엔드 서버로 직접 접근할 수 있게 활용합니다. 또한 VPN클라이언트(접속자)는 단순 ID/PW로만 가능한 것이 아니라 안전한 방식으로 연결되게 활용하고 있는데요, 세상에 완벽한 보안이 없다 라는 말이 있는것 처럼, 해당 구성도 사실상 마음만 먹으면 돌파할 수 있는 수준이기는 합니다. 위 구성은 회사에서 사용하기에 가장 안전한 보안방식이라 생각하고 있습니다. 만약, Pem키만을 들고 편리하게 사용하실 정도의 수준만 이라면, 회사 VPN만 활용하셔도 충분하긴 합니다. '보안'을 신경쓰고 계신다면, 백엔드 서버를 Private Subnet(사설 네트워크)에 격리시키는 것을 가장 먼저 고려 해보세요!

Pino님의 프로필 사진

저는 개인 프로젝트에서는 크게 신경을 쓰진 않지만 회사에서는 본인 혹은 회사의 IP만 접속 가능하게 설정하고 운영합니다.

권혁진님의 프로필 사진

추가적으로 ec2에 있는 ACL에 질문자님 아이피에서만 ssh 접속할수 있게 설정하시면 될거 같습니다.

커리어리 AI 봇님의 프로필 사진

EC2 인스턴스에 대한 접근 보안을 유지하기 위해 여러 가지 방법을 사용할 수 있습니다. 현재 언급한 방법은 기본적인 방법입니다만, 추가적으로 다음과 같은 보안 관리 방안을 고려해볼 수 있습니다. 1. SSH 키 쌍 사용: '.pem' 파일을 사용하는 것은 좋은 시작입니다. 이 방식은 비밀번호를 사용하는 것보다 더 안전한 방법입니다. 키 쌍을 사용하면 비밀번호 무력화 공격에 대한 위험이 줄어듭니다. 2. 보안 그룹 설정: EC2 인스턴스의 보안 그룹을 설정하여 허용되는 IP 주소와 포트를 제한할 수 있습니다. 가능한 한 특정 IP 주소 범위로 제한하여 SSH 접근을 허용하도록 설정하세요. 3. 기본 포트 변경: SSH 기본 포트(22번)를 다른 포트로 변경하여 공격자들로부터의 무작위 포트 스캔으로 인한 위험을 줄일 수 있습니다. 4. 사용자 관리: 서버에 접근할 수 있는 사용자를 제한하고, 각 사용자에게 개별 SSH 키를 할당하세요. 이렇게 하면 사용자 간에 공유되는 비밀번호나 키가 없어져 보안이 강화됩니다. 5. Fail2ban 등의 소프트웨어 사용: Fail2ban과 같은 소프트웨어를 사용하여 반복적인 로그인 시도를 감지하고, 이러한 IP 주소를 차단함으로써 보안을 강화할 수 있습니다. 6. MFA (Multi-Factor Authentication) 사용: MFA를 사용하여 로그인 과정에 추가적인 인증 단계를 도입할 수 있습니다. Google Authenticator와 같은 앱을 사용하여 인증 코드를 생성하도록 설정할 수 있습니다. 7. 정기적인 SSH 키 업데이트: SSH 키를 정기적으로 업데이트하고, 이전 키를 사용 중인 사용자들에게 새로운 키를 할당하세요. 이렇게 하면 키가 누출되었을 경우의 위험을 줄일 수 있습니다. 대부분의 회사들은 위와 같은 보안 방안을 적용하여 서버 접근을 관리하고 있습니다. 다양한 보안 방법을 도입하여 서버에 대한 접근을 제한하고 보안을 강화할 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!