nestjs서버에서 aws-sdk를 사용하여
s3에 있는 객체리스트를 받아오는 코드 구현중 "access denied"에러 발생
확인해보니
iam 계정에 붙은 정책에 action과 resource가 아래와 같이 있을 때,
{
"Statement": [
{
"Sid": "123",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
],
"Resource": [
"arn:aws:s3:::my-files/*"
]
}
]
}
ListBucket 액션의 대상 리소스는 버킷이어야 동작한다
위와 같이 와일드카드(*)로 되어있으면 동작하지 않음
계속 GetObject는 되는데 왜 쟤만 access denied 되는지
상관없는 버킷정책과, 객체에 붙은 권한 등에서 삽질을 하다가
확인함
결론: ListBucket을 사용할 때는 Resource가 정확히 버킷이어야 함
"Resource": [
"arn:aws:s3:::my-files"
]
//getObject와 statement를 나눠주던가 resource를 아래와 같이 쓰던가 하면 됨
"Resource": [
"arn:aws:s3:::my-files"
"arn:aws:s3:::my-files/*"
]
'TIL,WIL(일간,주간 회고)' 카테고리의 다른 글
[TIL][트러블 슈팅][rxjs]에러 처리 (0) | 2024.06.22 |
---|---|
[TIL] http/1.1와 http/2 차이 (0) | 2024.05.06 |
[TIL]github actions aws-credential 에러 (간단한 트러블 슈팅) (0) | 2023.10.28 |
[TIL] mongoose(몽고디비) dot notation, filtered positional operator (0) | 2023.10.25 |
[TIL][리눅스] .env 파일 변경확인 법(aws 코드디플로이) (0) | 2023.10.25 |