상세 컨텐츠

본문 제목

[AWS CodeDeploy Errors] ApplicationStart deploy.log: Permission denied

Infra/Error

by young1403 2023. 10. 17. 16:58

본문

권한 문제가 나왔다.

chmod로 해결할 수 있을 거란 생각에 가벼운 마음으로 시작했었지만 결코 가볍지 않았다.

 

 

[1] chmod

우선 가장 가볍게 생각하고 문제를 해결할 수 있는 chmod 권한을 설정해 주었다. 상위 디렉토리에는 700번대, 하위 파일에는 600번대 권한을 주어도 계속해서 권한 거부가 나왔다. 이때에는 codedeploy를 매번 실행시키는게 아니라 에러가 나오는 deploy.sh의 명령어를 직접 찍어보았다.

 

위 스크린샷에서 line 13번의 코드는 아래와 같았다.

echo "$TIME_NOW > $JAR_FILE 파일 복사" >> $DEPLOY_LOG

 

해당 내용을 "deploy.log"파일에 적는 상황이었다. 아무리 deploy.log파일에 높은 권한을 부여해도 안되고 그 주변 그 상위 디렉토리에 접근이 안되는건가 싶어 읽기,수정,쓰기에 관한 모든 권한을 부여하고 있었지만 적용되지 않았다.

 

[2] user, group 확인

그러던 중 이전 배포시에는 appspec.yml 에있는 permission에 user와 group을 지정하지 않았었는데 이 권한 문제가 사용자와 사용자 그룹과 연관이 있다는 글을 보았다. 그래서 현재 파일이 어떤 사용자와 그룹에 속해있고 무슨 권한인지 확인을 해보았다.

 

# deploy.log 파일의 권한과 사용자, 그룹등 정보를 나타내는 명령어 
ls -l /path/to/deploy.log 

# 출력값
-rwxr-xr-x. 1 root root 685 Oct 16 13:25 /home/ec2-user/jungsuri/script/jungsuri-deploy.sh

root 계정과 그룹이 적용되어 있음을 볼 수 있다.

 

그럼 이쯤에서 드는 생각은 'root는 어지간한 권한을 다 갖고 있는 최상위 관리

자아닌가? 그럼 더욱 되어야 하는데 왜 안되는 걸까?'

인데. root관리자로 해당 파일에 접근하려면 명령어가 다르다. su를 사용한 명령어를 사용해야 하는데 내가 deploy.sh에서 사용하는 명령어는 일반 유저와 그룹을 기준으로 한 일반 명령어였다.

 

그렇다고 마음대로 유저와 그룹을 정할 수는 없고 'getent' 명령어를 사용해서 나오는 유저명과 그룹명을 사용할 수 있다.

이참에 그룹을 명시적으로 설정해야겠다는 생각에 ec2-user로 셋팅하였고 다시 조회해 보았을 때 아래와 같은 결과를 얻을 수 있었다.

# 적용 후
[ec2-user@ip-10-0-0-205 jungsuri]$ ls -l deploy.log

-rwxr-xr-x. 1 ec2-user ec2-user 1502 Oct 17 06:50 deploy.log

 

 

내 손으로 버튼을 눌렀지만 타의반이상의 상황으로 재배포 하는 상황을 맞닥뜨렸다. curl 명령어를 통한 현재 vpc와 인바운드처리가 어떻게 되고 있는지를 보면서 인스턴스를 다시 띄워 복습하는 느낌으로 공부하는 것 같아 재미있었다. codedeploy쪽도 작년 팀프로젝트 배포때는 실패하고 수동배포에서 그쳤지만 올해 처음으로 CI/CD를 적용해본 것이 었기에 미흡한 점이 많았다.

 

appspec에서 permission 에 대한 유저와 그룹을 지나쳐온 것도 그렇고 deploy.sh 파일을 만들 때 ec2 instance로 올라온 프로젝트 파일의 어떤 jar파일을 복사해서 어디로 옮기고 어떤 것을 실행할지에 대한 코드도 자세히보니 잘못적어놓은 것이 있었다. 블로그에서 퍼오고 이해를 정확하게 하지 않고 부분부분만 수정하다보니 생긴 문제였다.

 

잠결에 일어난 실수(인스턴스 종료 -> 이 부분은 aws에서 네이밍을 삭제로 바꿔주면 어떨지.. )덕분에 재학습을 할 수 있어 좋았고. 다시 공부하러 가봐야겠다..

 

이상 회고 같은 에러해결 포스팅이었습니다. 

 

에러없는 세상을 꿈꿉니다.

 

감사합니다.

 

 

관련글 더보기

댓글 영역