본문 바로가기
AWS/IAM

S3 delete_objects access denied

by leopard4 2023. 3. 15.

S3 버킷에 이미지를 삭제하기위해 boto3를 연결

client = boto3.client('s3',
                              aws_access_key_id = Config.ACCESS_KEY,
                              aws_secret_access_key = Config.SECRET_ACCESS
                              )

삭제 메소드를 실행

client.delete_objects(
            Bucket=Config.BUCKET_NAME,
            Delete={
                'Objects': [
                    {
                        'Key': imgUrl
                    }
                ],
            },
            )

an error occurred (accessdenied) when calling the deleteobject operation: access denied

액세스 권한이 없다는 에러 메세지를 반환했다.

 

나는 S3 풀액세스 권한을 분명히 설정해두었고

 

버킷또한 개방상태

ACL도 문제가 없었고

S3의 정책권한도 여러번 설정했지만 되지않았고

그래서 

AWS가 S3버킷의 객체삭제를 의도적으로 막아놓았다고 생각했다.

 

그리고 결국 알아낸것이

 

문제를 일으키는 권한

IAM에 2개의 권한이 자기멋대로 설정되있었다.

비밀번호를 바꾸라는 권한과, IAM을 잠구는 권한

 

AWS매니저 콘솔에서 알림을 확인해보니 

 

내깃허브에 config파일을 보여주었다. 

public 상태로 공개 되어있어 악용의 소지가 있다는내용 

 

때문에 IAM을 새로 발급하고 config파일을 교체했다.