ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS - S3 & IAM
    Project using node.js/Cloning Youtube 2020. 9. 7. 09:39

    소개

      S3는 AWS의 파일을 업로드할 수 있는 시스템이다. 구글 클라우드 같은 것이라고 생각하면 된다. 우리는 여태까지 video와 avatar를 local에 저장하고 그에 대한 url을 mongoDB에 저장했다. 이제는 이러한 파일들을 local이 아닌 외부 storage인 AWS-S3에 저장할 것이다. 먼저 AWS 홈페이지를 방문해서 가입을 하자.

    AWS-S3

    상단에 있는 navigation에서 서비스->S3를 클릭한다.

      나는 예전에 미리 생성해 둔 bucket이 2개가 있다. 우리가 할 것은 +버킷 만들기다. 새로운 bucket을 생성하자. 여기서 bucket이란 파일을 업로드할 공간을 뜻한다. 우리는 새로 생성한 bucket에 video와 avatar를 저장할 것이다.

    버킷 이름(이름은 하고 싶은 것을 해도 된다.)과 리전을 다음과 설정한다. 그리고 '다음'

    이 부분은 건드리지 않고 '다음'을 누른다.

      wetube는 모든 사용자가 video와 avatar를 업로드할 수 있어야 하기 때문에 bucket에 접근할 수 있어야 한다. 그러므로 나는 '모든 퍼블릭 액세스 차단'을 해제 하고 위 경고 창에 대해서 동의 체크를 한다. 그리고 '다음' 클릭.

    '버킷 만들기' 클릭

      버킷이 생성되었다. 하지만 액세스 영역에서 '객체를 퍼블릭으로 설정할 수 있음'이라고 써 있다. 아직 퍼블릭 상태가 아니라는 것이다. bucket을 public 상태로 만들어보자. wetube-v3를 클릭하고 '권한'을 클릭한다.

    권한->액세스 제어 목록을 클릭한다.

    '퍼블릭 액세스'에서 Everyone을 클릭하고 오른쪽 항목들을 모두 check 해준다. 그 후 저장한다.

    bucket wetube-v3가 public이 된 것을 확인할 수가 있다.

    AWS-IAM

      multer를 이용해서 video와 avatar를 s3에 업로드할 것인데, 그러기 위해서는 AWS key가 필요하다. AWS key는 AWS-IAM에서 얻을 수 있다. 서비스->IAM을 클릭한다.

    '사용자 추가'를 한다. 나는 예전에 미리 생성해 둔 wetube가 있다.

      사용자 이름은 당신이 원하는 대로 짓고 액세스 유형은 '프로그래밍 방식 액세스'를 선택한다. 우리가 필요한 것은 액세스 키 ID 및 비밀 액세스 키가 필요하기 때문이다.

    정책 설정은 중요하다. 내가 생성하는 user에게 많은 권한을 주고 타인이 나의 key 값을 알게 된다면 s3 이외에도 db나 다른 aws 기능을 건드려서 시스템을 파괴할 수가 있기 때문이다. key 값이 탈취당하였을 경우 피해를 s3로 최소화시켜야 한다.

    '기존 정책 직접 연결' -> 정책 필터에서 s3 검색 -> AmazonS3FullAccess를 선택 -> '다음:태그' 클릭한다.

    무시하고 '다음:검토' 클릭

    사용자 만들기를 통해서 사용자를 만든다.

      사용자가 생성이 되고 액세스 키 ID와 비밀 액세스 키 값을 준다. 이것을 절대로 노출되어서는 안 된다. 그 래서 나도 가리고 블로그에 게시한 것이다. 그리고 여기서 닫기를 누르면 다시는 key 값을 확인할 수 없으니 .env 파일에 저장하자.

    참고 자료

    • 노마드 코더의 유튜브 클론 강의

    'Project using node.js > Cloning Youtube' 카테고리의 다른 글

    Delete the video on s3  (0) 2020.09.08
    Multer - s3  (0) 2020.09.07
    flash  (0) 2020.09.07
    SCSS-comments  (0) 2020.09.06
    AJAX - API of deleting comments  (0) 2020.09.06

    댓글

Designed by Tistory.