Azure CLI를 사용하기 위해서는 az login을 진행해야 한다. 이때 만약 회사 내부망을 사용 중이라면, az login 과정에서 에러가 발생할 수 있다. 회사 내부망에서는 인증서 체인 상단에 회사 자체 인증서를 추가하기 때문이다. 따라서 회사의 인증서를 Microsoft SDKs에 추가해줘야 한다. 먼저 Azure CLI를 설치하는 과정부터 간단하게 알아보자.
Azure CLI 설치하기
Mac 유저라면 brew를 통해 간단하게 설치할 수 있다. (공식문서)
brew update && brew install azure-cli
Window 유저라면 여러 방식으로 설치할 수 있는데 (공식문서), 필자는 MSI(Microsoft Installer) 방식으로 설치를 진행했다. 별도의 환경 변수 및 path 설정이 필요 없기 때문에 간단한 방식인 것 같다. 본인의 컴퓨터에 맞게 32비트 혹은 64비트 MSI 파일을 설치하고 실행하면 된다.
Azure의 인프라 배포
Azure의 인프라 배포는 다음 그림과 같이 동작한다.
그림에서 확인할 수 있듯이 Azure CLI는 Azure와 통신하기 위해 Microsoft SDKs라는 도구를 사용한다. 회사 내부망에서 Azure CLI를 사용하려면 회사의 인증서를 SDK에 등록해 주어야 한다.
az login 하기
(다음 설명은 Window를 기준으로 작성하였다. )
먼저 회사 내부망에서 임의의 사이트(예: microsoft.com) 에 접속한다. (Chrome을 사용한다는 가정하에) 다음과 같이 url 좌측의 아이콘을 클릭한 후, [이 연결은 안전합니다.]를 클릭한다.
그리고 [인증서가 유효함]을 선택한다.
[세부정보] Tab을 보면, 다음과 같이 접속한 사이트 인증서 체인 상단에 회사 인증서가 추가된 것을 확인할 수 있을 것이다. 회사의 인증서를 선택하여 [내보내기]를 클릭하고, DER 타입 X.509 바이너리 인코딩(.CER) 형식으로 파일을 저장한다.
필자는 root_ca.cer 파일명으로 저장하였고, 다음 명령어를 통해 openssl을 사용하여 파일을 PEM 형식으로 변환한다.
openssl x509 -inform der -in root_ca.cer -out root_ca.pem
저장된 root_ca.pem 파일을 메모장으로 열고, 전체를 복사한다.
다음으로 Microsoft SDK 인증서 경로 (ex. C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem) 파일을 열어 마지막에 추가한다. (붙여넣기)
그리고 새로운 터미널을 실행하여 다음과 같이 로그인을 진행하면 정상적으로 처리된다.
az login
AWS CLI를 사용하는 경우에는 이러한 별도 인증서 처리 절차가 없어도 회사 내부망에서 로그인을 할 수 있었지만, Azure는 그렇지 않았다. 같은 상황을 겪는 사람들에게 조금이나마 도움이 되고자 해결 과정을 정리해보았다.