본문 바로가기
스프링 쇼핑몰 만들어보기

aws S3 이미지 업로드

by hoshi03 2024. 5. 5.

s3 버킷을 만들어서 정책 편집

 

1번 정책은 누구나 읽기 가능

2번 정책은 수정 삭제는 나만 가능하게 했다

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::hoshi03spring1/*"
        },
        {
            "Sid": "2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::992382669645:root"
            },
            "Action": [
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::hoshi03spring1/*"
        }
    ]
}

 

아래로 내려서 CORS 편집

AllowedOrigins 부분을 나중에 사이트 주소로 바꾸면 해당 사이트에서만 이미지 추가,수정이 가능하게 한다

 

한 다음 서버에서 이미지 업로드/수정 삭제 등을 하기 위해서 IAM - 보안자격증명 - 액세스 키 만들기로 가서 액세스 키를

만든다

 

 

더 안전하게 하려면 좌측 액세스관리 - 사용자  - 사용자 생성 - 직접 정책연결 후 권한 정책을 AmazonS3FullAccess 로 주고  액세스 키를 그 사용자껄로 해주면 된다

 

build.gradle에 aws 추가하고 

implementation 'io.awspring.cloud:spring-cloud-aws-starter-s3:3.1.1'

 

application.properties 파일에 아래 요소를 추가한다

spring.cloud.aws.credentials.accessKey=액새스키
spring.cloud.aws.credentials.secretKey=시크릿키
spring.cloud.aws.s3.bucket=버킷명
spring.cloud.aws.region.static=ap-northeast-2