-
AWS Secrets Manager를 이용하여 DB 비밀번호 등 암호화하기.Computer Science/Aws 2022. 8. 2. 21:48
//amazon secret management implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.3' implementation 'org.springframework.cloud:spring-cloud-starter-aws-secrets-manager-config:2.2.6.RELEASE'
boot strap을 먼저 실행한 후 aws secrets manager에 접속하여 가져오는 방식이다.
고로 우선 위에 2가지를 implement해준다.
secrets manager에 secret들을 저장해준다.
기본이 secret 아래로 되어 있기에 prefix를 /secret/으로 하고 프로젝트에 쓰일 명을 입력해준다.
그 다음 ec2에 iam 권한을 추가해준다.
SecretsManagerReadWrite
Spring boot
local에서 실행 환경과 server 실행환경을 편리하게 나누기 위해 application을 구성하였다.
bootstrap.yaml 파일을 생성해준다.
application.yaml이 있는 곳에 생성해준다.
bootstrap.yaml파일이다.
spring: profiles: group: local: "localdb,common" server: "serverdb,common" active: local --- spring: config: activate: on-profile: localdb aws: secretsmanager: enabled: false --- spring: config: activate: on-profile: serverdb cloud: aws: region: static: ap-northeast-2 auto: false aws: secretsmanager: name: lof enabled: true
주의 해야할 점으로는 secret manager에서 /secret/lofmariadb 로 설정하였으니 aws.secretsmanager의 name을 lofmariadb로 설정해준다.
bootstrap이 먼저 실행 되고 그다음 application이 실행된다.
따라서 만약 local이라면 bootstrap의 localdb가 실행되고 application에서 common과 localdb가 실행되는 방식이다.applicaion.yaml 파일이다.
spring: config: activate: on-profile: common datasource: driver-class-name: org.mariadb.jdbc.Driver mvc: path match: matching-strategy: ant_path_matcher jpa: show-sql: true hibernate: ddl-auto: create defer-datasource-initialization: true sql: init: encoding: UTF-8 continue-on-error: true mode: always server: port: 80 --- spring: config: activate: on-profile: localdb import: localkey.yaml datasource: url: jdbc:mariadb://localhost:3306/lof username: root password: 1234 slack: token: ${localkey.slack-api.token} --- spring: config: activate: on-profile: serverdb datasource: url: ${lof.mariadb.url}/lof username: root password: ${lof.mariadb.password} slack: token: ${lof.slack.token}
서버에서 실행 될 deploy.sh에 java 옵션으로
-Dspring.profiles.active=server
를 추가해주면 server 단에서는 server로 변경되어 실행이 된다.
'Computer Science > Aws' 카테고리의 다른 글
AWS Lambda Node.js 로 api call 하기 (0) 2022.09.29 AWS codeDeploy error log 확인 (0) 2022.08.09 도메인 aws에 적용하기. (0) 2022.07.27 private subnet/EC2 접근 방법 (0) 2022.06.28 AWS Application Load Balancer (0) 2022.06.28