AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식

RDS, Aurora Cluster 의 Master user 의 의의 및 특징 (MySQL 기준)

`O` 2024. 1. 15. 02:21
728x90
반응형

해당 페이지에서는 RDS, Aurora Cluster 를 사용시, 운영자 계정으로 사용하는 Master user 의 의의 및 특징에 대해서 다룬다.

 

 

이 페이지는 아래의 AWS 공식 Document 를 참조한다.

 

[1] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.MasterAccounts.html

 

[2] https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.MasterAccounts.html

 

또한, 이 글은 이전 게시글과 연관 되어 있다.

 

[3] 2022.05.10 - [AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식] - RDS, Aurora Cluster 에서의 AWS, DBA 관리 영역

 

 

RDS, Aurora Cluster 의 Master user 란?

 

[3] 의 내용을 확인한다면 RDS, Aurora Cluster 에서는 super user 를 사용 할 수 없다는 것을 확인 할 수 있다.

그러나 DB 에서는 super user 를 사용 할 수 없어도 결국 최상위 운영 user 가 필요하다. 그래서 AWS 에서는 master user 라 하여 super user 와 100% 동일한 권한은 아니어도 대부분의 운영 작업을 수행 할 때 필요한 계정을 부여 해 준다.

 

master user 가 정확히 어떤 권한을 부여 받는지는 [1]. [2] 를 참고 하면된다.

 

 

RDS MySQL, Aurora MySQL Cluster 의 Master user 특징 (MySQL 기준)

 

또한, 온프레미스 DB 에서 super user 를 사용하다 RDS, Aurora Cluster 의 master user 를 사용하다 보면 생각 해 보게 될 수 있는 의의 및 의문들 또한 생기게 되는데 대표적인 사항들은 아래와 같다.

 


- RDS, Aurora MySQL 에서 master user 의 접속 가능 host 는 왜 % 로 만들어지는가

크게 두가지의 이유가 있다.

 

하나는 RDS 및 Aurora Cluster 의 instance 가 구성되는 IP 정보는 failover 혹은 내부 maintenance 등의 이유로 구성되는 host 가 교체되는 경우가 있는데 (DB 환경은 그대로 유지) 이 때, 고정 IP 를 사용시, host 가 교체된 상태에서 접속이 불가할 수 있다.

 

두번째는 RDS 및 Aurora Cluster 의 instance 들은 endpoint 기반으로 운영되는 것을 지향하기 때문에 고정 IP 설정을 하지 않는다.

 

- Master user 는 삭제 가능한가

MySQL 기준으로는 가능하다. 이는 아래의 test 를 통해 확인 할 수 있다.

[Test]

$ mysql -h cse-aurora-mysql-8-test-instance-1-reader.csssomh1rwkc.ap-northeast-2.rds.amazonaws.com -u admin -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 269138
Server version: 8.0.32 Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user, host from mysql.user;
+-----------------------+-----------+
| user                  | host      |
+-----------------------+-----------+
| AWS_COMPREHEND_ACCESS | %         |
| AWS_LAMBDA_ACCESS     | %         |
| AWS_LOAD_S3_ACCESS    | %         |
| AWS_SAGEMAKER_ACCESS  | %         |
| AWS_SELECT_S3_ACCESS  | %         |
| admin                 | %         |
| max                   | %         |
| max2                  | %         |
| rds_superuser_role    | %         |
| rdsrepladmin          | %         |
| repl_user             | %         |
| test                  | %         |
| test1                 | %         |
| test2                 | %         |
| test3                 | %         |
| mysql.infoschema      | localhost |
| mysql.session         | localhost |
| mysql.sys             | localhost |
| rdsadmin              | localhost |
+-----------------------+-----------+
19 rows in set (0.00 sec)

mysql> drop user `admin`@`%`;
Query OK, 0 rows affected, 1 warning (0.00 sec)


- master user 가 없으면 어떤 어려움이 있을까

Master user 가 없어지는 것 자체가 DB 에 영향을 미치지 않지만 master user 의 권한을 동일하게 받은 관리자 계정이 없을 시, Master user 의 권한이 필요한 작업 수행이 불가하게 된다.

 

그러나 이에 대해서 삭제 후 이슈가 생겨서 master user 복원이 필요시에는 instance 수정 메뉴에서 P/W 재설정만 해주면instance 가 다시 master user 를 생성한다.

 

 

반응형