관리 메뉴

공부가 싫은 개발자

[AWS] S3 + Spring boot 연동하기 (2) 본문

인프라

[AWS] S3 + Spring boot 연동하기 (2)

우엉엉 2026. 3. 13. 18:41

다음으로 이어서 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