본문 바로가기
AWS

12. S3 - (2)

by shulk 2024. 10. 29.

1. S3에 파일 업로드 가능하도록 IAM에서 엑세스 키 발급 받기

AWS리소스에 아무나 접근 못하게 막아서 파일을 업로드할 수 없다. 

하지만 백엔드 서버는 S3에 접근해서 파일 업로드 가능해야하니 IAM에서 엑세스 키 발급 받아야한다

 

(1) IAM 페이지 들어간후 - 사용자 클릭 - 사용자 생성 클릭 - 사용자 이름 적기 - 다음

 

(2) 권합옵션을 직접 정책 연결 클릭 - s3full 검색후 클릭 - 다음 (IAM은 리전 선택 못하고 글로벌에서 하는듯)

직접 정책 연결은 AWS에서 권한에 대한거를 이미 만들었으니 가져다가 사용하는거다
s3fullaccess는 s3에 접근하는 모든 기능에 대한 권한을 얻겠다는거다

 

(3) 사용자 생성 클릭후 - 만들어진 사용자 클릭후 들어가서 - 보안 자격 증명 - 액세스 키 만들기 클릭

 

(4) 엑세스 키는 백엔드 서버가 사용해야하니 AWS 외부에서 실행되는 애플리케이션 선택후 다음

 

(5) 설명 태그값은 생략하고 액세스 키 만들기

 

(6) 액세스키랑 비밀 액세스키 복사후 따로 다른데다가 잘 저장해둔다
액세스키는 S3에 아무나 접근하면 안되니 액세스 키랑 비밀 액세스 키로 인증후 접근하는거다.

 

2. S3 스프링 연동

(1) 의존성 추가 해준다 (인터넷 참고한거라 현재 버전에 맞는거로)

implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

(2)  새로운 aws 전용 properties 파일 생성한다

(3) properties 파일에 이거를 적는다. 버킷 이름은 위에 AWS 버킷 생성할때 정했던 버킷 이름 적고, 엑세스키,시크릿키는 위에 복사,저장했던거를 적는다.

 

(4) 제일 중요한건데 이 새로 만든 properties 파일은 .gitginore에 넣어 올라가지 않도록!! 만약 안그러면 해킹당하고 요금 폭탄!!

cloud:
  aws:
    s3:
      bucket: <버킷 이름>
    stack.auto: false
    region.static: ap-northeast-2
    credentials:
      accessKey: <발급 받은 accessKey>
      secretKey: <발급 받은 secretKey>

 

(5) S3Config.java 파일 생성 

@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 AmazonS3Client amazonS3Client() {
		BasicAWSCredentials awsCredentials= new BasicAWSCredentials(accessKey, secretKey);
		return (AmazonS3Client) AmazonS3ClientBuilder.standard()
				.withRegion(region)
				.withCredentials(new AWSStaticCredentialsProvider(awsCredentials))
				.build();
	}
}

 

(6) 이제 프로젝트 코드에서 S3에  업로드,조회,삭제등 하는 서비스 코드는 밑에 블로그 참고하거나 직접 알어보거나 인터넷 참고

참고 블로그

참고 블로그2

 

3. 비용 안나가게 S3 종료하기

(1) S3  페이지 해당 버킷 클릭

 

(2) 버킷에 있는 객체들 삭제

 

(3) S3 버킷 페이지 돌아온후 해당 버킷 삭제

'AWS' 카테고리의 다른 글

14. CloudFront - (2)  (0) 2024.10.30
13. CloundFront - (1)  (0) 2024.10.30
11. S3 - (1)  (0) 2024.10.29
10. RDS - (2)  (0) 2024.10.28
9. RDS - (1)  (0) 2024.10.28