AWS(아마존 웹 서비스)에서 DB 생성할 때 필요한 권한

January 29, 2019
aws iam rds db error sql

저는 aws를 혼자 사용하지만 그래도 IAM을 철저히 활용해, 역할을 계정마다 분담해 두려고 노력하고 있습니다. aws에서도 그렇게 하는 것을 추천하고, 또 저도 혼자 그렇게 (일인 다역을 하며) 노는 걸 좋아하는 성격이라서요. root 계정으로 모든 서비스를 다 쓰시는 분들은 아래의 정책 연결 같은 건 신경 안 쓰셔도 됩니다.

AmazonRDSFullAccess 정책 연결

어제 Postgresql DB를 생성했습니다. 데이터베이스를 관리할 IAM 계정을 어김없이 따로 만들었죠. 정책에서 ‘database’를 검색하니 DatabaseAdministrator 하나만 필터링 되더군요. 그래서 아무 의심 없이 이 정책만 적용했습니다.

DB 구축은 aws 안내 문서를 따라하니 별로 어려울 게 없었는데, 이상하게도 마지막에 ‘데이터베이스 생성’ 버튼을 클릭하면 ‘권한이 부여되지 않았을 수 있다…’ 어쩌고저쩌고 하는 오류가 뜨며 생성에 실패했습니다.

한참 헤매다 IAM 계정에 AmazonRDSFullAccess 정책을 연결하고 다시 시도했더니 데이터베이스가 생성이 되더군요. RDS(관계형 데이터베이스 서비스)니까 당연히 이 정책을 연결했어야 하는데 말이죠.

DatabaseAdministrator 정책 연결

AmazonRDSFullAccess 정책만으로도 데이터베이스를 생성할 수 있고 CloudWatch 모니터링을 할 수 있습니다. 그러니 IAM 계정에는 이 정책만 있어도 되죠. 모니터링으로 CPU 및 연결 개수를 확인할 수 있습니다. 그런데 희한하게 CloudWatch 모니터링 말고 ‘요약’ 파트에서 CPU 및 연결 개수가 보이지 않습니다. DatabaseAdministrator 정책을 추가로 연결했더니 ‘요약’에서 그게 수치로 보이더군요. 어차피 CloudWatch 모니터링에서 확인할 수 있으니 이 정책은 없어도 되지만, 모니터링으로 보는 것보다 ‘요약’에서 수치로 한눈에 확인하는 게 훨씬 더 편합니다. 그래서 DatabaseAdministrator 정책도 연결해 놓았습니다. 어차피 나중에 DynamoDB와 같은 NoSQL 서비스를 할 때에 다시 연결해야 할 테니까요.