TIL AWS_S3 연동 및 파일 업로드

3178 단어 awsaws

1.AWS - S3

AWS에는 RDS나 EC2와 같이 여러 기능들이 존재한다. S3도 Simple Storage Service라고 불리는 AWS의 인터넷용 스토리지 서비스이다. 전반적으로 개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 설계되어 있다.S3 또한 클라우드로서 언제 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있다.

S3 사용절차 (AWS IAM -> AWS S3 bucket)

1.AWS IAM 생성

a. AWS -> 서비스(service) -> IAM -> 사용자(user)를 선택
b. 사용자 추가를 클릭, 사용자 이름을 입력하고 프로그래밍 방식 액세스 체크, "AWS management access console"항목은 체크 하지 않는다.
c. 다음 버튼 클리하고 권한 설정에서 기존 정책 직접 연결 후, 아래 정책 생성 클릭.
(아래 사진 참고)

d. 생성 후, JSON 탭으로 이동하여 아래와 같이 json 입력합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::example-bucket-name/*",
                "arn:aws:s3:::example-bucket-name"
            ]
        }
    ]
}

e. 위에서 "example-bucket-name" 부분은 추후 bucket이 생성되고 변경합니다. 이름과 설명을 추가하고 정책을 생성.
f. 다시 권한설정 페이지로 가서 검색창에 "" 생성한 정책이름을 검색하고 체크한 뒤 다음으로 이동하면, Download.csv파일 나옵니다. 여기서 반드시 다운!!! 안하면 다시 해야되요.

아래 사진에서 "csv 다운로드" 반드시 클릭!

2.AWS S3 bucket 생성

a. AWS -> 서이브 -> S3 그리고 버킷(bucket) 만들기 클릭 후 이름과 region을 설정.
b. 그 다음 페이지에서 "모든 퍼블릭 액세스 차단(Block all public access)"를 uncheck,그리고 버킷을 생성.
c. 설정페이지에 들어가 "권한" 탭에서 "버킷 정책"을 "편집", 그 후 아래와 같이 "JSON" 탭에 입력. 그리고 "변경 사항 저장"을 클릭.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1507637373230",
            "Effect": "Allow",
            "Principal": {
                "AWS": "여기는 IAM에 있는 사용자 ARN"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::brandi-3team/*"
        },
        {
            "Sid": "Stmt1507637391106",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::brandi-3team/*"
        }
    ]
}


(사진 속 "user_arn"은 임의로 넣었습니다. 저런 보통 아니다. IAM 페이지에 가서 해당 유저를 클릭하면 "user_arn"을 알 수 있다.)
d. 이어서 설정페이지에서 "CORS" 구성에 들어가 아래를 입력:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "HEAD",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]

좋은 웹페이지 즐겨찾기