VaIice의 이야기

[Node.js] 이미지 보관 - AWS S3 (1) 본문

[Node.js]

[Node.js] 이미지 보관 - AWS S3 (1)

VaIice 2024. 7. 19. 14:20

 

 액세스 관리 - 사용자 

 한 AWS 계정에 많은 사람들이 접속해서 사용 가능

 새로운 사용자 계정(하위계정)을 만드는 것

 

 

 

어떤 서비스를 이용할지 직접 권한 설정

 

 

검색 후 권한 설정 가능

 

 

S3 Full Access

 

 

생성 완료

 

 

액세스 키 만들기 클릭 (사용자 ID, PW)

 

 

로컬 코드 클릭

 

 

따로 보관해둘 것 + ARN

 

 

 

이미지, 파일 저장할 스토리지 대여 / S3는 파일 저장용 클라우드 서비스

 

 

 

하드디스크와 같은 개념

 

 

 

 

 

 

 

 

연습할 때는, 모두 해제 후 만들기

 

 

 

 

누가 이미지를 업로드 할 수 있는지, 누가 이미지를 읽을지 설정 / 관리자 - 수정, 삭제 / 유저 - 읽기

 

 

방법 1. 버킷 정책 (추천)

 

 

방법 2. ACL

 

 

 

버킷 정책

 

 


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::자신의 버킷명/*"
        },
        {
            "Sid": "2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "자신의 ARN명"
            },
            "Action": [
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::자신의 버킷명/*"
        }
    ]
}
 

 

 Version: AWS에서 현재 사용되고 있는 정책 언어의 버전 날짜 (최신 버전) 

 Statement: 정책 생성 (위 코드는 2개 생성) 

 Sid: 1 정책: *(모두)가 S3를 Get할 수 있다. 

 Sid: 2 정책: ARN를 가진 유저만 S3를 Put, Delete할 수 있다. 

 

 

또 다른 보안 장치, 어떤 도메인에서 버킷의 이미지를 사용할 수 있는지

 

 

 
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag"
        ]
    }
]
 

 

 AllowedOrigins: 실제 서비스면 서비스 도메인.com 

 

 

 

 작년의 나는 왜 기록을 안 해놨을까