EC2 DB 외부접근 허용하기

hugeman·2023년 8월 11일
0

DataBase

목록 보기
1/6

아무리 해도 접근이 안되어 순서대로 정리하려고 합니다.

1. aws ec2

보안정책에 인바운드 3306을 추가한다.

2. 설정확인

mysql
/etc/mysql/mysql.conf.d
bind-address 127.0.0.1 을 주석처리 하던가, 0.0.0.0으로 수정한다.

mariadb
/etc/mysql/mariadb.conf.d
port가 3306인지 확인하고 (주석처리 되어있으면 3306이다)
bind-address를 127.0.0.1이 되어 있으면 0.0.0.0으로 전역으로 허용해준다.

3. DB user 정보 확인하기 (권한 접근이 허용되어 있는지)

전체 확인
SELECT user, host FROM mysql.user;

각 사용자 확인
SHOW GRANTS FOR 'username'@'host';

4. DCL 명렁어 모음

사용자 추가
INSERT INTO user (Host, User, Password) VALUES ('%', '계정아이디', password('비밀번호'));

모든 권한 허용 (관리자)
grant all privileges on *.* to 'root'@'%' with grant option;

접속 권한 허용 (서브 관리자)
GRANT ALL privileges ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';

외부접속 허용 제거
DELETE FROM mysql.user WHERE Host='%' AND User='아이디';

적용
FLUSH PRIVILEGES;

5. ufw 활성화 여부 확인, mariadb 재시작

포트 허용하기 EC2에서 인스턴스 생성시에는, ufw가 기본적으로 비활성화 되어있다. (비활성화인 경우에는 aws에서만 설정 하면 됨)
sudo ufw allow out 3306/tcp
sudo ufw allow in 3306/tcp

mysql 재시작 하기
sudo service mysql restart

profile
한 줄!

0개의 댓글