연습 - 백 엔드 풀의 암호화 구성
배송 포털 애플리케이션에 대한 엔드 투 엔드 암호화를 구현하려고 합니다. 사용자와 서버 간에 모든 데이터를 암호화하면 권한이 없는 사용자가 데이터를 가로채서 읽을 수 없도록 할 수 있습니다.
이 단원에서는 웹 애플리케이션 및 Application Gateway를 설정하겠습니다. 그 다음에는 자체 서명된 SSL 인증서를 만들고 백 엔드 풀에서 암호화를 사용하도록 설정하여 Application Gateway에서 서버로 이동하는 트래픽을 보호하겠습니다.
다음 이미지에는 이 연습에서 구성할 요소가 강조 표시되어 있습니다. Azure Application Gateway v2를 사용하여 애플리케이션 게이트웨이를 설정합니다.
가상 머신 및 Application Gateway 배포
브라우저에서 Azure Cloud Shell을 열고 리소스를 만들려는 구독에 액세스하여 디렉터리에 로그인합니다. 이 연습에서는 Bash 셸 환경을 사용합니다.
Cloud Shell에서 다음 명령을 실행하여 리소스에 대한 리소스 그룹을 만듭니다.
<resource group name>
을 리소스 그룹의 이름으로 바꾸고<location>
을 리소스를 배포하려는 Azure 지역으로 바꿉니다.az group create --resource-group <resource group name> --location <location>
Cloud Shell에서 다음 명령을 실행하여 리소스 그룹 이름을 저장할 변수를 만듭니다.
export rgName=<resource group name>
Azure Cloud Shell에서 다음 명령을 실행하여 배송 포털의 소스 코드를 다운로드합니다.
git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
배송 포트 폴더로 이동합니다.
cd shippingportal
다음 설치 스크립트를 실행하여 가상 머신, 인증서 및 애플리케이션 게이트웨이를 만듭니다.
bash setup-infra.sh
참고 항목
스크립트를 완료하는 데 몇 분 정도 걸립니다. 게이트웨이 및 리소스의 압축을 풀고 구성하기 위해 여러 프로세스를 통해 작동하도록 허용합니다. 프로세스가 0개의 경고와 0개의 오류와 함께 성공했음을 확인할 수 있습니다.
웹 서버가 올바르게 구성되었는지 확인합니다.
다음 명령을 실행하여 설치 스크립트에서 만든 웹 서버의 URL을 표시합니다.
echo https://"$(az vm show \ --name webservervm1 \ --resource-group $rgName \ --show-details \ --query [publicIps] \ --output tsv)"
URL을 복사하여 웹 브라우저에 붙여넣고 URL로 이동합니다.
브라우저에 다음 이미지와 유사한 경고 메시지가 표시될 가능성이 높습니다. 경고 메시지의 정확한 콘텐츠는 브라우저에 따라 달라질 수 있습니다. 예제 이미지는 Microsoft Edge에서 가져온 것입니다.
인증할 수 없는 자체 서명된 인증서를 통해 웹 서버가 구성되었기 때문에 이 경고가 발생합니다. 이 경고 페이지에서 링크를 찾아서 선택하여 웹 사이트로 진행합니다. 예를 들어 웹 페이지로 이동 또는 고급을 선택한 다음 계속 또는 해당 항목으로 이동합니다. 결과는 다음 이미지와 같이 배송 포털 홈페이지로 이동합니다. 서버가 올바르게 구성되었는지 테스트하는 샘플 앱입니다.
백 엔드 풀의 암호화 구성
다음 명령을 실행하여 웹 서버 역할을 하는 가상 머신의 개인 IP 주소를 가져옵니다.
echo privateip="$(az vm list-ip-addresses \ --resource-group $rgName \ --name webservervm1 \ --query "[0].virtualMachine.network.privateIpAddresses[0]" \ --output tsv)"
개인 IP 주소를 저장할 변수를 만듭니다. 이전 단계의 IP 주소로 바꿉
<privateIP>
니다.export privateip=<privateIP>
가상 머신의 개인 IP 주소를 사용하여 Application Gateway에 대한 백 엔드 풀을 설정합니다.
az network application-gateway address-pool create \ --resource-group $rgName \ --gateway-name gw-shipping \ --name ap-backend \ --servers $privateip
백 엔드 풀의 VM 인증서를 신뢰할 수 있는 루트 인증서로 Application Gateway에 업로드합니다. 설치 스크립트는 이 인증서를 생성하고 shipping-ssl.crt 파일에 저장했습니다.
az network application-gateway root-cert create \ --resource-group $rgName \ --gateway-name gw-shipping \ --name shipping-root-cert \ --cert-file server-config/shipping-ssl.crt
인증서를 사용하도록 HTTP 설정을 구성합니다.
az network application-gateway http-settings create \ --resource-group $rgName \ --gateway-name gw-shipping \ --name https-settings \ --port 443 \ --protocol Https \ --host-name $privateip
다음 명령을 실행하여 백 엔드 풀에 대한 신뢰할 수 있는 인증서를 백 엔드 VM에 설치된 인증서로 설정합니다.
export rgID="$(az group show --name $rgName --query id --output tsv)" az network application-gateway http-settings update \ --resource-group $rgName \ --gateway-name gw-shipping \ --name https-settings \ --set trustedRootCertificates='[{"id": "'$rgID'/providers/Microsoft.Network/applicationGateways/gw-shipping/trustedRootCertificates/shipping-root-cert"}]'
이제 배송 포털 사이트와 애플리케이션 게이트웨이를 실행하는 가상 머신이 있습니다. Application Gateway와 애플리케이션 서버 간에 SSL 암호화를 구성했습니다.