* 기본적인 세팅은 되어 있는 상태 입니다. (VPC, Nat GW, ALB, EC2(private subnet) 구성)
* private ec2: etech-private-ec2(10.0.11.130)
3. OpenVPN을 통한 접속
OpenVPN은 가상 사설 네트워크(VPN)를 구축하여 외부에서 안전하게 인프라에 접속할 수 있도록 합니다.
사용자는 OpenVPN 클라이언트를 사용하여 VPN에 연결한 후 private 리소스에 접속할 수 있습니다.
1) OpenVPN 서버를 생성합니다.
더 많은 AMI 찾아보기를 클릭합니다.
openvpn을 검색하고 Marketplace AMI 중 제일 위에 있는 이미지를 선택합니다.
인스턴스 유형은 small 이상으로 잡아주시면 됩니다.
vpc는 private-ec2가 올라가있는 public subnet을 선택하고 인바운드 보안 그룹 규칙은 디폴트로 설정 합니다.
(TCP/22 (SSH), TCP/943, TCP/443(웹 인터페이스에 대한 HTTPS 액세스) 및 UDP/1194)
나머지 설정은 디폴트로 두고 인스턴스 시작을 클릭합니다.
* EIP를 할당해 openvpn server의 ip가 고정이 될 수 있게 설정을 하는 것을 추천드립니다.
2) OpenVPN 서버에 접속해 설정 및 사용자를 생성 합니다.
host에 OpenVPN 서버의 public ip를, username에 openvpnas, 서버의 key pair까지 넣고 ssh 접속을 합니다.
쭉 디폴트로 enter를 치면 끝에 이미지와 같이 접속 정보를 얻을 수 있습니다.
해당 서버에서 자체 발행 한 인증서를 통해 SSL 접속을 제공하기 때문에 브라우저에서 접속이 안전하지 않을 수도 있음을 경고하는 것으로 고급을 클릭한 뒤 안전하지 않음으로 이동해주세요.
해당 Admin UI 주소로 접속한 뒤 user / password를 입력합니다.
왼쪽 내비게이션 바 CONFIGURATION > VPN Settings로 들어가 사진에 표시되어 있는 부분을 Yes로 바꿔줍니다.
스크롤을 쭉 내려서 Save Settings 버튼 클릭 해줍니다.
저는 user1으로 생성을 하였고 More Settings을 클릭하여 Password를 입력해주고 스크롤을 내려 Save Settings 버튼을 클릭 합니다.
그리고 꼭 Update Running server를 클릭해 줘야 설정값들이 업데이트됩니다.
3) 위에서 생성한 사용자로 로그인 합니다.
admin을 제외한 주소인 Client UI로 접속해 생성했던 사용자(user1)로 로그인 합니다.
접속할 사용자 OS에 맞는 클라이언트를 다운로드 한 뒤 설치 합니다.
OpenVPN server IP를 넣어주고 NEXT 버튼 클릭 후 Accept 버튼을 클릭합니다.
사용자(user1)을 넣어주고 VPN을 켜줍니다.
private ec2 접속이 잘 되는 것을 확인할 수 있습니다.
4. EIC endpoint를 통한 접속
EC2 인스턴스에 연결하기 위한 엔드포인트로 EC2 웹 콘솔이나 AWS CLI를 통해서 Endpoint에 접근해 인스턴스로 접속할 수 있습니다.
(SSM과의 차이점은 NAT Gateway가 없어도 EIC endpoint를 통해 접속이 가능합니다.)
1) VPC endpoint를 생성합니다.
엔드포인트 생성 전에 보안그룹을 먼저 생성합니다. VPC는 private ec2가 있는 vpc를 선택합니다.
(인바운드 규칙은 신경쓰지 않으셔도 좋습니다.)
EIC 엔드포인트를 생성합니다. VPC는 private ec2가 있는 vpc를 선택합니다.
위에서 생성했던 보안그룹을 선택하고 서브넷은 원하는 곳으로 선택합니다. (private, public 둘 다 가능합니다.)
엔드포인트 생성 버튼을 클릭합니다.
엔드포인트가 사용 가능 상태가 된다면, private ec2 접속 가능합니다.
2) private ec2에 접속합니다.
인스턴스 연결을 클릭합니다.
EC2 EIC 엔드포인트를 사용하여 연결을 클릭한 뒤 연결 버튼을 클릭합니다.
위 이미지와 같은 화면이 확인되면 성공적으로 접속되었음을 알 수 있습니다.
+) AWS CLI를 활용한 ssh로 접속합니다.
* aws cli 설치 되어있음
EIC 터널링 전용 IAM 사용자를 생성하기 위해 정책을 먼저 생성 합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EC2InstanceConnect",
"Effect": "Allow",
"Action": "ec2-instance-connect:*",
"Resource": "*"
},
{
"Sid": "Describe",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeInstanceConnectEndpoints"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EIC 터널링 전용 IAM 사용자를 생성 합니다.
위에서 생성했던 정책을 연결해 사용자를 생성합니다.
해당 사용자 인증을 위한 액세스 키를 발급 받습니다.
터미널 위에서 ssh 접속을 시도 합니다.
생성했던 액세스 키로 aws configure 명령어를 통해 저장 합니다.
aws ec2-instance-connect ssh --instance-id <private-ec2-id> --connection-type eice
위의 명령어를 입력합니다.
위와 같이 접속한 화면을 확인 할 수 있습니다.
'Cloud > AWS' 카테고리의 다른 글
AWS 환경 위에서 NAS 환경 구성하는 방법 (0) | 2024.04.24 |
---|---|
[EKS] eksctl로 EKS 클러스터 생성하기 (0) | 2024.04.04 |
[AWS] private EC2에 접속하는 방법 -1 (0) | 2024.03.05 |
[AWS] IoT Device Management - Bulk registration (0) | 2023.10.18 |
[AWS] Amazon OpenSearch Service 사용해보기 (0) | 2023.08.23 |