Amazon EC2 Linux 인스턴스의 시스템 사용자 관리하기

Amazon EC2 Linux 인스턴스의 시스템 사용자 관리하기

각 Linux 인스턴스는 기본 Linux 시스템 사용자로 시작됩니다. 인스턴스에 사용자를 추가하고 삭제할 수 있어요. 기본 사용자의 기본 사용자 이름은 인스턴스를 시작할 때 지정한 AMI에 의해 결정됩니다.

출처: 문서

본문

각 Linux 인스턴스는 기본 Linux 시스템 사용자로 시작됩니다. 인스턴스에 사용자를 추가하고 삭제할 수 있어요.

기본 사용자의 기본 사용자 이름은 인스턴스를 시작할 때 지정된 AMI에 의해 결정됩니다.

Note
기본적으로 암호 인증과 root 로그인은 비활성화되어 있고, sudo는 활성화되어 있어요. 인스턴스에 로그인하려면 키 페어를 사용해야 합니다. 로그인에 대한 자세한 내용은 Connect to your Linux instance using SSH를 참고하세요.

인스턴스에 대해 암호 인증과 root 로그인을 허용할 수도 있어요. 자세한 내용은 운영체제 문서를 참고하세요.

Note
Linux 시스템 사용자와 IAM 사용자를 혼동하지 마세요. 자세한 내용은 IAM User Guide의 IAM users를 참고하세요.

기본 사용자 이름 (Default usernames)

EC2 인스턴스의 기본 사용자 이름은 인스턴스를 시작할 때 지정된 AMI에 의해 결정됩니다.

  • Amazon Linux AMI – ec2-user
  • CentOS AMI – centos 또는 ec2-user
  • Debian AMI – admin
  • Fedora AMI – fedora 또는 ec2-user
  • FreeBSD AMI – ec2-user
  • RHEL AMI – ec2-user 또는 root
  • SUSE AMI – ec2-user 또는 root
  • Ubuntu AMI – ubuntu
  • Oracle AMI – ec2-user
  • Bitnami AMI – bitnami

Note
다른 Linux 배포판의 기본 사용자 이름을 찾으려면 AMI 제공자에게 확인하세요.

고려 사항 (Considerations)

대부분의 애플리케이션에는 기본 사용자로 충분해요. 하지만 개인이 자신의 파일과 작업 공간을 가질 수 있도록 사용자를 추가할 수 있습니다. 또한 신규 사용자에게 사용자를 만들어 주는 것은 여러(어쩌면 경험이 부족한) 사용자에게 기본 사용자 액세스를 부여하는 것보다 훨씬 안전합니다. 기본 사용자를 부적절하게 사용하면 시스템에 큰 피해를 줄 수 있기 때문입니다.

Linux 시스템 사용자로 사용자에게 EC2 인스턴스 SSH 액세스를 허용하려면 사용자와 SSH 키를 공유해야 해요. 또는 EC2 Instance Connect를 사용해 SSH 키를 공유·관리할 필요 없이 사용자에게 액세스를 제공할 수 있어요. 자세한 내용은 Connect to your Linux instance using a public IP address and EC2 Instance Connect를 참고하세요.

사용자 만들기 (Create a user)

먼저 사용자를 만든 뒤, 사용자가 인스턴스에 연결·로그인할 수 있게 해주는 SSH 공개 키를 추가해요.

Important
이 절차의 1단계에서 새 키 페어를 만들어요. 키 페어는 암호처럼 작동하므로 안전하게 다루는 것이 중요합니다. 사용자용 키 페어를 만들면 프라이빗 키가 안전하게 전달되도록 해야 해요. 또는 사용자가 1~2단계를 직접 수행해 자신의 키 페어를 만들고 프라이빗 키를 자기 머신에 안전하게 보관한 뒤, 3단계부터 절차를 완료하기 위해 공개 키를 보내줄 수도 있어요.

사용자를 만들려면

  1. (선택) 인스턴스에 로그인하는 데 사용할 새 키 페어를 만듭니다. 사용자가 직접 만들었다면 이 단계를 건너뛰어요.
  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
  1. 인스턴스에서 sudo adduser 명령으로 새 사용자를 만들어요. AL2023과 Amazon Linux 2에서는 기본적으로 암호 인증이 비활성화된 채 사용자가 생성됩니다. Ubuntu에서는 --disabled-password 파라미터를 포함해 암호 인증을 비활성화한 채 사용자를 만들어요.
[ec2-user ~]$ sudo adduser newuser
[ubuntu ~]$ sudo adduser newuser --disabled-password
  1. 새 사용자로 전환해요.
[ec2-user ~]$ sudo su - newuser
  1. newuser 홈 디렉터리에 .ssh 디렉터리를 만들고 파일 권한을 700(소유자만 디렉터리를 읽고, 쓰고, 열 수 있음)으로 변경해요. 이 정확한 파일 권한이 없으면 사용자는 로그인할 수 없어요.
[newuser ~]$ mkdir .ssh
[newuser ~]$ chmod 700 .ssh
  1. .ssh 디렉터리에 authorized_keys라는 파일을 만들고 파일 권한을 600(소유자만 파일을 읽거나 쓸 수 있음)으로 변경해요. 이 정확한 파일 권한이 없으면 사용자는 로그인할 수 없어요.

Important
authorized_keys 파일의 권한이 정확한지 확인하세요.

[newuser ~]$ touch .ssh/authorized_keys
[newuser ~]$ chmod 600 .ssh/authorized_keys
  1. 좋아하는 텍스트 편집기(예: vim 또는 nano)로 authorized_keys 파일을 열어요. 2단계에서 얻은 공개 키를 파일에 붙여넣고 저장해요. 공개 키를 한 줄로 연속해서 붙여넣도록 하세요. 공개 키가 여러 줄로 나뉘면 안 됩니다. 이제 사용자는 authorized_keys 파일에 추가된 공개 키에 해당하는 프라이빗 키를 사용해 내 인스턴스의 newuser 사용자로 로그인할 수 있게 됩니다. Linux 인스턴스에 연결하는 다양한 방법에 대한 자세한 내용은 Connect to your Linux instance using SSH를 참고하세요.
[newuser ~]$ nano .ssh/authorized_keys

사용자 제거하기 (Remove a user)

더 이상 필요하지 않은 사용자는 더 이상 사용할 수 없도록 제거할 수 있어요.

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

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

더 알아보기 (Learn more)