cloud-init 및 사용자 데이터를 사용하여 EC2 인스턴스에 SSH 액세스 권한이 있는 새 사용자 계정을 추가하려면 어떻게 해야 하나요?

3분 분량
0

SSH를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결할 수 있는 다른 사용자를 추가해야 합니다. cloud-init 및 사용자 데이터를 사용하여 이 작업을 수행하려면 어떻게 해야 하나요?

간략한 설명

다음을 수행하는 사용자 데이터 스크립트를 cloud-init에 전달합니다.

1.    새 사용자를 만듭니다.

2.    SSH 디렉토리와 그 안의 파일에 대한 적절한 소유권 및 파일 권한을 설정합니다.

3.    authorized_keys 파일에 SSH 공개 키를 추가합니다.

해결 방법

시작하기 전에 다음 사항에 유의하세요.

  • 인스턴스를 중지했다가 다시 시작하면 인스턴스 스토어 볼륨의 모든 데이터가 지워집니다. 보관하려는 데이터가 포함된 모든 인스턴스 스토어 볼륨을 백업해야 합니다. 자세한 내용을 보려면 AMI의 루트 디바이스 유형 결정을 참고하세요.
  • 인스턴스를 중지하고 다시 시작하면 인스턴스의 공용 IP 주소가 변경됩니다. 외부 트래픽을 인스턴스로 라우팅할 때는 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하는 것이 좋습니다.

1.    SSH를 사용해 EC2 인스턴스에 연결합니다.

2.    다음 명령을 실행하여 cloud-init이 설치되었는지 확인합니다.

sudo yum list installed cloud-init

cloud-init이 설치되어 있지 않은 경우 다음 명령을 실행하여 설치하세요.

sudo yum install cloud-init

3.    Amazon EC2 콘솔을 연 다음 인스턴스를 선택합니다.

4.    작업을 선택하고, 인스턴스 상태를 선택한 다음, 중지를 선택합니다.

참고: 중지를 사용할 수 없는 경우, 인스턴스가 이미 중지되었거나 루트 디바이스가 인스턴스 스토어 볼륨일 수 있습니다.

5.    키 쌍에서 공개 키를 검색합니다..

참고: 공개 키를 검색하려면 키 쌍 또는 개인 키가 있어야 합니다. 키 쌍을 만들려면 Amazon EC2를 사용하여 키 생성을 참조하세요. SSH 보안을 위해서는 EC2 콘솔 또는 타사 도구를 통해 키 쌍을 생성하는 것이 가장 좋습니다.

6.    작업을 선택하고 인스턴스 설정을 선택한 다음 사용자 데이터 보기/변경을 선택합니다.

7.    다음 예제 스크립트를 복사하여 사용자 데이터 필드에 붙여넣습니다. 사용자 이름에 새 사용자의 사용자 이름을 입력합니다. ssh-rsa AB3nzExample의 경우, 공개 키를 입력합니다.

#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
  - name: username
    groups: [ wheel ]
    sudo:     
      - "ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd"
      - "ALL=(ALL) NOPASSWD: /usr/bin/cp /home/username/webserver_configuration.conf /etc/httpd/conf.d/"
    shell: /bin/bash
    ssh-authorized-keys:
    - ssh-rsa AB3nzExample

이 예제 스크립트를 통해 새 사용자는 다음과 같은 루트 작업만 수행할 수 있습니다.

  • /home/username/webserver_configuration.conf 파일을 **/etc/httpd/conf.d/**에 복사합니다.
  • 웹 서버 서비스 다시 시작

사용자에게 EC2에 대한 전체 액세스 권한을 부여하려면 sudo 필드를 **sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]**로 바꿉니다.

참고: 기본적으로 클라우드 초기화 지시어는 인스턴스가 시작될 때만 실행됩니다. 그러나 이 사용자 데이터 스크립트를 사용하면 클라우드 초기화는 인스턴스가 재부팅되거나 다시 시작될 때마다 인스턴스에 공개 키를 추가합니다. 사용자 데이터 스크립트를 제거하면 기본 기능이 복원됩니다.

8.    저장을 선택합니다.

9.    작업을 선택하고, 인스턴스 상태를 선택한 다음, 시작을 선택합니다.

10.    인스턴스가 실행 상태에 도달하면 새 사용자로 로그인합니다. 새 사용자는 ec2 사용자와 기본 동작이 동일합니다.

참고: 인스턴스의 사용자 데이터 수정은 ModifyInstanceAttribute API 액션을 사용합니다. 이 작업을 제한하는 AWS Identity and Access Management(AWS IAM) 정책을 생성할 수 있습니다.


관련 정보

키 쌍 표시

Amazon EC2 Linux 인스턴스에 SSH 액세스 권한이 있는 새 사용자 계정을 추가하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음