TOPIC/Cloud

Azure Cloud Shell에 Private하게 접근하기 (1)

H-Y-E-N 2024. 4. 1. 14:48

안녕하세요. HYEN입니다.

오늘은 Azure Cloud Shell에 Private하게 접근하는 방법에 대해 알아보겠습니다. 😉

 

결과부터 말하자면,

Local PC에서 Cloud Shell에 접근하는 것 자체를 제어하는 것은 하기에 적은 테스트 방법으로는 불가합니다. 

 

Microsoft의 공식 문서에 따르면, Cloud Shell에 대한 접근 제어는 ux.console.azure.com 이라는 도메인에 대한 액세스를 제어함으로서 가능하다고 합니다. (https://learn.microsoft.com/ko-kr/azure/cloud-shell/faq-troubleshooting#block-cloud-shell-in-a-locked-down-network-environment)

 

저는 가상 네트워크 즉, 허용된 가상 네트워크 대역에서만 Cloud Shell을 실행할 수 있도록, Local PC에서는 Cloud Shell에 접근이 되어도 정상적으로 Command를 날리지 못하게 하도록 하는 방법을 찾기 위해 이번 테스트를 수행해 보았습니다. 

 

 

Azure Cloud Shell FAQ(질문과 대답)

이 문서에서는 일반적인 질문에 답변하고 Cloud Shell 문제를 해결하는 방법을 설명합니다.

learn.microsoft.com

 

하기 테스트는 가상 네트워크 내에 Cloud Shell을 배포하는 방법에 대한 내용을 다루고 있음을 말씀드리며 이번 글을 시작해 보겠습니다 ! 

 


 

Contents

     

    1. Azure Cloud Shell이란?

    먼저 Azure Cloud Shell이 무엇인지에 대해 알아보고 가겠습니다. 

    Azure Cloud Shell은 Azure의 클라우드 기반 Command Line 환경입니다.
    Azure 리소스를 관리하기 위해 브라우저에서 액세스할 수 있는 인증된 대화형 터미널로 Bash, Powershell 두 가지 환경이 제공됩니다.
    이를 통해 로컬 환경에서 Azure CLI를 설치하거나 환경을 구성하지 않고도 Azure를 관리할 수 있습니다.

     

     

    Azure Portal (https://portal.azure.com/)에 접근하면 하기 스크린샷과 같은 아이콘이 우측 상단에 보입니다. 

    이게 바로 Azure Cloud Shell로, Azure 환경에 대한 관리를 웹 상에서 간단하게 할 수 있는 Command Line 도구입니다. 

     

    2. 가상 네트워크에서 Cloud Shell 사용하기 - Private Endpoint

    첫 번째로 Cloud Shell이 사용하는 Storage Account의 Files에 대해 private endpoint를 생성하면 Local PC에서 접근이 어렵지 않을까 하는 생각에 테스트를 진행해 보았습니다. 

     

    2.1 Azure Cloud Shell 용 Storage Account 생성하기 

    앞서 설명 드린 것과 같이 Azure Portal의 우측 상단에서 Cloud Shell을 실행합니다.

     

    Cloud Shell을 사용하기 위해서는 새로운 Storage Account를 생성해야 합니다.

     

    위와 같이 [새로 만들기] 옵션을 클릭하여 Storage Account와 리소스 그룹을 생성합니다. 

     

    2.2 가상 네트워크 생성하기

    Private Endpoint를 생성하기 위해서 가상 네트워크를 먼저 생성합니다.

     

    • [기본 사항] 탭 

     

    • [IP 주소] 탭 

     

    • [검토 + 만들기] 탭을 클릭하여 유효성을 검사한 후 가상 네트워크를 생성합니다. 

     

    2.3 Storage Account에 Private Endpoint 연결하기

    Cloud Shell 실행 시 생성한 Storage Account의 [공용 네트워크 액세스] 상태는 기본적으로 "모든 네트워크에서 사용"
    입니다.

     

    공용 네트워크 액세스를 차단하기 위해 [공용 네트워크 액세스] 상태를 "사용 안 함"으로 변경해야 합니다. 

     

    Azure Portal로 이동하여 [Storage Account] > [보안 + 네트워킹] > [네트워킹] 탭 > [방화벽 및 가상 네트워크]에서 공용 네트워크 액세스에 대한 옵션을 [사용 안 함]으로 변경합니다.

     

    [저장] 버튼을 클릭하여 해당 내용을 저장합니다.

     

    다음으로 [프라이빗 엔드포인트] 연결 탭을 클릭하여 Storage Account에 대한 Private Endpoint를 생성합니다. 

     

    • [기본 사항] 탭

     

    • [리소스] 탭

     

    • [가상 네트워크] 탭 

     

    • [DNS] 탭 

     

    위와 같은 설정을 마무리한 후 [검토 + 만들기] 탭으로 이동하여 Private Endpoint 생성을 완료합니다. 

     

    2.4 Local PC에서 Cloud Shell 접근하기 

    Cloud Shell을 실행한 후 ⚙️ 버튼을 클릭하여 [사용자 설정 다시 설정] 버튼을 클릭합니다.

     

     

    사용자 설정 다시 설정 창이 표시되면 [초기화]를 클릭합니다.

     

    Azure Cloud Shell 시작 창이 표시되면 [Bash]를 클릭합니다.

     

    다시 한번, 스토리지와의 연결을 위해 하기와 같은 설정을 진행합니다. 

    이번에는 [새로 만들기] 옵션이 아닌 [기존 항목 사용] 옵션을 사용해야 합니다. 

     

    과연! 결과는 어떨까요? 

     

    접근은 가능하지만 Azure file share에 접근이 되지 않아 cloud drive를 이용할 수 없다는 Error Message가 출력됩니다. 

     

    이 경우 Azure CLI 명령어는 사용할 수 있으나 git clone을 통해 가져온 파일의 경우는 Azure file share에 영구히 저장되지 않게 됩니다. 

     

    실제로 테스트를 한번 진행해 보겠습니다. 

     

    az group list -o table 명령어를 통해 현재 구독에 존재하는 리소스 그룹의 리스트를 테이블 형식으로 확인해 보겠습니다. 

     

    명령어가 정상적으로 실행되는 것을 확인할 수 있습니다. 

     

    다음은 git clone 명령어를 통해 GitHub에 있는 소스 코드를 Cloud Shell로 가지고 와 보겠습니다. 

     

    git clone https://github.com/carlosalexei/aks-workshop.git 명령어를 사용하여 Cloud Shell에 소스 코드를 가지고 옵니다. 그후 ls를 입력하여 aks-workshop이라는 directory가 생성된 것을 확인합니다. 

     

    clone 해 온 소스 코드가 Cloud Shell을 다시 시작해도 여전히 남아 있는지 확인하기 위해 하기 스크린샷처럼 전원 버튼을 클릭합니다. 

     

    [다시 시작] 버튼을 클릭하여 Cloud Shell을 다시 시작합니다. 

     

    ls -al 명령어를 사용하여 확인해 보면 동일한 위치임에도 불구하고 aks-workshop이라는 directory가 보이지 않는 것을 확인할 수 있습니다. 

     

     

    이를 통해, 상기 테스트한 방법으로는 Local PC에서 Cloud Shell을 사용하여 Azure 인프라를 관리하는 것을 막지 못한다는 것을 알 수 있습니다. 단순히 Cloud Shell이 재실행되거나 다시 연결될 때 Cloud Shell에 업로드한 폴더나 파일에 대한 부분이 휘발되는 것일 뿐, 접근 제어와 command 실행 제어와는 Private Endpoint가 관련이 없다는 것을 확인하였습니다. 

     


    다음 글에서는 Azure Relay를 사용하여 Cloud Shell을 가상 네트워크 내에 배포하는 방법에 대해 알아보도록 하겠습니다. 😗

     

    다음 글 : https://with-cloud.tistory.com/35 

     

    Azure Cloud Shell에 Private하게 접근하기 (2)

    안녕하세요. HYEN입니다. 오늘은 지난 글에 이어 Azure Relay를 사용하여 Azure Cloud Shell을 가상 네트워크에 배포하는 방법에 대해 알아보겠습니다. 😎 지난 글 : https://with-cloud.tistory.com/31 Azure Cloud Shel

    with-cloud.tistory.com

     

    728x90
    320x100
    SMALL