(bastion host 보안그룹)보안 그룹 생성한 후에 인바운드 규칙에는 로컬 PC에서 bastion host에 ssh 연결이 가능해야 하기 때문에 위와 같이 설정해 주었습니다. 규칙 편집 시에, 소스 카테고리에서 '내 IP'를 설정하면 자동으로 본인 아이피가 입력이 됩니다. 여기서 'sg-'로 시작하는 보안그룹 ID를 복사 해 둡니다. 바로 다음 단계에서 사용해야 하게 됩니다. (web server 보안그룹) 마찬가지로 web server를 위한 보안그룹을 생성하고 인바운드 규칙을 설정하겠습니다. SSH 규칙의 소스에 아까 복사해둔 bastion의 보안그룹 ID를 입력합니다. 위와 같이 설정하면, bastion 보안그룹에 속해 있는 인스턴스만 web server쪽으로 접근이 가능해집니다. Bastion Host? Bastion Host는 일반적으로 Amazon VPC (Virtual Private Cloud)의 Public Subnet에 있는 Amazon EC2 인스턴스에서 실행됩니다. Bastion Host 운영 2) WebServer Instance1 2. Security Group 2) WebServer Instance1 B. VPC 2. Subnet 3. RouteTable 4. ACL C. SSH 접속 2. pem 파일 업로드 3. Private Subnet으로 ssh 접속 Bastion Host 운영 목적 Public 서버 1대에서 하루동안 발생된 로그인 실패 (약 11,000건) 탐지목록입니다. 이와 같이 Public서버는 보통 하루에 수만~수십만건의 계정 탈취 공격을 받습니다. Bastion Host 운영 시, Private Instance에서 발생되는 계정 액세스 로그들을 한곳에서 취합 및 제어하여 관리가 보다 용이해집니다. 또한, PLURA V5에서는 공개키 로그인 성공 시, 해당 로그 필터탐지 하여 Private Instance로 액세스한 IP 주소, 생성일 등 확인할 수 있습니다. 참조 로컬 시스템에서 프라이빗 Amazon Relational Database Service(RDS) DB 인스턴스에 연결하고 싶습니다. Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 Bastion(점프) 호스트로 사용하여 이 작업을 수행하려면 어떻게 해야 하나요? 간략한 설명Amazon EC2 인스턴스를 점프 서버로 사용하여 로컬 시스템에서 프라이빗 Amazon RDS DB 인스턴스에 연결하려면 다음 단계를 따르세요.
중요:프라이빗 Amazon RDS 또는 Amazon Aurora DB 인스턴스에 연결하려면 VPN 또는 AWS Direct Connect를 사용하는 것이 가장 좋습니다. 이러한 옵션을 사용할 수 없다면 Bastion 호스트를 사용합니다. 다음 예제 구성은 보안 그룹을 사용하여 액세스를 제한합니다. 그러나 연결을 보다 안전하게 하기 위해 서브넷의 네트워크 액세스 제어 목록(네트워크 ACL)을 제한할 수 있습니다. 0.0.0.0/0 대신 더 작은 범위를 사용하도록 인터넷 게이트웨이의 라우팅 범위를 제한할 수도 있습니다. 예를 들어 인터넷 게이트웨이를 추가할 때 필요한 CIDR 범위만 대상의 라우팅 테이블에 추가합니다. 자세한 정보는 라우팅 옵션 예제를 참조하세요. 해결 방법다음 예제 구성은 Amazon Virtual Private Cloud(Amazon VPC)에 있는 Amazon RDS for MySQL 인스턴스에 대한 것입니다. 인스턴스에는 EC2 인스턴스에 대해 설정된 보안 그룹이 있습니다. EC2 인스턴스 시작 및 구성
RDS DB 인스턴스의 보안 그룹 구성참고: 하나 이상의 EC2 인스턴스를 RDS 데이터베이스에 자동으로 연결하려면 EC2 인스턴스를 RDS 데이터베이스에 자동으로 연결을 참조하세요.
보안 그룹에 대한 이 구성은 EC2 인스턴스의 프라이빗 IP 주소에서 수신되는 트래픽을 허용합니다. EC2 인스턴스와 RDS DB 인스턴스가 동일한 VPC를 사용하는 경우 RDS DB 인스턴스의 라이팅 테이블을 수정할 필요가 없습니다. VPC가 다른 경우 VPC 피어링 연결을 생성하여 해당 VPC 간의 연결을 허용합니다. 참고: 확장성이 더 높은 솔루션을 사용하는 경우에는 주의해야 합니다. 예를 들어 보안 그룹 규칙에서 보안 그룹 ID를 사용하는 경우, 단일 인스턴스에 대한 액세스를 제한하지 않는지 확인합니다. 대신 특정 보안 그룹 ID를 사용하는 모든 리소스로 제한해야 합니다. 로컬 시스템에서 RDS DB 인스턴스에 연결사용하는 클라이언트에 따라 RDS DB 인스턴스에 연결하는 단계가 다릅니다. 자세한 내용은 Amazon RDS DB 인스턴스에 연결을 참조하세요. MySQL을 사용하는 경우 SSL을 사용하여 클라이언트 애플리케이션과 Amazon RDS 간의 연결을 암호화하는 것이 모범 사례입니다. 다음 예제에서는 MySQL Workbench 클라이언트를 사용하여 배스천 호스트에 연결합니다.
SSH 터널을 사용하여 로컬 MySQL 클라이언트에서 프라이빗 RDS 인스턴스로 연결하려면 다음 명령을 참조하세요. 리눅스 또는 macOS: 다음 명령을 실행합니다.
참고: 사용자, server_ip 및 mysql_user를 자신의 정보로 바꿉니다. Windows PowerShell:
참고: filename 및 username을 사용자 정보로 바꿉니다. EC2_Endpoint, port_number, RDS_Endpoint 및 Port_number를 RDS 인스턴스에 대한 정보로 바꿉니다. |