SecretsManager 패스워드로테이션을 이용한 RDS 암호 교체

2022.04.18

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 SecretsManager 패스워드로테이션을 이용하여 RDS의 마스터 암호를 교체해보도록 하겠습니다.

SecretsManager란?

수명 주기에 걸쳐 데이터베이스 자격 증명, API 키 및 다른 보안 정보를 손쉽게 교체, 관리 및 검색할 수 있는 서비스 입니다.

사용자 및 애플리케이션에서 Secrets Manager API를 호출하여 보안 정보를 검색하므로, 민감한 정보를 평문으로 하드코딩할 필요가 없습니다. Amazon RDS, Amazon Redshift 및 Amazon DocumentDB에 기본적으로 통합되어 있고 다른 유형의 보안 정보에도 교체 기능을 제공합니다.

SecretsManager의 기능

  • 자동으로 보안 암호 교체
  • 암호화된 보안 암호 값을 런타임에 프로그래밍 방식으로 검색
  • 다른 유형의 보안 암호 저장
  • 보안 암호 데이터 암호화
  • 완전 구성되고 바로 사용할 수 있는 교체 지원 기능을 갖춘 데이터베이스
  • 완전 구성되고 바로 사용할 수 있는 교체 지원 기능을 갖춘 다른 서비스
  • 보안 암호에 대한 액세스 제어

요금에 대해서

  • 30일 무료사용가능
  • 보안 암호 한개당 0.40$
  • API 요청 10000건당 0.05$ 사용하는 내역에 대해서만 지불하며 최소 또는 설정 요금이 없습니다. 삭제하도록 표시한 보안 암호에 대해서는 요금이 부과되지 않습니다. 자세한 요금 정보는 아래의 링크에서 확인해 주세요

SecretManager 패스워드로테이션 으로 RDS 마스터 암호 변경해보기

구성도

사전 준비

  • VPC x1
  • PublicRouteTable x1
  • PrivateRouteTable x2 (NatGateway용, 일반)
  • Public Subnet x2
  • Private Subnet x4
  • NatGateway x1
  • InternetGateway x1
  • EC2 x1
  • RDS Aurora x1
  • EC2용 Iam Role (Policy : AmazonSSMManagedInstanceCore) x1

보안그룹

ec2-sg

인바운드

유형 프로토콜 포트 소스
ssh TCP 22 myIP
http TCP 80 0.0.0.0/0

sm-sg (SecretManager)

아웃바운드

유형 프로토콜 포트 소스
모든트래픽 전체 전체 rds-sg
http TCP 80 0.0.0.0/0

https를 사용하실 경우 (http→https 80→433)로 변경해주시면됩니다.

rdb-sg

인바운드

유형 프로토콜 포트 소스
PostgreSQL TCP 5432 ec2-sg
PostgreSQL TCP 5432 sm-sg

구축해보기

서비스 검색창에 SecretManager를 검색하고 새 보안 암호 저장을 클릭합니다.

「Amazon RDS」 를 선택합니다.

「사용자 이름」 에는 RDS마스터 사용자를 입력하고 「암호」 에는 RDS마스터 암호를 입력합니다.

암호화 키 는 기본으로 제공하는 것을 선택합니다.

RDS인스턴스를 선택합니다.

「보안 암호 이름」「설명」 을 입력합니다. 그리고 「다음」 을 클릭하여 생성해줍니다.

생성이 완료 되었으면 「보안 암호 값 검색」 을 클릭하고 정보를 확인한 후 ec2를 통해 RDS에 접속이 되는지 확인 합니다.

암호 정보에서 「교체구성탭」 에서 「교체편집」을 클릭합니다.

「자동 교체」를 활성화 해주시고 「교체일정」을 설정합니다.

(저는 매주 금요일 17시로 설정했습니다.)

「교차함수 생성」 을 선택하고, 람다함수 이름을 입력한 후 「저장」을 클릭합니다.

자동으로 생성된 람다를 확인하고 클릭합니다.

「구성탭」 에서 「VPC탭」 으로 이동하여 「서브넷」「보안그룹(sm-sg)」 을 설정합니다.

다시 SecretsManager화면으로 돌아와서 「보안암호 즉시 교체」 를 클릭하여 암호가 교체 되는지 확인 합니다.

성공했으면 위의 하면과 같이 성공메세지가 나타납니다.

그 후 다시 「보안 암호 값 검색」을 클릭하여 변경된 암호를 확인한 후 EC2로 RDS에 접속해봅니다.

마무리

이번 블로그에서는 SecretsManager가 무엇이고, 이를 이용하여 RDS이 마스터암호를 정기적으로 변경하는 방법에 대해 알아보았습니다. 평소에 암호관리에 관한 서비스나 지식이 필요 하신 분들께 조금이나마 도움이 되었으면 좋겠습니다.

참고자료

아래의 블로그는 일본어 블로그이므로 크롬으로 접속하여 우클릭 후 한국어 번역을 통해 내용을 확인 해 주세요

AWS Secrets Manager에서 시크릿을 성공적으로 회전하지 못했을 때의 대응 방법 AWS CDK AWS Secrets Manager에서 Amazon Aurora 비밀번호를 회전해 보았습니다. AWS Secrets Manager에서 RDS 비밀번호 로테이션 시도 in 2022 RDS 연결 정보를 AWS Secrets Manager에서 관리

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !