원격 데스크톱 프로토콜(RDP)을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) Windows 인스턴스에 연결할 수 있는 다른 사용자를 추가하려고 합니다.
간략한 설명
EC2 인스턴스에 연결할 수 있는 RDP 권한을 가진 새 로컬 사용자를 생성하려면 사용자 데이터의 일부로 실행되는 PowerShell 명령을 사용합니다. 새 인스턴스를 시작하려는 경우 인스턴스가 재시작되거나 재부팅될 때마다 사용자 데이터가 자동으로 실행됩니다. 이미 시작된 인스턴스를 사용하는 경우에는 사용자 데이터를 실행하도록 예약해야 합니다.
자세한 내용은 사용자 데이터 실행을 참조하십시오.
해결 방법
중요: 인스턴스를 중지하고 시작하기 전에 다음 작업을 수행하십시오.
참고: 인스턴스를 중지하고 시작할 때 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하여 외부 트래픽을 인스턴스로 라우팅하는 것이 가장 좋습니다. Amazon Route 53을 사용하는 경우 퍼블릭 IP 주소가 변경될 때 Route 53 DNS 레코드를 업데이트해야 할 수 있습니다.
시작 시 인스턴스에 PowerShell 스크립트 추가
다음 단계를 완료하십시오.
-
인스턴스 시작 마법사를 사용하여 인스턴스 시작을 구성한 다음, 스토리지 구성에서 고급을 선택합니다.
-
고급 세부 정보에서 사용자 데이터를 선택합니다.
-
다음 PowerShell 스크립트를 입력합니다.
<powershell>$user = New-LocalUser -AccountNeverExpires:$true -Password ( ConvertTo-SecureString -AsPlainText -Force 'ExampleP@ssword!') -Name "RDPUser" -FullName "Local RDPUser" -Description "Local Administrator"
Add-LocalGroupMember -Group "Administrators" -Member $user
Add-LocalGroupMember -Group "Remote Desktop Users" -Member $user
</powershell>
참고: 위의 예제 스크립트에서는 암호가 **ExampleP@ssword!**이고 이름이 RDPUser인 새 로컬 사용자를 만듭니다. AWS 계정은 enabled로 설정되어 있고, 만료되지 않으며, 간략한 설명이 포함되어 있습니다. 스크립트는 사용자 계정을 Administrators 그룹과 Remote Desktop Users 그룹에 모두 추가합니다. Remote Desktop Users 그룹에 대한 액세스가 필요하지만, 필요한 경우 Add-LocalGroupMember -Group "Administrators" -Member $user 섹션을 제거할 수 있습니다.
-
인스턴스 시작을 선택합니다.
시작 후 인스턴스에 PowerShell 스크립트 추가
EC2 인스턴스가 이미 시작된 경우 다음 단계를 완료하십시오.
-
Amazon EC2가 다음 시작 시 업데이트된 사용자 데이터를 반영하도록 설정을 구성합니다.
-
EC2 인스턴스를 중지합니다.
-
Amazon EC2 콘솔을 엽니다.
-
인스턴스를 선택하고 해당 인스턴스를 선택합니다.
-
작업을 선택하고 인스턴스 설정을 선택합니다.
-
사용자 데이터 보기/변경을 선택합니다.
-
사용자 데이터에 다음 PowerShell 스크립트를 입력합니다.
<powershell>$user = New-LocalUser -AccountNeverExpires:$true -Password ( ConvertTo-SecureString -AsPlainText -Force 'ExampleP@ssword!') -Name "RDPUser" -FullName "Local RDPUser" -Description "Local Administrator"
Add-LocalGroupMember -Group "Administrators" -Member $user
Add-LocalGroupMember -Group "Remote Desktop Users" -Member $user
</powershell>
참고: 위의 예제 스크립트에서는 암호가 **ExampleP@ssword!**이고 이름이 RDPUser인 새 로컬 사용자 계정을 만듭니다. 계정은 enabled로 설정되어 있고, 만료되지 않으며, 간략한 설명이 포함되어 있습니다. 스크립트는 사용자 계정을 Administrators 그룹과 Remote Desktop Users 그룹에 모두 추가합니다. Remote Desktop Users 그룹에 대한 액세스가 필요하지만, 필요한 경우 Add-LocalGroupMember -Group "Administrators" -Member $user 섹션을 제거할 수 있습니다.
-
인스턴스를 시작합니다.
Amazon EC2에서 사용자 계정을 생성했는지 확인
Amazon EC2에서 사용자 계정을 생성했는지 확인하려면 AWS Systems Manager의 한 기능인 Session Manager를 사용하거나 PSSession 원격 액세스를 사용할 수 있습니다.
$usernamelist 변수를 생성하려면 다음 명령을 실행하십시오.
$usernamelist = Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'" |Select Name, Status, Disabled, AccountType, Lockout, PasswordRequired, PasswordChangeable, SID
참고: $usernamelist 변수에는 로컬 계정이 true임 요구 사항과 일치하는 모든 사용자 계정 목록이 포함됩니다.
생성된 사용자 계정의 상세 정보를 보려면 다음 명령을 실행하십시오.
$usernamelist | select-string -AllMatches RDPUser
참고: RDPUser를 사용자 계정 이름으로 바꾸십시오.
문제 해결
새 사용자 계정을 추가할 때 문제가 발생하는 경우 다음 작업을 수행하십시오.
- Amazon EC2에서 사용자 계정을 생성하지 않은 경우, route print 또는 invoke-webrequest 명령을 실행하여 인스턴스 메타데이터 및 사용자 데이터에 대한 액세스를 확인합니다. 200 응답 이외의 응답을 받은 경우에는 인스턴스 사용자 데이터를 확인합니다.
- 사용자 데이터 로그를 보려면 사용자 데이터 스크립트를 실행하여 EC2 Windows 인스턴스를 구성할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
- 스크립트를 실행하기 전에 로컬 컴퓨터에서 테스트합니다.
- 인스턴스에서 올바른 버전의 PowerShell을 사용하고 두 번째 인스턴스에서 스크립트를 실행할 수 있는지 확인합니다.