티스토리 뷰

어플리케이션에서 설정 값을 쓸때 yml에 직접 넣거나,

이런 방식을 피하기 위해 AWS Parameter store를 사용하게 됩니다.

Secrets manager가 Parameter store의 상위 호환처럼 보이기도 하는데 많지는 않지만 비용이 발생하게 됩니다.

(자세한 설명은 다른 블로그에서 참고)

사전작업

Secret 생성

db_username, db_password 두개의 시크릿을 생성했다.  별로 어려운건 없으니 이미지 보고 진행.

Secret name은 나중에 쓰이기 되니 기억!!

자격증명 생성

IAM -> Users -> 사용자 선택 -> Security Credentials(탭)을 선택, Access keys를 생성해준다.

이때 나오는 Access Key ID와 Secret Access Key를 적어놓고 아래 자격증명에서 사용.

(전 이미 생성되어 있음)

AWS CLI가 없다면 설치를 해주고 아래처럼 자격증명 설정을 진행한다

사전 작업이 완료되면 드디어 개발을 한다.

스프링 부트 어플리케이션 개발

라이브러리 종속성 추가(build.gradle.kts)

implementation("io.awspring.cloud:spring-cloud-starter-aws-secrets-manager-config:2.4.4")

설정파일 추가(application.yml)

시크릿 생성 시에 사용했던 Secret name을 잘 기억해뒀다가 아래 입력한다(sample/secretsManager/dev)

spring:
  config:
    import: 'aws-secretsmanager:sample/secretsManager/dev'

테스트 코드 작성

import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.test.context.SpringBootTest

@SpringBootTest
class SecretsManagerTest {

    @Value("\${db_username}")
    lateinit var dbUsername : String

    @Value("\${db_password}")
    lateinit var dbPassword : String

    @Test
    fun test() {
        assertThat(dbUsername).isEqualTo("username")
        assertThat(dbPassword).isEqualTo("password")
    }
}

DB 설정

(변수명을 username(기본)으로 할 경우 환경변수와 충돌이 일어나는 경우가 있어서 키 값을 변경해주었다.)

aws 설정

application.yml

spring:
  config:
    import: 'aws-secretsmanager:sample/secretsManager/dev'
  datasource:
    url: jdbc:oracle:thin:@${dbHost}:${dbPort}:${dbName}
    username: ${dbUsername}
    password: ${dbPassword}
    driver-class-name: oracle.jdbc.OracleDriver

'개발 > Java, Kotlin' 카테고리의 다른 글

Spring Database Naming(prefix)  (0) 2023.03.28
Pair, Triple  (0) 2023.03.09
RestTemplate 사용 중 Connection refused: connect 오류 발생  (0) 2023.02.21
Spread operator(전개구문) in kotlin  (0) 2022.12.06
히카리 풀 모니터링  (0) 2020.04.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함