cloud-init를 사용하여 Azure에서 Linux VM에 사용자 추가

적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합

이 문서는 cloud-init를 사용하여 Azure의 프로비전 시간에서 VM(가상 머신) 또는 VMSS(가상 머신 확장 집합)에 사용자를 추가하는 방법을 보여 줍니다. Azure에서 리소스가 프로비전되면 처음 부팅 시 이 cloud-init 스크립트가 실행됩니다. 기본적으로 cloud-init가 Azure에서 작동되는 방식과 지원되는 Linux 배포판에 대한 자세한 내용은 cloud-init 개요를 참조하세요.

cloud-init를 사용하여 VM에 사용자 추가

모든 새 Linux VM에서 가장 먼저 해야 할 작업 중 하나는 root 사용을 방지하기 위해 자신에 대한 추가 사용자를 추가하는 것입니다. SSH 키는 보안 및 가용성의 모범 사례입니다. 키는 이 cloud-init 스크립트를 통해 ~/.ssh/authorized_keys 파일에 추가됩니다.

Linux VM에 사용자를 추가하려면 현재 셸에 이름이 cloud_init_add_user.txt인 파일을 만들고 다음 구성을 붙여 넣습니다. 이 예제에서는 로컬 컴퓨터에 없는 Cloud Shell에서 파일을 만듭니다. 원하는 모든 편집기를 사용할 수 있습니다. 전체 cloud-init 파일, 특히 첫 줄이 올바르게 복사되었는지 확인합니다. ssh-authorized-keys: 값에 대해 고유한 공개 키(예: ~/.ssh/id_rsa.pub의 콘텐츠)를 제공해야 합니다. 여기에서는 예제를 단순화하기 위해 줄였습니다.

#cloud-config
users:
  - default
  - name: myadminuser
    groups: sudo
    shell: /bin/bash
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - ssh-rsa AAAAB3<snip>

참고 항목

#cloud-config 파일은 포함된 - default 매개 변수를 포함합니다. 프로비전 중에 만든 기존 관리 사용자에 사용자를 추가합니다. - default 매개 변수 없이 사용자를 만드는 경우 Azure 플랫폼에서 만든 자동 생성된 관리 사용자를 덮어쓸 수 있습니다.

이 이미지를 배포하기 전에 az group create 명령을 사용하여 리소스 그룹을 만들어야 합니다. Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다. 다음 예제에서는 eastus 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

az group create --name myResourceGroup --location eastus

이제 az vm create로 VM을 만들고 다음과 같이 --custom-data cloud_init_add_user.txt로 cloud-init 파일을 지정합니다.

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_add_user.txt \
  --generate-ssh-keys

참고 항목

myResourceGroup, vmName, imageCIURN 값을 적절하게 바꿉니다. Cloud-init가 포함된 이미지가 선택되어 있는지 확인합니다.

이전 명령에서 출력에 표시된 VM의 공용 IP 주소에 대한 SSH. 사용자 고유의 사용자publicIpAddress를 다음과 같이 입력합니다.

ssh <user>@<publicIpAddress>

VM 및 지정된 그룹에 사용자가 추가되었는지 확인하려면 다음과 같이 /etc/group 파일의 내용을 확인합니다.

sudo cat /etc/group

다음 예제 출력에서는 cloud_init_add_user.txt 파일의 사용자가 VM과 적합한 그룹에 추가되었음을 나타냅니다.

root:x:0:
<snip />
sudo:x:27:myadminuser
<snip />
myadminuser:x:1000:

다음 단계

구성 변경에 대한 추가 cloud-init 예제를 보려면 다음을 참조하세요.