연습 - Azure VM에 대한 시스템 할당 관리 ID 구성

완료됨

앱을 호스트하는 VM(가상 머신)이 Azure에 배포되었습니다. 이제 회사의 Azure 구독에서 관리 ID를 사용하도록 설정해야 합니다. 이 개념은 재고 추적 앱이 필요한 Azure 리소스에 액세스할 수 있도록 하는 것입니다.

이 단원에서는 VM의 시스템이 할당한 관리 ID를 만듭니다. ID 내에서 Azure 리소스에 액세스하는 방법을 확인할 수 있습니다.

환경 설정

  1. 다음 코드를 사용하여 회사의 개인 데이터를 저장할 Azure Key Vault의 인스턴스를 만듭니다. 모든 Azure Key Vault 이름은 전역적으로 고유해야 합니다.

    export VMNAME=prodserver
    export KVNAME=furniture-secrets$RANDOM
    
    az keyvault create --name $KVNAME \
        --resource-group <rgn>[Sandbox resource group]</rgn> \
        --default-action Allow \
        --location $(az resource list --output tsv --query [0].location) \
        --sku standard
    
  2. 회사의 앱을 호스트할 VM을 만듭니다. 환경 변수에 공용 IP 주소를 저장합니다.

    export publicIP=$(az vm create \
        --name $VMNAME \
        --resource-group <rgn>[Sandbox resource group]</rgn> \
        --image Ubuntu2204 \
        --generate-ssh-keys \
        --output tsv \
        --query "publicIpAddress")
    

    참고

    VM을 만드는 데 몇 분 정도 걸릴 수 있습니다.

Azure VM에 대한 시스템 할당 관리 ID 구성

  1. 시스템 할당 관리 ID를 VM에 할당합니다.

    az vm identity assign \
      --name $VMNAME \
      --resource-group <rgn>[Sandbox resource group]</rgn>
    

    다음 명령은 관리 ID를 보여 주는 응답을 반환합니다. 다음은 응답의 예입니다.

    {
        "systemAssignedIdentity": "a78ddd60-183b-4e27-9f0d-c11a11c417d8",
        "userAssignedIdentities": {}
    }
    

키 자격 증명 모음을 사용하여 비밀 저장

  1. 키 자격 증명 모음에 연결 문자열을 추가합니다.

    az keyvault secret set \
      --vault-name $KVNAME \
      --name DBCredentials \
      --value "Server=tcp:prodserverSQL.database.windows.net,1433;Database=myDataBase;User ID=mylogin@myserver;Password=examplePassword;Trusted_Connection=False;Encrypt=True;"
    
  2. 키 자격 증명 모음 이름을 적어 둡니다.

    echo $KVNAME
    

회사의 재고 추적 앱에 대한 VM 설정

  1. SSH를 사용하여 VM에 액세스합니다.

    ssh $publicIP
    

    프롬프트에 를 입력합니다.

  2. 다음 연습에서는 모듈의 샘플 앱에서 사용할 VM에 .NET Core 버전을 다운로드하여 설치합니다.

    sudo snap install dotnet-sdk --classic --channel=3.1
    

    참고 항목

    .NET SDK 설치를 완료하는 데 몇 분 정도 걸릴 수 있습니다.

  3. 이 모듈의 샘플 앱의 소스 코드를 다운로드합니다.

    git clone https://github.com/MicrosoftDocs/mslearn-authenticate-apps-with-managed-identities identity
    
  4. SSH 세션을 종료합니다.

    exit