AWS IAM Identity Center + AWS Managed AD 연동을 통한 통합 로그인환경 구성

신동수·2025년 3월 10일
1

AWS

목록 보기
29/29
post-thumbnail

개요

  • AD를 이용하여 계정 관리를 하는 회사가 있다. 그러나 AWS를 사용하게 되어 계정 관리를 분리해서 사용했고, 관리하기가 너무 어렵고 귀찮다는 요구 사항이 있었다. 그래서 AWS Directory Service를 이용하여 AWS SSO 연동을 통해 계정 관리를 할 수 있도록 Hands-On 을 준비하였다.

Architecture


1. 사용자는 지정 로그인 페이지를 열고 Active Directory 사용자 이름과 비밀번호를 입력한다.
2. 인증 요청은 Managed Microsoft AD 로 전송한다.
3. Managed Microsoft AD 에 인증된 사용자가 있다면 STS AssumeRole 을 호출하여 해당 사용자의 임시 자격 증명을 가져온다.이러한 임시 보안 자격 증명을 사용하여 사용자가 콘솔에 접근하는데 사용하는 로그인 URL 을 구성한다.

IAM Identity Center (AWS SSO)

IAM Identity Center 란?

AWS Single Sign-On 의 후속 서비스로 하나의 계정을 통해 여러 AWS 계정을 관리하고 User 또는 Group 를 생성하여 각 AWS 계정에 대한 권한을 쉽게 권한을 관리 및 설정을 할 수 있는 서비스이다.


검색창에 sso 또는 identity center 를 검색하여 서비스에 접근을 한다.


먼저 SSO 를 사용하기 위해서는 기본적으로 작업하는 계정이 AWS Organization 하위 조직에 포함되지 않아야 한다.


다중 계정에 접근하기 위한 활성화를 한다.


활성화가 되었다면 설정에서 위와 같이 접근할 수 있는 URL 을 확인할 수 있다.


URL 로 접근을 하게 된다면 사용자 이름이 ID 이며 PW 와 MFA 를 등록 및 입력하여 SSO 메인화면을 이동할 수 있지만, 따로 사용자(User)를 만들지 않았고, 권한세트(Permission Sets) 를 사용자에게 부여하지 않았기에 현재 접근을 할 수 없는 상태이다.

만약, 로그인을 위한 사용자를 만들더라도 사용자에게 접속 권한이 부여된 계정이 없으면 "You do not have any application" 이라는 문구를 확인할 수 있다.

Directory Service

Directory Service 란?

AWS의 Microsoft Active Directory 완전관리형 서비스이다. AWS의 다양한 리소스들에 AD를 쉽게 연동할 수 있는 장점이 있다.

종류
1. AWS Managed Microsoft AD : 실제 Microsoft의 AD 서비스를 AWS에서 사용해야 하는 경우 사용
2. AD Connector : 온프레미스나 다른 계정 등의 AD를 연동하여 사용할 때 사용
3. Simple AD : AD 호환성이 있는 소규모 디렉터리가 필요하거나 LDAP 호환성이 필요한 경우 사용 (현재는 미지원)


디렉터리 설정을 선택하여 디렉터리를 생성할 수 있도록 한다.

본 핸즈온에서는 디렉터리 유형을 AWS Managed Microsoft AD 을 선택하였고, 기업에서 사용하고 있는 AD 가 있다면 AD Connector 를 선택하여 구성을 진행하면 된다.


디렉터리 정보에 대한 내용을 입력을 한다. 본 포스팅에서는 디렉터리에 대한 DNS 는 딱히 중요하지 않기에 원하는 도메인을 입력하면 된다.


네트워크에서는 Managed AD 서버가 위치할 VPC, Subnet 을 선택하게 된다. Managed 서비스이기에 따로 콘솔에서는 확인이 불가능하지만, 네트워크 인터페이스에서는 생성될 디렉터리 ID 값으로 IP 를 확인할 수 있다.
만약, 서버에 접근이 필요하다면, 생성된 디렉터리에서 Managed AD 서버에 접근할 EC2 를 생성할 수도 있는 점 참고하면 좋을 것이다.


