공부가 싫은 개발자
[AWS] S3 + Spring boot 연동하기 (2) 본문
다음으로 이어서 S3와 Spring boot 연동하기
Spring boot 3.5.7 기준
1. Acceess key와 Secret key 발급받기
1) IAM 대시보드로 이동

2) 좌측의 액섹스 관리 > 사용자 > 사용자 생성 클릭

3) 사용자 세부 정보 지정
사용자 이름 입력 후 다음 클릭

4) 권한 설정
직접 정책 연결 선택

5) 권한 정책 설정 아래와 같이 하고 사용자 생성
AmazonS3FullAccess 검색 후 체크
권한 경계 설정, 검토 및 생성 - 건너뛰기


6) 방금 생성한 사용자 클릭 후 보안 자격 증명 클릭
하단에 액세스 키 만들기 클릭

7) 액세스 키 사용 사례 고르기
로컬 코드 또는 AWS 외부에서 실행되는 애플리케이션을 누르면 됨
본인 상황에 맞게 선택하기
태그는 선택사항이므로 건너뛰기


8) 액세스 키 발급
key 값 유출 금지
.csv 파일 다운로드 하기 (필수!!!)

============
Spring Boot 설정
============
1. Gradle에 의존성 추가하기
본인 spring boot 버전 잘 보고 집어 넣어야 함
아래처럼 해야 충돌이 나지 않음
dependencyManagement {
imports {
mavenBom 'software.amazon.awssdk:bom:2.25.10'
}
}
implementation 'software.amazon.awssdk:auth'
implementation 'software.amazon.awssdk:s3'
2. yml 파일 기준 아래처럼 설정해주기
위에서 발급한 key 값과 이전에 생성한 버킷 이름을 넣어줌
spring:
servlet:
multipart:
max-file-size: 10MB # 한 파일당 최대 크기
max-request-size: 10MB # 전체 요청당 최대 크기
cloud:
aws:
s3:
bucket: 본인이 생성한 버킷 이름
stack:
auto: false
region:
static: ap-northeast-2 # 서울 리전
credentials:
access-key: ${AWS_ACCESS_KEY}
secret-key: ${AWS_SECRET_KEY}
3. 설정값들을 읽어서 실제 AWS S3와 통신할 '객체(Bean)'를 만들어주는 Config 자바 파일 생성
제미나이가... 이리 하래여
package com.plum.backend.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
@Configuration
public class S3Config {
@Value("${cloud.aws.credentials.access-key}")
private String accessKey;
@Value("${cloud.aws.credentials.secret-key}")
private String secretKey;
@Value("${cloud.aws.region.static}")
private String region;
@Bean
public S3Client s3Client() {
AwsBasicCredentials awsCredentials = AwsBasicCredentials.create(accessKey, secretKey);
return S3Client.builder()
.region(Region.of(region))
.credentialsProvider(StaticCredentialsProvider.create(awsCredentials))
.build();
}
}
끝! 이제 가져다 쓰기
'인프라' 카테고리의 다른 글
| [AWS] S3 설정하기 (1) (0) | 2026.03.11 |
|---|---|
| [Docker] 스프링부트 도커에 올리기 (0) | 2025.12.15 |
| [AWS] RDS 설정하기 (0) | 2025.11.03 |
