이 기사는 이전 기사에 이어지는 내용으로, Active Directory가 이미 구축된 상태를 전제로 합니다.
Active Directory 구축에 관한 내용은 이전 기사를 참고하세요.
배경
AWS로 원격 근무 환경을 구축하는 과정에서, 프로젝트에 AWS를 사용하고 싶다는 직원들의 요청을 받았습니다.
프로젝트마다 AWS 계정을 생성하는 방법도 고려했지만, 그렇게 하면 AWS 계정이 난립할 우려가 있었습니다.
비용을 하나의 AWS 계정으로 통합하고 싶은 마음에 AWS 계정을 하나로 유지하면서, 사용자 계정을 발급하는 방식으로 대처하기로 했습니다.
과제
처음에는 IAM 사용자를 발급하는 방법을 생각했습니다.
하지만 이 방법에는 관리 측면에서 여러 가지 문제가 있었습니다.
- 프로젝트 멤버가 많아 모든 사람에게 IAM 사용자를 발급하는 것이 어렵다.
- 하나의 IAM 사용자는 여러 IAM 그룹에 속할 수 없다.
(여러 프로젝트에 참여하는 멤버의 경우 문제 발생) - 발급한 계정을 잊어버릴 가능성이 있다.
(퇴사한 직원의 IAM 계정이 남아 용도를 알 수 없게 될 수 있음)
이 때문에, 중앙에서 관리할 수 있는 방법을 모색하게 되었습니다.
또한 원격 근무 환경 구축을 통해 Active Directory로 직원의 사용자 ID를 관리하게 되었기 때문에,
Active Directory 사용자를 활용하여 관리할 수 있다면 좋겠다고 생각했습니다.
방법
IAM Identity Center를 사용함으로써 사용자 관리와 권한 부여를 중앙에서 관리할 수 있다는 것을 알게 되었습니다.
또한 관리 대상 사용자 소스로 Active Directory를 지정할 수 있다는 것도 확인했습니다.
따라서 IAM Identity Center와 기존 Active Directory를 연동하여 사용자에게 접근 권한을 부여하기로 했습니다.
대략적인 구성은 다음과 같습니다.
관리자 단계
Active Directory 그룹(상위 그룹) 생성
연동 설정을 완료하더라도 Active Directory의 모든 사용자가 IAM Identity Center에 자동으로 등록되는 것은 아닙니다.
연동 후 IAM Identity Center에 동기화할 그룹 또는 사용자를 지정해야 합니다.
따라서 동기화 대상을 포함하는 상위 그룹을 사전에 생성합니다.†
- 아래 URL을 통해 그룹을 생성합니다.
필요에 따라<Directory ID>
를 자신의 디렉토리 ID로 대체하세요:
https://us-east-1.console.aws.amazon.com/directoryservicev2/home?region=us-east-1&tab=groups#!/directories/<Directory ID>
/createGroup
- [Step 1] 그룹 세부 정보 지정
- 그룹 이름: IAMIdentityCenterAllUsersAndGroups
- 그룹 유형: ⦿ 보안
- 그룹 범위: ⦿ 도메인 로컬
이미지
- [Step 2 – optional] 그룹에 사용자 추가
- 이 단계를 건너뛰고 Next를 클릭합니다.
이미지
- [Step 3 – optional] 하위 그룹 추가
- 이 단계를 건너뛰고 Next를 클릭합니다.
이미지
- [Step 4 – optional] 상위 그룹 추가
- 이 단계를 건너뛰고 Next를 클릭합니다.
이미지
- [Step 5] 그룹 검토 및 생성
- 세부 정보를 확인한 후 그룹을 생성합니다.
이미지
IAM Identity Center 활성화
- 아래 URL을 통해 IAM Identity Center를 활성화하세요:
https://us-east-1.console.aws.amazon.com/singlesignon/home
이미지
- 향후 다른 AWS 계정과의 연동 가능성을 고려하여 AWS Organizations 활성화를 권장합니다.
이미지
Active Directory와 IAM Identity Center의 연동
- IAM Identity Center 설정 페이지에서 아이덴티티 소스를 변경합니다.
이미지
- [1단계] 자격 증명 소스 선택: ⦿ Active Directory
이미지
- [2단계] Active Directory 연결
- Active Directory 선택: 설정한 디렉토리를 선택합니다.
이미지
- [3단계] 변경 확인
이미지
- 연결에 성공한 후 표시되는 배너에서 안내에 따른 설정 시작을 선택합니다.
이미지
- [1단계 – optional] 속성 매핑 설정
- 이 단계를 건너뛰고 Next를 클릭합니다.
이미지
- [2단계 – optional] 동기화 범위 설정
- 그룹
IAMIdentityCenterAllUsersAndGroups
를 입력하고 Add를 클릭합니다.
- 그룹
이미지
- [3단계] 구성 검토 및 저장
이미지
- IAM Identity Center 그룹에 동기화되었는지 확인합니다.
이미지
Active Directory 그룹(하위 그룹) 생성
프로젝트별로 그룹을 생성하고 해당 프로젝트에 속한 직원 사용자들을 추가합니다.
각 프로젝트 그룹은 그룹 IAMIdentityCenterAllUsersAndGroups에 소속되어야 합니다.
IAM Identity Center에서 속성은 고유해야 하므로, 모든 사용자 간 이메일 주소가 중복되지 않도록 해야 합니다.
중복된 이메일 주소가 있을 경우, IAM Identity Center에는 하나의 사용자만 등록됩니다.
- 아래 URL을 통해 그룹을 생성합니다.
필요에 따라<Directory ID>
를 자신의 디렉토리 ID로 대체하세요:
https://us-east-1.console.aws.amazon.com/directoryservicev2/home?region=us-east-1&tab=groups#!/directories/<Directory ID>
/createGroup
- [Step 1] 그룹 세부 정보 지정
- 그룹 이름: ProjectB
- 그룹 유형: ⦿ 보안
- 그룹 범위: ⦿ 도메인 로컬
이미지
- [Step 2 – optional] 그룹에 사용자 추가
- ProjectB에 속한 사용자(예: User 2, User 3)를 그룹에 추가합니다.
이미지
- [Step 3 – optional] 하위 그룹 추가
- 이 단계를 건너뛰고 Next를 클릭합니다.
이미지
- [Step 4 – optional] 상위 그룹 추가
- 그룹 IAMIdentityCenterAllUsersAndGroups를 추가합니다.
이미지
- [Step 5] 그룹 확인 및 생성
이미지
- 그룹과 사용자가 IAM Identity Center에 동기화되었는지 확인합니다.
참고: 동기화에는 30분에서 2시간이 소요될 수 있습니다.†
이미지
권한 세트 생성
ProjectB에 속한 사용자에게 액세스 권한을 설정합니다.
AWS의 사전 정의된 정책인 PowerUserAccess를 부여합니다.
설명: AWS 서비스 및 리소스에 대한 전체 액세스 권한을 제공하지만 사용자 및 그룹 관리는 허용하지 않습니다.
https://docs.aws.amazon.com/ko_kr/aws-managed-policy/latest/reference/PowerUserAccess.html
- 다음 단계에 따라 권한 세트를 생성하세요.
이미지
- [1단계] 권한 세트 유형 선택
- 권한 세트 유형: ⦿ 사전 정의된 권한 세트
- 사전 정의된 정책: ⦿ PowerUserAccess
이미지
- [2단계] 권한 세트 세부 정보 지정
- 권한 세트 이름: PowerUserAccess
- 세션 시간: 1시간
이미지
- [3단계] 검토 및 생성
이미지
AWS 계정 액세스 할당
- 다음 단계를 통해 ProjectB 멤버를 해당 AWS 계정에 할당합니다.
이미지
- [단계 1] 사용자 및 그룹 선택
- 그룹: ☑ ProjectB@corp.awsexample.com
이미지
- [단계 2] 권한 세트 선택
- 권한 세트: ☑ PowerUserAccess
이미지
- [단계 3] 검토 및 제출
이미지
위 단계를 완료한 후 ProjectB에 속한 사용자는 AWS 관리 콘솔에 로그인할 수 있습니다.
기본적으로 사용자 로그인 시 다중 인증 (MFA)이 활성화되어 있습니다.
보안 관점에서 저희 환경에서도 활성 상태로 유지했습니다.
필요 시 IAM Identity Center의 [인증] 탭에서 MFA를 비활성화할 수 있습니다.
사용자 측 절차
ProjectB 직원 로그인 안내
다음은 ProjectB 구성원들에게 제공된 로그인 절차입니다.
- 개인 스마트폰에 Google Authenticator(MFA 인증 앱)을 설치합니다. [Google Play / App Store]
- 아래 URL을 사용하여 포털에 접속하고 사용자 이름과 비밀번호를 입력합니다.
<Directory ID>
를 운영 중인 디렉토리 ID로 변경하세요:
https://<Directory ID>
.awsapps.com/start - 인증 앱을 선택하여 MFA 기기를 등록하고 다음 단계를 진행합니다:
- QR 코드를 표시합니다.
- 스마트폰에서 Google Authenticator를 실행합니다.
- 앱 하단 오른쪽의 +를 눌러 QR 코드를 스캔합니다.
- 앱에 추가된 AWS SSO 항목의 6자리 인증 코드를 입력합니다.
- 포털의 [계정] 탭에서 PowerUserAccess를 클릭하여 로그인합니다.
처음에는 MFA 인증을 고려하지 않았지만, 기본적으로 활성화되어 있음을 알게 되었고 보안 강화를 위해 활성 상태를 유지하기로 결정했습니다.
다른 프로젝트에서도 비슷한 요구가 있을 것으로 보입니다. 그럴 경우 권한 세트를 사용해 적절한 권한을 설정해야 합니다.