Network / / 2024. 11. 5. 17:20

AWS - private 네트워크 만들기

Private 네트워크 생성

NAT 게이트웨이 생성

VPC 대시보드 -> NAT 게이트웨이 -> NAT 게이트웨이 생성

이름 : 이름 작성

서브넷 : public 서브넷 선택

탄력적 IP 할당 : 탄력적 IP 할당 버튼 클릭하여 자동 생성

이후 NAT 게이트웨이 생성 클릭

 

라우팅 테이블 생성

VPC 대시보드 -> 라우팅 테이블 -> 라우팅 테이블 생성이름 및 VPC 선택 후 생성

 

이후 라우팅 테이블 목록에서 생성된 private-router 선택

하단 메뉴의 라우팅 -> 라우팅 편집 선택

 

라우팅 추가 선택

대상 : 0.0.0.0/0

대상 : NAT 게이트웨이 -> 생성했던 nat-gateway 선택

이후 변경 사항 저장 선택

 

보안 그룹 생성

VPC 대시보드 -> 보안 그룹 -> 보안 그룹 생성

이름 및 VPC 선택

 

인바운드 규칙 -> 규칙 추가

허용할 서비스를 추가 한 후 Anywhere-IPv4 선택

 

아웃바운드 규칙은 모든 트래픽이 허용되어 있는지 확인

 

이후 보안그룹 생성

 

 

private 인스턴스 생성

EC2 대시보드 -> 인스턴스 -> 인스턴스 시작

이름 생성 및 OS 선택(Amazon Linux)

 

인스턴스 유형: t3.micro (해당 유형은 유료이니 주의)

키 페어: private용으로 새로 생성

 

네트워크 설정 -> 편집 클릭

VPC: 사용할 VPC 선택

서브넷: private-subnet 선택

퍼블릭 IP 자동 할당: 비활성화

방화벽: 기존 보안 그룹 선택

일반 보안 그룹: 생성했던 private-acl 선택

 

고급 세부 정보 -> 사용자 데이터에 public때와 마찬가지로 초기 명령어 입력

이후 인스턴스 시작

 

 

 

IAM 생성

Identity and Access Management (IAM)

-> IAM은 사용자의 신원을 확인하고

   그 사용자가 네트워크에 접속할 수 있는 권한을 관리하는 기술입니다.

 

검색 -> IAM -> IAM 대시보드로 이동

 

역할 -> 역할 생성

 

엔터티 유형은 AWS 서비스, 사용사례는 EC2로 진행

 

 

AmazonEC2RoleforSSM 검색하여 체크 후 진행

 

역할 이름 및 설명 작성후 역할 생성

 

역할 생성이 완료되었습니다.

 

 

IAM을 인스턴스에 적용하기

EC2 대시보드 -> 인스턴스

생성했던 private 인스턴스를 오른쪽 클릭 -> 보안 -> IAM 역할 수정

 

생성했던 ec2rolessm 선택 후 IAM 역할 업데이트

 

 

 

검색 -> systems manager

 

노드 관리 -> 세션 관리자 -> 세션 시작

 

세션 관리자 이름 및 대상 인스턴스 선택 후 Next -> Start Session

※ 만일 대상 인스턴스가 아무것도 표시되지 않으면 private 인스턴스를 재시작 해봅시다.

 

웹 페이지에서 private 인스턴스에 접속되고 사용할 수 있습니다.

 

 

최종 점검사항

(1) Public 인스턴스에서 Private 인스턴스로 Ping을 보낼 수 있는가?

답: 불가능함

이유: 보안 그룹 설정에서 Ping을 보낼 수 있는 ICMP 프로토콜을 허용해주지 않았기 때문

 

이를 해결하기 위해

EC2 대시보드 -> 보안 그룹 -> private-acl -> 인바운드 규칙 -> 인바운드 규칙 편집 선택

규칙 추가 선택 후

유형: 사용자 지정 ICMP - IPv4

프로토콜: 전체

소스 유형: Anywhere-IPv4

생성 후 규칙 저장

 

규칙을 저장하면 바로 ping 전송이 되는 것을 확인할 수 있습니다.

 

(2) Public 인스턴스에서 Private 인스턴스로 SSH 접속을 할 수 있는가?

답: 이미 보안 그룹에서 허용해 놓았기 때문에 가능은 하지만

      인스턴스를 생성할 때 키 페어를 사용했기 때문에 키 페어 파일을 이용해 접속해야 함

 

다른 리눅스를 통해 private의 키 파일을 전송받았고

그 파일을 이용해 private의 SSH에 암호 입력 없이 접속하였습니다.

 

 

이제 AWS에서 가상 라우터를 사이에 놓고

public 인스턴스와 private 인스턴스가 연결되도록 설정되었습니다.

public 인스턴스는 외부에서 접속이 가능하고

private 인스턴스는 외부에서는 접속이 불가능하지만 자신은 외부에 통신할 수 있으며,

public 인스턴스에서는 private 인스턴스에 접속이 가능하게 되었습니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유