* 기본적인 세팅은 되어 있는 상태 입니다. (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 서버에 접속해 설정 및 사용자를 생성 합니다.

ssh 접속

host에 OpenVPN 서버의 public ip를, username에 openvpnas, 서버의 key pair까지 넣고 ssh 접속을 합니다.

 

yes 입력 후 enter

쭉 디폴트로 enter를 치면 끝에 이미지와 같이 접속 정보를 얻을 수 있습니다.

 

Admin UI 주소로 접속

해당 서버에서 자체 발행 한 인증서를 통해 SSL 접속을 제공하기 때문에 브라우저에서 접속이 안전하지 않을 수도 있음을 경고하는 것으로 고급을 클릭한 뒤 안전하지 않음으로 이동해주세요.

 

해당 Admin UI 주소로 접속한 뒤 user / password를 입력합니다.

agree 클릭

 

 

왼쪽 내비게이션 바 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 ssh 접속

private ec2 접속이 잘 되는 것을 확인할 수 있습니다.

 

 

4. EIC endpoint를 통한 접속

EC2 인스턴스에 연결하기 위한 엔드포인트로 EC2 웹 콘솔이나 AWS CLI를 통해서 Endpoint에 접근해 인스턴스로 접속할 수 있습니다.

(SSM과의 차이점은 NAT Gateway가 없어도 EIC endpoint를 통해 접속이 가능합니다.)

 

1) VPC endpoint를 생성합니다.

EC2 > 보안그룹 > 보안 그룹 생성

엔드포인트 생성 전에 보안그룹을 먼저 생성합니다. VPC는 private ec2가 있는 vpc를 선택합니다.

(인바운드 규칙은 신경쓰지 않으셔도 좋습니다.)

 

VPC > 엔드포인트 > 엔드포인트 생성

EIC 엔드포인트를 생성합니다. VPC는 private ec2가 있는 vpc를 선택합니다.

 

위에서 생성했던 보안그룹을 선택하고 서브넷은 원하는 곳으로 선택합니다. (private, public 둘 다 가능합니다.)

엔드포인트 생성 버튼을 클릭합니다.

 

엔드포인트가 사용 가능 상태가 된다면, private ec2 접속 가능합니다.

 

 

2) private ec2에 접속합니다.

 

인스턴스 연결을 클릭합니다.

 

EC2 EIC 엔드포인트를 사용하여 연결을 클릭한 뒤 연결 버튼을 클릭합니다.

 

위 이미지와 같은 화면이 확인되면 성공적으로 접속되었음을 알 수 있습니다.

 

 

+) AWS CLI를 활용한 ssh로 접속합니다.

* aws cli 설치 되어있음

 

EIC 터널링 전용 IAM 사용자를 생성하기 위해 정책을 먼저 생성 합니다.

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 사용자를 생성 합니다.

IAM > 사용자 > 사용자 생성

위에서 생성했던 정책을 연결해 사용자를 생성합니다.

 

IAM > 사용자 > 생성한 사용자 > 액세스 키 생성

해당 사용자 인증을 위한 액세스 키를 발급 받습니다.

 

터미널 위에서 ssh 접속을 시도 합니다.

 

생성했던 액세스 키로 aws configure 명령어를 통해 저장 합니다.

 

aws ec2-instance-connect ssh --instance-id <private-ec2-id> --connection-type eice

위의 명령어를 입력합니다.

 

위와 같이 접속한 화면을 확인 할 수 있습니다.

 

+ Recent posts