Linux 인스턴스의 사용자 계정 관리 - Amazon Elastic Compute Cloud

Linux 인스턴스의 사용자 계정 관리

각 Linux 인스턴스는 기본 Linux 시스템 사용자 계정으로 시작됩니다. 기본 사용자 이름은 인스턴스를 시작할 때 지정된 AMI에 의해 결정됩니다.Amazon Linux 2 또는 Amazon Linux AMI의 경우 사용자 이름은 ec2-user입니다. CentOS의 경우 사용자 이름은 centos입니다. Debian의 경우 사용자 이름은 admin 또는 root입니다. Fedora의 경우 사용자 이름은 ec2-user 또는 fedora입니다. RHEL의 경우 사용자 이름은 ec2-user 또는 root입니다. SUSE의 경우 사용자 이름은 ec2-user 또는 root입니다. Ubuntu의 사용자 이름은 ubuntu입니다. ec2-userroot를 사용할 수 없는 경우 AMI 공급자에게 문의하십시오.

참고

Linux 시스템 사용자를 AWS Identity and Access Management(IAM) 사용자와 혼동하지 마십시오. 자세한 내용은 IAM 사용 설명서IAM 사용자 및 그룹을 참조하십시오.

고려 사항

기본 사용자 계정을 사용하면 많은 애플리케이션에 적합합니다. 그러나 개인이 자신의 파일과 workspace를 가질 수 있도록 사용자 계정을 추가하도록 선택할 수 있습니다. 게다가 신규 사용자 계정을 생성하는 방법은 사용이 미숙할 수 있는 여러 사용자에게 기본 사용자 계정 액세스를 허용하는 방법보다 보안상 훨씬 안전합니다. 기본 사용자 계정은 잘못 사용될 경우 시스템에 심각한 손상을 줄 수 있기 때문입니다. 자세한 내용은 EC2 인스턴스의 보안 유지를 위한 팁을 참조하십시오.

Linux 시스템 사용자 계정을 사용하는 EC2 인스턴스에 대한 사용자 SSH 액세스를 활성화하려면 해당 사용자와 SSH 키를 공유해야 합니다. 또는 EC2 인스턴스 연결을 사용하면 SSH 키를 공유하고 관리하지 않아도 사용자에게 액세스 권한을 제공할 수 있습니다. 자세한 내용은 EC2 Instance Connect를 사용하여 Linux 인스턴스에 연결 단원을 참조하십시오.

사용자 계정 생성

먼저 사용자 계정을 생성한 다음, 사용자의 연결을 허용하는 SSH 퍼블릭 키를 추가하고 인스턴스에 로그인하십시오.

사용자 계정 만들기

  1. 새 키 페어를 생성합니다. 사용자 계정을 만들 사용자에게 .pem 파일을 제공해야 합니다. 이 파일을 사용하여 인스턴스에 연결해야 합니다.

  2. 이전 단계에서 생성한 키 페어에서 퍼블릭 키를 검색합니다.

    $ ssh-keygen -y -f /path_to_key_pair/key-pair-name.pem

    이 명령은 다음 예제와 같이 퍼블릭 키를 반환합니다.

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6Vhz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXrlsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZqaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3RbBQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
  3. 인스턴스에 연결합니다.

  4. adduser 명령을 사용하여 사용자 계정을 생성하여 (/etc/passwd 파일의 항목으로) 시스템에 추가합니다. 이 명령은 해당 계정에 그룹과 홈 디렉터리도 생성합니다. 이 예제에서 사용자 계정 이름은 newuser입니다.

    • Amazon Linux and Amazon Linux 2

      [ec2-user ~]$ sudo adduser newuser
    • Ubuntu

      암호 없이 사용자 계정을 만들려면 --disabled-password 파라미터를 포함합니다.

      [ubuntu ~]$ sudo adduser newuser --disabled-password
  5. 생성할 디렉터리와 파일이 정확한 소유권을 가질 수 있도록 새 계정으로 전환합니다.

    [ec2-user ~]$ sudo su - newuser

    프롬프트가 ec2-user에서 newuser로 바뀌며 shell 세션이 새 계정으로 전환된 것을 나타냅니다.

  6. 사용자 계정에 SSH 퍼블릭 키를 추가합니다. 다음 하위 단계에 따라 먼저 사용자의 홈 디렉터리에 SSH 키 파일에 대한 디렉터리를 만든 다음, 키 파일을 만들고 마지막으로 퍼블릭 키를 키 파일에 붙여넣습니다.

    1. .ssh 디렉터리를 newuser 홈 디렉터리에 만들고 파일 권한을 700(소유자만 디렉터리를 읽거나, 쓰거나, 열 수 있음)으로 변경합니다.

      [newuser ~]$ mkdir .ssh
      [newuser ~]$ chmod 700 .ssh
      중요

      파일 권한이 정확하지 않으면 사용자가 로그인할 수 없습니다.

    2. authorized_keys라는 이름의 파일을 .ssh 디렉터리에 만들고 파일 권한을 600(소유자만 파일을 읽거나 쓸 수 있음)으로 변경합니다.

      [newuser ~]$ touch .ssh/authorized_keys
      [newuser ~]$ chmod 600 .ssh/authorized_keys
      중요

      파일 권한이 정확하지 않으면 사용자가 로그인할 수 없습니다.

    3. 자주 사용하는 텍스트 편집기(예: vim 또는 nano)로 authorized_keys 파일을 엽니다.

      [newuser ~]$ nano .ssh/authorized_keys

      2단계에서 검색한 퍼블릭 키를 파일에 붙여넣고 변경 내용을 저장합니다.

      중요

      퍼블릭 키를 연속된 한 줄에 붙여넣는지 확인합니다. 퍼블릭 키는 여러 줄로 분할되지 않아야 합니다.

      이제 사용자는 authorized_keys 파일에 추가한 퍼블릭 키에 해당하는 프라이빗 키를 사용하여 인스턴스에서 newuser 계정에 로그인할 수 있습니다. Linux 인스턴스에 연결하는 다양한 방법에 대한 자세한 내용은 Linux 인스턴스에 연결합니다 단원을 참조하십시오.

사용자 계정 제거

사용자 계정이 더 이상 필요하지 않은 경우 더 이상 사용할 수 없도록 계정을 제거할 수 있습니다.

userdel 명령을 이용해 사용자 계정을 시스템에서 제거합니다. -r 파라미터를 지정하면 사용자의 홈 디렉터리와 메일 스풀이 삭제됩니다. 사용자의 홈 디렉터리와 메일 스풀을 보존하려면 -r 파라미터를 생략합니다.

[ec2-user ~]$ sudo userdel -r olduser