[TIL]23.02.27 Aws S3 bucket + IAM

hyewon jeong·2023년 2월 27일
0

TIL

목록 보기
100/138
post-thumbnail

생성하며 겪은 에러 등을 다르고 기본 생성과정을 생략합니다.

📌01 .S3 bucket생성

  1. 객체 URL 확인하기

    👉 S3에 업로드 되는 모든 파일에는 객체 URL이 부여됩니다. 해당 URL을 브라우저 주소창에서 호출하면 업로드된 파일이 보입니다. 하지만 파일에 권한을 퍼블릭 하게 주지 않았기 때문에 AccessDenied 라는 에러가 보입니다. ![](https://velog.velcdn.com/images/wonizizi99/post/86cb988d-0fec-4358-9af6-ffb1b92e91de/image.png)
    • AWS 도 디버깅이 필요하다 (access Denied 는 파일이 있긴 한데 이 파일에 대한 소유권이 없어서 생기는 에러임,즉 권한문제!!)

      에러 해결 과정 ~

    • 파일 저장소의 권한에서 ACCESS 는 쉽게 파일읽기/쓰기 이다.

 에러 원인 : 객체 소유자는 나로 되어 있고 , 나만 객체 읽기 쓰기 가 되어 

해결 하려면 [모든사람(퍼블릭 엑세스)] 로 바꿔줘야한다. [편집] 클릭 

  • 편집이 클릭 되지 않는다면 [버킷 소유자 적용 클릭] - 활성화 로 변경 - 복원 어쩌고에 동의하는 칸에 클릭 하고 다시 페이지를 보면 편집버튼이 활성화가 된다.

  • 다시 편집 클릭

여전히 모든사람에 대한 읽기/쓰기가 비활성화 되어 있다. 이유는 노란색 박스에 있음.

적재적소하게 맞는 걸로 체크하여 설정 하면됨 ( 실습 중엔 체크하지 않아 다 허용할 수 있게함)

  • ⚠️  버킷의 권한은 서비스의 쓰임에 따라 설정하면됨

예> 퍼블릭한 버킷 하나/ 퍼블릭하지 않은버킷 하나 를 두는 방법 또는 한 버킷 안에서 퍼블릭파일과 퍼플릭하지 않은 파일로 나누기도 함

여전히 에러

  • 다시 버킷 클릭 - 파일클릭 해서 보면

버킷의 권한이 퍼블릭 하다고 해서 파일까지 퍼블릭이 자동으로 적용되지 않는다. 그래서 업로드할 파일이나 업로드된 파일은 별도로 권한 설정이 필요함.

⚠️ 또는 presigned url 할때 설정값인데 이것을 하고나면 버킷이름 아래에 빨간박스로 퍼블릭에세스가능 → 이미지 보임

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:Put*",
                "s3:Get*"
            ],
            "Resource": "arn:aws:s3:::final-8-team-project/*" 내버킷이름넣기
        }
    ]
}

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

한 후 다시 브라우저로 새로고침하면 이미지 파일이 잘 업로드 된 것을 볼 수 있음

📌 02 .**IAM ( AWS Identity and Access Management )**

💡해결법

해당 링크 보고 직접 엑세스 키 ID, 비밀 엑세스 키 생성하기

**계정 액세스 키 ID와 보안 액세스 키를 얻는 방법은 다음과 같습니다.**

AWS 계정 및 액세스 키 - AWS Tools for PowerShell

메모해 둘것 ( 유출 조심)
엑**세스 키 ID :

**비밀 엑세스 키 :

  • application.yml설정
cloud:
  aws:
    credentials:
      secret-key: nO4OGU7dgf0pmfDTSBV4el/wimrYr2X+r8VoQw24
      access-key: AKIA3PSCLOQMSB5J7ZBK
    s3:
      bucket: final-8-team-project
    region:
      static: ap-northeast-2
    stack:
      auto: 'false'
profile
개발자꿈나무

0개의 댓글