생성은 대략 20~30분 사이가 걸리면 완료가 되었다면 위와 같이 디렉터리에 대한 정보를 확인할 수 있을 것이다.

연동

테스트 조건

  • 사용자 : foo, bar
  • 권한 : ReadOnlyAccess, AdministratorAccess
  • 조건 : foo 사용자는 ReadOnlyAccess 라는 권한을 줄 것이며, bar 사용자는 AdministratorAccess 권한을 부여하여 S3 를 생성하는 시나리오로 테스트를 진행하겠다.

Directory Service


사용자 생성을 통해 Console 에서 바로 AD 사용자를 생성할 수 있다.


기본적으로 AD 사용자 이름과 암호를 생성한다. (그룹 설정은 따로 진행하지 않음)
사용자는 foo, bar 사용자를 생성을 한다.


Managed AD 를 사용한다면 꼭 이메일 주소를 필수적으로 입력한다!!! 이메일을 설정하지 않는다면 메인 로그인 페이지에서 에러가 발생하고, 지정한 Account 로 접근이 불가능하다.


위와 같이 foo, bar 사용자를 생성하였고, IAM Identity Center 에서 사용자 및 권한을 부여하면 콘솔에 접근이 가능하다.

IAM Identity Center


먼저 IAM Identity Center 설정에서 자격 증명 소스 변경을 통해 Active Directory 로 변경을 진행한다.

디렉터리는 이전 위에서 생성한 디렉터리를 선택한다. 그리고 변경에 동의 후 완료를 한다면 인증 방식을 변경할 수 있다.

그 결과 아래와 같이 인증 방법이 암호에서 Active Directory 로 변경이 된 것을 확인할 수 있다.


사용자에서 아직은 사용자가 확인이 되지 않는 것으로 확인할 수 있다. 동기화 관리를 클릭하여 Managed AD 에서 생성한 사용자 또는 그룹을 추가할 수 있다.


사용자 및 그룹 추가를 선택한다.


사용자 입력칸에서 생성한 사용자를 클릭하여 전송을 한다면 사용자가 생성이 되며, 권한 세트에서 지정한 계정과 권한을 선택할 수 있다.


사용자에서 만들어진 사용자 리스트를 확인할 수 있다. 사용자는 사용자@DNS이름으로 표기가 된다.


권한 세트에서는 지정된 권한을 가진 세트가 표시가 되며, 각 각 AWS 관리형 권한으로 생성한 상태이다.


foo 사용자는 지정된 계정에 ReadOnlyAccess 권한 세트를 할당하였다.

bar 사용자는 지정된 계정에 AdministratorAccess 권한 세트를 할당하였다.

테스트

foo 사용자 테스트




foo 사용자로 접근한 상태이고. 콘솔에 접근하면 위와 같은 Role 로 접근을 한 것을 확인할 수 있으며, 지정된 권한인 ReadOnlyAccess 권한만 있는 것을 확인하였다.


당연한 결과지만 foo 사용자는 읽기 권한만 가지고 있기에 S3 생성은 불가능한 것으로 확인이 되었다.

bar 사용자 테스트




bar 사용자로 접근한 상태이고, 지정된 권한인 AdministratorAccess 권한만 있는 것을 확인하였다.


bar 사용자에게 부여된 권한으로 버킷이 정상적으로 생성된 것을 확인할 수 있었다.


Cloudtrail 에서도 CreateBucket 에 대한 이벤트를 확인하였으며, 사용자는 bar 가 아닌 디렉터리에서 만든 이메일인 것을 확인하였다.

마무리

기존에 사용하고 있던 AD가 있다면, AWS에 대한 접근이 더욱 수월해 질 것 같다. 특히, AWS Identity Center와 Directory Service를 통해 AD와 연동하여 계정을 통합함으로써, 중앙에서 사용자 인증 및 권한 관리를 일원화할 수 있었다. 이를 통해 기존 온프레미스 AD 사용자들은 별도의 추가 계정 생성 없이 AWS 리소스에 접근할 수 있으며, 보안 정책도 일관되게 적용이 가능할 것으로 생각된다.

profile
조금씩 성장하는 DevOps 엔지니어가 되겠습니다. 😄

0개의 댓글

관련 채용 정보