⚙️ Ops/AWS

AWS Parameter Store

신건우 2023. 4. 17. 12:55

💡 AWS Parameter Store

디스코드 봇 토큰을 AWS Parameter Store를 이용해서 Spring Boot로 값을 가져온다.


Dependency 설정

ext {
    set('springCloudVersion', "Hoxton.SR6")
}

implementation 'org.springframework.cloud:spring-cloud-starter-aws-parameter-store

src/main/resources 아래에 bootstrap.yml 파일 생성

prefix

  • 파라미터의 접두사를 지정할 수 있다. 주의해야할 점은 해당값은 /로 시작해야한다.
  • default : /config

name

  • 파라미터의 식별자 애플리케이션이름이다. 해당 파라미터를 어떤 애플리케이션에 적용할건지를 지정할 수 있다.
  • 만일 해당값을 지정하지 않으면 spring.application.name 속성에 정의된 값을 참조하게 된다.
  • 해당 속성마저도 없으면 'application' 이라는 이름이 부여된다.
  • default : application

profile-separator

  • 하나의 애플리케이션을 여러환경에 배포할 수 있게끔 구분자를 지정해두는데 이 속성은 위 name과 같이 쓰인다.
  • 데이터베이스 엔드포인트 값을 예로들면 /config/kimjonghyun_local/jdbc.url, /config/kimjonghyun_production/jdbc.url 이렇게 구성된다.
  • default : _

profile

  • spring.config.activate.on-profile에 정의된 값이다.

enabled

  • AwsParamStoreBootstrapConfiguration를 활성화 한다.
  • default : true
# enabled - 파라미터 스토어 설정 ON
# prifix - 파라미터 스토어의 Key 값 가장 첫번째 구분용
# name - Key의 두분째 구분용, 바로 하단의 profileSeparator와 함께 사용가능
# profileSeparator - name과 할께 사용될 prifile 식별자
# failFast - 기본값 True, 스토어에서 값을 못 읽었을때 할 행동 지정, true면 어플 실행을 못하게함

aws:
 paramstore:
   enabled: true
   prefix: /discord 
   name: token
   profileSeparator: _

IAM User

  • IAM User를 만든다.
  • SSM FullAccess, SSM ReadOnly Access 권한을 추가한다.
  • IAM User의 AccessKey를 받는다.