S3 bucket 객체 삭제 안됨

형기브·2023년 7월 23일

troubleShooting

목록 보기
1/8

문제

2023-07-22T20:29:40.018+09:00 ERROR 9632 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.hibernate.LazyInitializationException: failed to lazily initialize a collection: could not initialize proxy - no Session] with root cause

org.hibernate.LazyInitializationException: failed to lazily initialize a collection: could not initialize proxy - no Session

500 에러가 발생.

이 에러는 사실 @Transactional 어노테이션을 달지 않아서 생긴 문제였다.

다음.

2023-07-22T20:38:05.973+09:00 ERROR 4672 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: WGZVQ1RJA9TW0YVQ; S3 Extended Request ID: vaNHv2TFHnDQtaE6wdpKPhQ144KaziRf+BFuAfH7TZmeVcQum82VxxcS/1I5bSYo7oxnIhpVlAI=; Proxy: null), S3 Extended Request ID: vaNHv2TFHnDQtaE6wdpKPhQ144KaziRf+BFuAfH7TZmeVcQum82VxxcS/1I5bSYo7oxnIhpVlAI=] with root cause
com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;

프로젝트에서 게시물에 관련된 코드를 맡게되어서 s3 버킷을 사용해서 이미지파일을 관리를 하던중 버킷에 객체가 등록은 잘 되지만 삭제가 되지 않아서 골머리를 앓고 있었다.

시도

  1. 정책도 수정해보고... "Action"을 모두 열어도 보았다...
{
    "Version": "2012-10-17",
    "Id": "Policy1690084618997",
    "Statement": [
        {
            "Sid": "Stmt1690084617464",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::pin-clone-bucket/*"
        }
    ]
}
  1. 객체 소유권을 변경하고 ACL(액세스 제어 목록)을 수정해보려 했지만
    버킷 소유자 외에는 쓰기 권한이 설정이 되지 않았다.

업로드중..

  1. ... 분명 오랜 시간동안 이것저것 시도를 많이 한 것 같은데...

해결

역시 문제는 가까이 있었다. IAM 문제였다.

내 aws 엑세스키와 시크릿키가 Github에 노출되어서 권한이 막힌 것 같다.

그런데 왜 삭제만 안되는거였지??? 이 부분은 아직도 모르겠다

그래서 aws support에 이슈에 대한 조치를 취했다고 보고하고 이슈를 닫고

엑세스 키를 다시 발급받은 후 좀 기다렸다가 시도했지만....

여전히 같은 문제가 발생...

포기하고 다음날 아침에 일어나서 다시 엑세스 키를 발급받고 시도하니 정상적으로 삭제가 되었다.

알게된 점

분명 엑세스키 노출 문제를 전에 겪었던 적이 있어서 조심하려고 했지만 또 키를 포함한 파일을 푸쉬해버렸다. 더욱 더 조심 해야겠다.

aws에서 권한에 대한 디테일한 설정이 가능하다는 것을 알았다.

profile
Slow but Steady

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기