AWS의 사용자
보안 및 조직을 강화하기 위해 사용자 지정 권한으로 생성한 특정 사용자 아이덴터티에 AWS 계정에 대한 액세스 권한을 부여할 수 있다. 기존 아이덴터티를 AWS에 연동하여 그러한 사용자를 위해 액세스를 더욱 간소화할 수 있다.
1. 첫 액세스에만 해당: 루트 사용자 크레덴셜(Credentials)
AWS 계정을 생성할 때 AWS로 로그인하는 데 사용하는 AWS 계정 루트 사용자 아이덴터티를 생성한다. 이 루트 사용자 아이덴터티, 즉 계정을 생성할 때 입력한 이메일 주소와 암호를 사용하여 AWS Management Console에 로그인할 수 있다. 이러한 이메일 주소 및 암호의 조합을 루트 사용자 크레덴셜이라고도 한다.
즉, 아이덴터티(Identities)는 신분증과 같이 '내가 누구인지' 보여주는 수단이고, 크레덴셜(Credentials)은 이메일 주소 및 암호와 같이 '내가 누구인지' 증명하는 수단이라고 이해하면 좋다.
루트 사용자 크레덴셜을 사용하면 AWS 계정의 모든 리소스에 완전히 무제한으로 액세스할 수 있다. 여기에는 결제 정보에 대한 액세스 및 암호 변경 권한이 포함된다. 이러한 수준의 액세스는 계정을 처음 설정했을 때 필요하다. 그러나 일상적인 액세스에는 루트 사용자 크레덴셜을 사용하지 않는 것이 좋다. 특히 루트 사용자 크레덴셜을 타인과 공유하면 타인이 내 계정에 무제한으로 액세스할 수 있으므로 공유하지 않는 것이 좋다. 조직의 서비스 제어 정책(SCP)만 루트 사용자에 부여되는 권한을 제한할 수 있다.
다음 섹션에서는 본인 및 AWS 리소스를 사용하는 사람들에게 AWS 리소스에 대한 안전하고 제한된 액세스를 제공하기 위해 IAM을 사용하여 사용자 아이덴터티 및 권한을 생성하고 관리하는 방법을 설명한다.
2. IAM 사용자
AWS IAM의 '아이덴터티'를 통해 '사용자가 누구인지'를 확인할 수 있다. 이를 흔히 인증(Authentication)이라고 한다. 루트 사용자 크레덴셜을 타인과 공유하는 대신, 조직의 사용자에 해당되는 계정 내에 개별 IAM 사용자를 생성할 수 있다. IAM 사용자는 개별 계정이 아니라 해당 계정 내의 사용자이다. 각 사용자는 고유의 AWS Management Console 액세스 암호를 가질 수 있다. 또한 사용자가 계정의 리소스를 사용하기 위한 프로그래밍 방식의 요청을 할 수 있도록 각 사용자에 대한 개별 액세스 키를 생성할 수 있다. 다음 그림에서는 AWS 계정 하나에 Li, Mateo, DevApp1, DevApp2, TestApp1 및 TestApp2라는 사용자가 추가되었다. 각 사용자는 고유의 크레덴셜을 가진다.
일부 사용자는 사실 애플리케이션이다(예: DevApp1). IAM 사용자가 실제 사람일 필요는 없다. 회사 네트워크에서 실행하며 AWS 액세스를 필요로 하는 애플리케이션에 대한 액세스 키를 생성하기 위해 IAM 사용자를 생성할 수 있다.
자신을 위한 IAM 사용자를 생성한 다음, 계정에 대한 관리 권한을 할당하는 것이 좋다. 그런 다음 해당 사용자로 로그인하여 필요에 따라 사용자를 추가할 수 있다.
3. 기존 사용자 페더레이션
조직 내 사용자에게 이미 인증 방법이 있는 경우(예: 회사 네트워크에 로그인) 해당 사용자를 위해 별도의 IAM 사용자를 생성할 필요가 없다. 대신 이러한 사용자 아이덴터티를 AWS에 연동할 수 있다.
다음 다이어그램은 사용자가 IAM을 사용하여 AWS 계정의 리소스에 액세스하기 위한 임시 AWS 보안 크레덴셜을 얻는 방법을 보여준다.
페더레이션은 다음과 같은 경우에 특히 유용하다.
-
사용자가 이미 기업 디렉토리에 아이덴터티를 보유한 경우
기업 디렉토리가 SAML 2.0(Security Assertion Markup Language 2.0)과 호환되는 경우, 기업 디렉토리를 구성하여 사용자에게 AWS Management Console에 대한 Single-Sign On(SSO) 액세스를 제공할 수 있다.
기업 디렉토리가 SAML 2.0과 호환되지 않는 경우, 아이덴터티 브로커 애플리케이션을 생성하여 사용자에게 AWS Management Console에 대한 Single-Sign On(SSO) 액세스를 제공할 수 있다.
기업 디렉토리가 Microsoft Active Directory인 경우, AWS Directory Service를 사용하여 기업 디렉토리와 AWS 계정 간의 신뢰를 설정할 수 있다.
-
사용자가 이미 인터넷 아이덴터티를 보유한 경우
사용자가 Login with Amazon, Facebook, Google 또는 OpenID Connect(OIDC) 호환 아이덴터티 공급자 등의 인터넷 아이덴터티 공급자를 통해 자신을 식별할 수 있도록 모바일 앱 또는 웹 기반 앱을 만들면, 해당 앱에서 페더레이션을 통해 AWS에 액세스할 수 있다.