인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

송사무엘님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 AWS 입문/실전

[실습] 3. S3를 활용해 Express 서버에 이미지 업로드 기능 구현하기

iam 권한과 관련된 질문

작성

·

59

·

수정됨

0

안녕하세요. express를 통해서 개인 프로젝트를 만들고 있습니다.

 

제가 이미지를 쓰는 이유는 회원가입 시 유저의 프로필 사진을 업로드용으로 만드는 것이고 나중에 확장을 통해서 이력서 글 작성 시에도 이미지를 넣고 싶습니다.

 

강사님께서 말씀해주신 iam 권한과 관련하여 gpt에서 문의하니 강사님께서 말씀해주신 것과 다르게

권한 부여 (Step 2)

  • 기존 정책 사용AmazonS3FullAccess (모든 S3 권한 부여) 사용하지 마! (보안 위험!)

  • 대신, 사용자 지정 정책을 직접 생성 (아래 설명 참고)

    이렇게 사용하지말라고 하더군요.

액세스 키랑 비밀 액세스 키를 .env에 가리고 깃허브에 올리지 않는다고 해도 보안상 위험하다고 하는데 어떤게 맞을까요?


그러면서 Presigned URL이란 것을 추천하는데 제가 아직 이것에 대해서 잘 모르는데 혹시 Presigned URL을 처음 사용하는 사람도 설명이 잘 되어 있는 참고 글 같은게 있을까요?

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 사무엘님! 질문 잘 해주셨습니다~~!!

S3FullAccess를 부여해도 될 때가 있고 부여하면 안 될 때가 있습니다!

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-S3-Pre-signed-URL-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0

위 링크를 보시면 어떤 사용자든 접근할 수 있게 만들 때는 S3FullAccess를 설정해도 괜찮습니다!

image.png

 

만약 말씀해주신 것처럼 유저의 프로필 사진은 다른 사용자가 보면 안되고 해당 유저만 볼 수 있게끔 설정해야 하기 때문에 권한을 조금 다르게 설정해야 합니다. 그게 바로 pre-signed url입니다.

https://akasai.tistory.com/12

위 링크가 Node 기반으로 작성되어 있는 것 같아서 첨부했습니다!

 

한번 위 링크 및 검색을 통해 구현해보시고

이해 안 되시는 점 있으시면 추가적으로 댓글 남겨주세요~~

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.
송사무엘님, 강의를 들으시면서 IAM 권한 관리 및 보안에 관련된 고민이 있으시군요.

IAM 권한 관리와 보안

IAM에서 S3에 대한 권한을 설정할 때, 보안상의 이유로 ‘AmazonS3FullAccess’와 같은 모든 권한을 부여하는 정책은 추천되지 않습니다. 대신 필요한 최소한의 권한만 부여하여 사용하는 것이 좋습니다. 이는 보안 위험을 줄이기 위해 권장되는 방법입니다.

기본적으로 사용자가 접근 가능한 리소스와 그 수준(읽기, 쓰기 등)을 세밀하게 조정하여 불필요한 권한을 줄이는 것이 핵심입니다.

Presigned URL

Presigned URL은 S3의 객체에 대한 임시 접근 권한을 제공하는 URL입니다. 이 URL을 이용하면 IAM 사용자 없이도 지정된 시간동안 S3에 있는 특정 객체에 접근할 수 있게 됩니다. 이는 특히 사용자의 데이터 업로드나 다운로드를 허용해야 하는 경우에 유용하며, 보안적으로도 안전한 방법 중 하나입니다.

Presigned URL에 대한 이해를 돕기 위한 참고 자료로는 다음과 같은 URL을 추천드립니다:
- AWS 공식 문서: 설정 및 Presigned URL 사용

이 링크에서 Presigned URL의 개념과 사용 방법을 구체적으로 설명하고 있으니 참고하시면 많은 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.