ConsoleMe 테스트는 아래와 같은 시나리오에 따라 확인해 보겠습니다.
•
Cognito 사용자 등록
•
ConsoleMe 접근 및 사용
•
Congnito 그룹 생성 및 역할 정의
•
IAM 권한 요청 및 승인 프로세스 체험
•
Weep CLI 활용하는 방법
•
리소스 탐색 및 권한 요청
•
정책 롤백 확인
1. Cognito 사용자 등록
•
Cognito 사용자 등록 방법은 셀프 서비스 가입에 따라 구분할 수 있습니다.
◦
셀프 서비스 가입 비활성화 (현재 상태)
▪
관리자가 사용자를 생성하고 관리 → 임시 비밀번호 전달 후 사용자 변경 (초대 메시지 전송 여부)
•
AWS 관리 콘솔을 통한 사용자 생성
•
CLI를 통한 사용자 생성
•
IaC 도구를 통한 사용자 생성
•
Lambda 트리거 사용
◦
셀프 서비스 가입 활성화
▪
메시지를 자동으로 전송하지 않고 동작 → 관리자가 직접 사용자 계정을 확인
▪
Cognito가 자동으로 메시지를 전송하여 검증
•
SMS 전송
•
이메일 전송
셀프 서비스 가입 비활성화 - AWS 관리 콘솔
•
Amazon Cognito → 사용자 풀 → 대상 선택 → 인증 → 가입
⇒ 현재 셀프 서비스 가입에 셀프 등록은 비활성화 상태입니다.
•
Amazon Cognito → 사용자 풀 → 대상 선택 → 사용자 관리 → 사용자 → 사용자 생성
⇒ 초대 메시지 전송 여부를 결정할 수 있습니다.
⇒ 대상 이메일 주소를 지정하고 임시 암호를 설정하거나 사용자가 암호를 생성하게 할 수 있습니다.
⇒ 등록된 사용자 정보를 확인할 수 있는데 현재 암호 강제 변경이 필요한 상태입니다. (아직 임시 암호로 사용자 암호가 정의되지 않음)
•
설정한 도메인 주소로 접근하면 Cognito 로그인 페이지로 리다이렉트됩니다.
⇒ 셀프 서비스 등록이 비활성화로 Sign up 영역이 존재하지 않습니다.
⇒ 임시 암호를 입력하고 로그인합니다.
⇒ 임시 암호이기 때문에 사용자 암호로 명시된 조건에 따라 변경합니다.
⇒ 로그인 성공
⇒ 사용자에 대한 확인 상태가 확인됨으로 변경되었습니다.
셀프 서비스 가입 비활성화 - AWS CLI
# 테스트용 메일과 임시 비밀번호 지정
USER_EMAIL="ongja0707@gmail.com"
TEMP_PW="TempPass123!"
# Congnito 사용자 생성
aws cognito-idp admin-create-user \
--user-pool-id ${USER_POOL_ID} \
--username "${USER_EMAIL}" \
--temporary-password "${TEMP_PW}" \
--user-attributes Name="email",Value="${USER_EMAIL}" Name="email_verified",Value="true"
=========================================
OUTPUT:
{
"User": {
"Username": "c428dd4c-20a1-70a4-43fe-3da49363970b",
"Attributes": [
{
"Name": "email",
"Value": "ongja0707@gmail.com"
},
{
"Name": "email_verified",
"Value": "true"
},
{
"Name": "sub",
"Value": "c428dd4c-20a1-70a4-43fe-3da49363970b"
}
],
"UserCreateDate": "2024-11-25T15:58:39.499000+00:00",
"UserLastModifiedDate": "2024-11-25T15:58:39.499000+00:00",
"Enabled": true,
"UserStatus": "FORCE_CHANGE_PASSWORD"
}
}
:END
# Cognito 사용자 풀에 사용자 확인 (이메일, 상태)
aws cognito-idp list-users \
--user-pool-id ${USER_POOL_ID} \
--query 'Users[*].[Attributes[0].Name, Attributes[0].Value, UserStatus]' \
--output table
=========================================
OUTPUT:
-----------------------------------------------------------
| ListUsers |
+-------+-----------------------+-------------------------+
| email| ongja@cloudneta.net | CONFIRMED |
| email| ongja0707@gmail.com | FORCE_CHANGE_PASSWORD |
+-------+-----------------------+-------------------------+
:END
Bash
복사
⇒ 앞서 생성한 사용자와 신규 사용자가 확인됩니다. (신규 사용자는 아직 임시 암호 사용 중)
⇒ 두 번째 사용자가 임시 암호를 사용자 암호로 변경 후 Cognito 사용자 정보를 확인할 수 있습니다.
셀프 서비스 가입 활성화
# 셀프 서비스 가입 설정 확인 (true = 셀프 서비스 가입 비활성화 상태)
aws cognito-idp describe-user-pool --user-pool-id ${USER_POOL_ID} | jq \
'.UserPool.AdminCreateUserConfig.AllowAdminCreateUserOnly'
=========================================
OUTPUT:
true
:END
# 셀프 서비스 가입 활성화 설정
aws cognito-idp update-user-pool \
--user-pool-id ${USER_POOL_ID} \
--admin-create-user-config AllowAdminCreateUserOnly=false
Bash
복사
•
셀프 서비스 가입 비활성화는 오직 관리자만 사용자를 생성할 수 있습니다.
•
셀프 서비스 가입 활성화는 사용자도 직접 생성할 수 있습니다.
•
Amazon Cognito → 사용자 풀 → 대상 선택 → 인증 → 가입
⇒ 셀프서비스 가입에 셀프 등록이 활성화 되었습니다.
⇒ 다시 로그인 페이지로 진입하면 Sign up 링크가 확인됩니다.
⇒ 다음과 같이 새로운 사용자를 셀프 등록 요청할 수 있습니다.
⇒ 사용자 등록 승인이 되지 않아 로그인이 불가합니다.
사용자를 셀프로 등록해도 바로 사용할 수 있는 것은 아닙니다.
Cognito 지원 확인으로 메시지를 자동 전송하거나 전송하지 않고 관리자가 직접 확인해서 승인할 수 있습니다.
•
Amazon Cognito → 사용자 풀 → 대상 선택 → 인증 → 가입 → 속성 확인 및 사용자 계정 확인
⇒ 현재 별도의 메시지를 자동으로 전송하지 않고 관리자가 직접 검증 후 승인하는 형태입니다.
⇒ 세 번째 사용자 정보가 올라왔지만 확인되지 않음 상태입니다.
⇒ 계정 확인을 클릭하면 확인됨 상태로 전환되어 사용자가 접근이 가능합니다.
# Cognito 사용자 풀에 사용자 확인 (모두 승인된 상태)
aws cognito-idp list-users \
--user-pool-id ${USER_POOL_ID} \
--query 'Users[*].[Attributes[0].Name, Attributes[0].Value, UserStatus]' \
--output table
=========================================
OUTPUT:
-----------------------------------------------
| ListUsers |
+-------+-----------------------+-------------+
| email| ongja@cloudneta.net | CONFIRMED |
| email| ongja0707@gmail.com | CONFIRMED |
| email| test@cloudneta.net | CONFIRMED |
+-------+-----------------------+-------------+
:END
Bash
복사
2. ConsoleMe 접근 및 사용
작성 중…