AWS RDS MySQL을 사용할 때 외부 IP 접근을 설정하는 방법은 크게 두 가지로 나눌 수 있습니다:
- AWS 보안 그룹을 이용한 접근 제어
- MySQL 사용자 테이블의 host 컬럼을 이용한 접근 제어
1. AWS 보안 그룹을 이용한 접근 제어
1-1. 목적: AWS 보안 그룹은 네트워크 수준에서 접근을 제어합니다.
1-2. 방법: AWS Management Console을 사용하여 RDS 인스턴스에 연결된 보안 그룹에서 인바운드 규칙을 설정합니다.
1-3. 장점:
- 네트워크 레벨에서 보안: RDS 인스턴스에 연결하려면, 해당 IP가 보안 그룹의 규칙을 통해 허용되어야 하므로 네트워크 외부에서의 접근을 제어할 수 있습니다.
- 관리 용이성: 관리가 직관적이고 AWS의 다른 서비스들과 연동되어 설정이 간편합니다.
- 외부 서비스와의 통합: AWS의 다양한 서비스와 쉽게 연동할 수 있습니다.
1-4. 단점:
- SQL 레벨 권한 설정 불가능: 보안 그룹은 네트워크 레벨에서의 접근 제어만 제공하므로, MySQL 내부에서의 세밀한 권한 제어는 불가능합니다.
- 다양한 사용자 관리 어려움: 여러 MySQL 사용자에 대해 IP 주소별로 세부적인 접근을 관리하려면 보안 그룹을 추가적으로 설정해야 할 수 있습니다.
2. MySQL 사용자 테이블의 host 컬럼을 이용한 접근 제어
2-1. 목적: MySQL의 사용자 권한 시스템을 통해 데이터베이스 레벨에서 접근을 제어합니다.
2-1. 방법: MySQL user 테이블의 host 컬럼을 사용하여 특정 IP에서만 로그인할 수 있도록 제한합니다.('username'@'192.168.56.102' )
2-3. 장점:
- 세밀한 제어: MySQL 사용자별로 접근할 수 있는 IP 범위를 지정할 수 있어, 네트워크 상에서의 정확한 접근 제어가 가능합니다.
- 데이터베이스 레벨에서의 제어: MySQL의 사용자 권한 시스템을 활용해, 데이터베이스에 접근할 수 있는 IP 외에도 다양한 권한을 세부적으로 설정할 수 있습니다. 예를 들어, 특정 사용자가 특정 DB나 테이블에만 접근하도록 할 수 있습니다.
2-4. 단점:
- 보안 그룹을 우회할 수 없음: 보안 그룹을 통해 IP 접근이 허용되지 않으면, MySQL에서 접근 제어를 설정해도 해당 IP가 네트워크적으로 연결할 수 없으므로, MySQL 레벨의 접근 제어만으로는 유효하지 않습니다.
- 관리 복잡성 증가: 사용자 수가 많아지거나 다양한 접근이 필요한 경우, MySQL 내에서의 권한 관리가 복잡해질 수 있습니다.
AWS 보안 그룹 | MySQL 사용자 테이블의 host 컬럼 | |
적용 범위 | 네트워크 레벨 (EC2 인스턴스, VPC 등) | 데이터베이스 레벨 (특정 사용자와 IP 제한) |
설정 위치 | AWS Management Console 또는 CLI | MySQL 쿼리 (예: CREATE USER 명령) |
관리 용이성 | AWS에서 한 번에 관리 가능 | MySQL에서 개별적으로 관리 필요 |
네트워크 접근 제어 | 네트워크 트래픽을 차단하여 접근 제어 | SQL 레벨에서 사용자별 IP 접근 제어 |
보안 레벨 | 네트워크 보안 (IP 기반) | MySQL 사용자별 접근 보안 (세부 권한 설정) |
연동 | AWS와 다른 서비스들과 연동 가능 | MySQL 내부에서만 관리 |
결론적으로 AWS 보안 그룹은 네트워크 수준에서의 접근 제어를 제공하며, MySQL 사용자 테이블의 host 컬럼은 데이터베이스 수준에서 특정 사용자에 대해 IP 접근을 제한하는 방법입니다. 따라서 두가지 방법은 상호 보완적인 방식으로 운영될 수 있으며, AWS 보안 그룹을 사용하여 기본적인 네트워크 접근 제어를 하고, MySQL host 컬럼을 통해 세부적인 사용자별 제어를 추가로 하는 것이 가장 안전한 접근 방법입니다.
'aws' 카테고리의 다른 글
AWS S3에 파일 업로드, 다운로드, 삭제하기(feat. spring boot) (1) | 2024.12.18 |
---|---|
S3를 이용한 이미지 서버 만들기 (3) | 2024.12.17 |
AWS RDS 서버 만들기 (0) | 2024.11.25 |
putty를 이용해서 AWS EC2에 접속하기 (0) | 2024.11.25 |
AWS EC2 서버 만들기 (1) | 2024.11.25 |