메뉴 닫기

[Tech]Secrets Manager 사용하기

안녕하세요, 에이클라우드 김종호 매니저입니다.

 

오늘은 AWS Secrets Manger에 대해서 소개를 해드리겠습니다.

애플리케이션 개발을 하게 되면 거의 필수적으로 DB에 데이터를 저장하는 애플리케이션을 개발하게 되겠습니다.

그러면 저희는 코드나 어디에 애플리케이션이 DB와 연결을 하기 위해 DB 로그인 정보를 넣어두게 되겠습니다.

이런 식으로 말이죠(환경 변수에 저장해서 가져오는 방식을 많이 사용하겠습니다.)

하지만 이렇게 서버에 DB 로그인 정보 등 저장이 되어 있으면 보안에 허점이 되겠습니다.

Secret Manger를 통해서 한번 해결을 할 수 있는 시간을 가져보도록 하겠습니다.

 

Secrets Manager 설정

첫번째로 데이터베이스에 접속하기 위한정보를 Secrets Manager에 설정을 해주겠습니다.

새 보안 암호 저장을 클릭을 해줍니다.

Amazon RDS 데이터베이스에 대한 자격 증명을 선택을 해주고

데이터베이스에 자격증명 정보를 입력을 해줍니다.

그리고 데이터베이스에서 연결되는 데이터베이스를 클릭을 해줍니다.

보안 암호 이름을 선택을 해주고 다음을 눌러줍니다.

보안 암호를 다른 리전 간 복제를 할 수 있습니다.(저희는 하지 않겠습니다.)

교체 구성을 비활성화를 하고 저장을 눌러주겠습니다.

(키를 자동으로 교체를 해줄 수 있습니다.)

이제 Secrets Manger 생성이 완료가 되었습니다.

변수 값 등록 및 확인을 위해서 Secrets Manager 개요에서 보안 암호 값 확인을 해줍니다.

그리고 원하는 값이 없다면 편집을 눌러서 지정을 해주시면 되겠습니다. 

 

이제 애플리케이션 서버가 EC2라는 가정으로 연결을 진행을 하겠습니다.

Secrets Manger를 사용하기 위한 Ec2에는 역할이 연결이 되어야 되겠습니다.

한번 역할을 생성을 해보도록 하겠습니다.

 

Secrets Manager 용 IAM 역할 생성

Amazon EC2 암호에 대한 필수 IAM 권한

EC2에서 Secrets Manager를 사용하기 위해서 사용 권한이 있어야 되겠습니다.

secretsmanager:GetSecretValue  권한을 넣어줌으로 Ec2에서 Sercrets Manger를 사용할 수 있겠습니다.

IAM → 정책 → 정책 생성을 클릭을 해줍니다.

검토 및 생성을 클릭을 해줍니다.

생성이 완료가 되었다면 IAM → 역할 → 역할 생성을 클릭을 해줍니다.

역할에 방금 생성했던 정책을 넣어 주겠습니다.

EC2를 선택을 해주고 다음을 눌러줍니다.

다음을 눌러줍니다.

역할 생성을 눌러주겠습니다.

생성한 역할을 EC2에 넣어주도록 하겠습니다.

EC2에서 넣어 줄 EC2를 선택을 한 후 작업 → 보안 → IAM 역할 수정을 눌러준 후 저희가 만들었던 역할을 넣어주면 되겠습니다.

Secrets Manager를 사용하기 위한 설정은 끝이 났습니다.

 

이제 DB 커넥터 코드로 넘어 와서 만들었던 Secret Manger 값을 이용하여 DB로 접근을 할 수 있겠습니다.

저는 DB 도메인밖에 넣어주지 않았지만 Secret Manager 변수 값 설정 쪽에서 DB 변수를 지정하여 사용을 하면 되겠습니다.

사용법은 Secrest Manager ARN 값을 저장 후 arn:aws:secretsmanager:[Region]:[계정ID]:secret:kjh/mysql-THIlLE:host::

arn:aws:secretsmanager:ap-northeast-2:111111111111:secret:kjh/mysql-THIlLE:host::

ARN 뒷 부분에 “:변수이름::” 을 설정을 해주시면 되겠습니다. 

 

감사합니다.