AWS

[AWS] CodeCommit 자격증명 오류(fatal : unable to access...403)

박만자 2021. 12. 29. 20:11

CodeCommit 에 변경된 내용을 push 하려하는데, 엥 자꾸 403을 반환한다. 뭐가 문제일까 싶어 구글링을 해보니 자격증명에 관한 문제라고 한다. 

자격증명? 그게 뭔데?

그 전에 IAM에 대해 짚고 넘어갈 필요가 있다. IAM(Identity and Access Management)이란 AWS 서비스들에 대한 인증 및 권한을 관리하는 AWS서비스이다.

이게 왜 중요한가 하면 AWS에서는 이 자격증명이란놈을 IAM에서 관리하기 때문이다. 

처음 AWS 계정을 생성하면 Root User Credential(루트 사용자 권한) 이라는 자격증명을 받게 된다. 이를 통해 AWS의 모든 서비스들을 마음대로 만질 수 있지만 협업에 있어서는 좋은 방법은 아니다. (개인적으로 사용한다면 ok)

보통은 루트 계정을 통해 IAM User를 생성하여 권한을 부여하고 서비스에 접근할 수 있도록 하는것이 일반적인 방법이다.

 

암튼, 자격증명은 쉽게 말해 인증 방식이다. 내가 이 서비스에 접근을 할려면 접근할 수 있는 권한이 있는지를 확인하기 위한 수단이라고 생각하면된다. 

 

그래서 왜 이런 에러가 발생하는가 찾아봤더니 가끔씩 Crendential helper가 Keychain Access와  Windows Valut 같은 암호 관리 도구를 방해하여 인증 실패를 발생시킬 때가 있다고 한다. 

그래서 이전에 로컬 컴퓨터에 CodeCommit에 대한 Credential helper를 구성한 경우, 해당 정보를 제거해야 한다고 나와있다. MacOS의 경우 Keychain Access에서 캐시된 자격증명을 지워야한다고 나와있다.

https://aws.amazon.com/ko/blogs/korea/introducing-git-credentials-a-simple-way-to-connect-to-aws-codecommit-repositories-using-a-static-user-name-and-password/

 

Window의 경우 [시작] -> [검색] -> [Windows 자격 증명 관리] -> [git codecommit 관련 인증 삭제]

MacOS의 경우 [검색] -> [키체인 접근] -> [로그인] -> [암호] -> [git codecommit 관련 인증 삭제]

위 과정을 진행한 후 다시 Git Credential 인증을 하면된다.

 

왜 이런지 더 자세히 찾아보고 싶은데 이보다 더 자세한 내용을 찾아볼 수 없었다. 내 능력이 부족한 걸수도 있다. 좀 더 찾아보고 나중에 추가할 내용이 있으면 추가하도록 하겠다.

 

+추가 403은 권한에러이다. 따라서 자신의 aws-cli에 인증한 IAM 계정에 CodeCommit과 관련된 권한이 부여되어있는지 살펴보자.

 

참고