728x90
반응형
들어가기 앞서 개발 환경을 간단하게 나열해본다.
- Spring boot 3 + Kotlin
- Gradle
- 사용하는 AWS 서비스 정보는 아래 내용을 참고할 것
아래와 같은 질문을 받은 적이 있다.
이 정보가 있다가 사라졌는데... 없어도 잘 동작하는 이유(?)가 뭘까요?
S3부터 SQS까지 여러 AWS 서비스를 사용하고 있음에도 위 정보가 없이 잘 동작했다. 불필요한 정보를 노출시키는 것보다 제거하는 것이 나을 것으로 판단해서 삭제를 했지만 삭제하면서도 어떻게 이게 동작하는지 궁금했다. 아래는 사용하고 있는 패키지 목록이다. Spring Cloud AWS를 사용하고 있는 것을 알 수 있다.
// build.gradle.kts
dependencyManagement {
imports {
mavenBom("io.awspring.cloud:spring-cloud-aws-dependencies:3.0.0")
mavenBom("org.springframework.cloud:spring-cloud-dependencies:2022.0.2")
}
}
dependencies {
implementation("io.awspring.cloud:spring-cloud-aws-starter-s3")
implementation("io.awspring.cloud:spring-cloud-aws-sqs")
implementation("io.awspring.cloud:spring-cloud-aws-autoconfigure")
}
이유는 간단하다. CLI 자격 증명 파일이 존재하기 때문이다. AWS CLI를 설치하면 aws configure 명령어로 AWS Access Key ID와 AWS Secret Access Key를 포함하여 여러 정보를 입력할 수 있다. 이 정보는 credentials 파일(CLI 자격 증명 파일)에 저장된다.
$ cat ~/.aws/credentials
[default]
aws_access_key_id = <위에서 발급한 Key id>
aws_secret_access_key = <위에서 발급한 Secret Access Key>
만약 이 자격 증명 파일이 없으면 어떻게 될까? 아래와 같은 오류 메세지를 확인할 수 있다. 내용을 읽어보면 credentials 파일을 불러오는 과정에서 에러가 나타난 것을 알 수 있다.
Caused by: software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from any of the providers in the chain AwsCredentialsProviderChain(...생략...) : [...생략...]
추가 : 2023.10.04
credentials을 입력해도 제대로 동작하지 않을 수 있다. 이럴 때 config 파일에 region을 입력하는 등의 조치를 취해보자. (참고)
$ cat ~/.aws/config
[default]
region = ap-northeast-2
참고자료
- AWS의 accessKey, secretAccessKey를 안전하게 관리하기
.
728x90
반응형
'Spring' 카테고리의 다른 글
잘못된 분석은 무엇으로부터 시작될까 (1) | 2023.10.24 |
---|---|
내가 만든 라이브러리/모듈을 로컬에서 사용하기 (0) | 2023.08.07 |
엑셀 다운로드시 암호화를 하고 싶다면? (0) | 2023.08.07 |
AWS SQS와 EventBridge를 활용한 스케줄러 만들기 (0) | 2023.06.27 |
Mockito에서 only과 time(1)은 어떤 차이일까? (0) | 2023.05.07 |
Comment