Amin 권한이면 상관없다.
그러나 실무에서 개발자들은 IAM 계정으로 사용하게 된다.
IAM 계정에 AmazonRDSFullAccess 권한을 주어도 RDS를 제대로 만들지 못한다.
어떤 권한을 추가로 줘야 하는지 알아보자
확장 모니터링을 하려면 role이 필요하다.
pass role은 rds가 롤을 대신 사용하므로 pass role 필요.
방법은 2가지 이다.
<1> 네트워크 구성
<2> 확장 모니터링 사용 방법1 - Readonly와 iam passrole 주는 방법
<3> 확장 모니터링 사용 방법2 - iam role 생성 권한 3가지와 iam passrole를 주면 된다.
<4> RDS 삭제 하기
<1> 네트워크 구성
1
서울 리전
기본 VPC삭제 (기본 VPC는 다시 만들 수 있다.)
Pub - Pri - Db subnet으로 구성된 Cloudformation 실행 (DB Subnet에 DB를 설치하기 위함이다)
db subnet a - 서브넷 ID 확인... 56
db subnet c - 서브넷 ID 확인... 0c
2
IAM 계정 생성 >
db
go102!
<2> 확장 모니터링 사용 방법1 - Readonly와 iam passrole 주는 방법
RDS Full + Readonly + seo-rds-monitoring-role + Passrole 이면 된다.
추가- DB 보안그룹 시큐리티 그룹은 SE가 별도로 만들어준다. TCP 3306 허용
1
RDS Full 준다. (서브넷 그룹을 만들 수 있다.)
2
Readonly 권한 준다. ( 만들어진 role을 선택할 수 있게 해 준다)
3
role이 필요하다.
IAM > rRDS > RDS- Enhanced Monitoring > seo-rds-monitoring-role으로 만든다 (Readonly 권한이 있으므로 볼 수 있다.)
정책 AmazonRDSEnhancedMonitoringRole 가 디폴트로 추가된다. (CloudWatch Logs 정책이다)
// RDS 생성 시 seo-rds-monitoring-role을 선택 하자.
4
Passrole은 필요하다. iam > 정책 >
RDS가 모니터링하므로 Passrole이 필요.
5
서브넷 그룹도 만들 수 있다. (RDS FULL권한으로 제공)
6
참고
정책 AmazonRDSEnhancedMonitoringRole을 추가한다. (CloudWatch Logs 정책이다)
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html
다음 정책은 사용자가 Enhanced Monitoring을 활성화하도록 허용합니다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-iam-least-privileges/
<3> 확장 모니터링 사용 방법2 - iam role 생성 권한 3가지와 iam passrole를 주면 된다.
1
RDSFull 준다
2
RDS생성 시
암호 자동 생성 체크
버스터블 클래스(t 클래스 포함)로 변경 - 비용 적게 나오는 거로 선택
DB 인스턴스 database-1 생성 요청이 실패했습니다.
User: arn:aws:iam::451032684083:user/dbe is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::451032684083:role/rds-monitoring-role
Enhanced 모니터링 활성화 가 되어 있어 나오는 것이다.
디폴트가 Enhanced 모니터링 활성화이다.
해당 체크를 해지하면 생성된다.
그러나 Enhanced 모니터링을 사용하고 생성하려면 역할이 필요하다.
3
역할을 만드는 방법은 필요한 정책 4가지 주는 방법
IAM 역할을 로드하는 중 오류 발생
User: arn:aws:iam::451032684083:user/dbe is not authorized to perform: iam:ListRoles on resource: arn:aws:iam::451032684083:role/
4
DB 인스턴스 database-2 생성 요청이 실패했습니다.
User: arn:aws:iam::451032684083:user/dbe is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::451032684083:role/rds-monitoring-role
5
User: arn:aws:iam::451032684083:user/dbe is not authorized to perform: iam:AttachRolePolicy on resource: role rds-monitoring-role
6
User: arn:aws:iam::451032684083:user/dbe is not authorized to perform: iam:PassRole on resource: arn:aws:iam::451032684083:role/rds-monitoring-role
7
확장 모니터링을 할 수 있는 role을 생성할 수 있는 정책을 주면 된다.
iam 정책
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:PassRole",
"iam:ListRoles",
"iam:CreateRole",
"iam:AttachRolePolicy"
],
"Resource": "*"
}
]
}
8
참고
위 정책으로 다른 용도의 role 등을 만들 수는 없다.
iam:ListPolicies 권한이 없으므로..
<4> RDS 삭제 하기
1
클러스터 > 수정 > 맨 아래 > 삭제 방지 체크 해제 > 즉시 적용 > 클러스터 수정
클러스터의 경우 삭제 방지가 되어 있으면 삭제가 안되죠.
그리고, 클러스터는 삭제하려면 사용 중이어야 한다.
2
Write (라이트) > 삭제 > 삭제 시 스냅샷 만듬 체크 해지 > 삭제해도 됨을 체크 > 삭제
클러스터도 같이 삭제된다.
3
스냅샷> 삭제
혹, 스냅셧을 만들었다면~
https://brunch.co.kr/@topasvga/1544
https://brunch.co.kr/@topasvga/3452
감사합니다.