Notice
Recent Posts
Recent Comments
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
07-14 22:35
Today
Total
관리 메뉴

해킹공주의 일상

[AWS 보안점검] AWS SDK 패스워드 정책 설정 가져오기 본문

사이드 프로젝트/클라우드

[AWS 보안점검] AWS SDK 패스워드 정책 설정 가져오기

7.3.7 2023. 5. 17. 17:44

Overview

가이드에 따르면, 계정 관리 항목은 다음과 같다. 본문에서 살펴볼 내용은 굵은 글씨로 표기해두었다.
 

계정관리
1 사용자 계정 관리 
2 IAM 사용자 계정 단일화 관리 
3 IAM 사용자 계정 식별 관리 
4 IAM 그룹 사용자 계정 관리 
5 Key Pair 접근 관리 
6 Key Pair 보관 관리 
7 Admin Console 관리자 정책 관리 
8 Admin Console 계정 Access Key 활성화 및 사용주기 관리 
9 MFA (Multi-Factor Authentication) 설정 
10 AWS 계정 패스워드 정책 관리 

 

점검내용 

계정의 패스워드 정책이 적절하게 설정되어있는지 확인하는 항목이다.
 
기본설정은 아래와 같다

1. 암호 최소 길이 : 8자
2. 암호 강도
 - 다음 문자 유형 조합 중 최소 3개 포함(대문자,소문자,숫자,영숫자를 제외한 문자)
3. 기타 요구 사항
- 비밀번호가 만료되지 않음 (만료기한이 없다는 뜻인듯)
- Must not be identical to your AWS account name or email address

만료 기준 및 다른 추가 요구사항을 추가해주어야 한다.

 

보안위협 

무작위 대입 공격을 통한 계정 탈취

 

Assessment

점검 기준 및 방법

다음은 패스워드 정책을 출력해주는 스크립트다. 

import boto3

def get_password_policy():
    iam_client = boto3.client('iam')
    try:
        response = iam_client.get_account_password_policy()
        password_policy = response['PasswordPolicy']
        return password_policy
    except iam_client.exceptions.NoSuchEntityException:
        return None

# 비밀번호 정책 불러오기
policy = get_password_policy()
if policy:
    print("비밀번호 정책 정보:")
    print(f"패스워드 길이: {policy.get('MinimumPasswordLength')}")
    print(f"패스워드 최대 사용 기간 (일): {policy.get('MaxPasswordAge')}")
    print(f"패스워드 최소 사용 기간 (일): {policy.get('MinimumPasswordAge')}")
    print(f"암호 만료 활성화: {policy.get('ExpirePasswords')}")
    print(f"재사용 제한 횟수: {policy.get('PasswordReusePrevention')}")
    print(f"소문자 요구 여부: {policy.get('RequireLowercaseCharacters')}")
    print(f"대문자 요구 여부: {policy.get('RequireUppercaseCharacters')}")
    print(f"숫자 요구 여부: {policy.get('RequireNumbers')}")
    print(f"특수 문자 요구 여부: {policy.get('RequireSymbols')}")
else:
    print("비밀번호 정책이 설정되어 있지 않습니다.")

결과는 다음과 같다.

비밀번호 정책 정보:
패스워드 길이: 8
패스워드 최대 사용 기간 (일): 60
패스워드 최소 사용 기간 (일): None
암호 만료 활성화: True
재사용 제한 횟수: 1
소문자 요구 여부: True
대문자 요구 여부: True
숫자 요구 여부: True
특수 문자 요구 여부: True

 
10 AWS 계정 패스워드 정책 관리 
- 패스워드는 아래의 4가지 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성(영문 대문자(26개), 영문 소문자(26개), 숫자(10개), 특수문자(32개))
- 패스워드 길이는 8자 이상 설정하는 것을 권고
- 패스워드 최대 사용 기간을 60일 이하로 설정할 것을 권고
- 패스워드 최소 사용 기간을 1일 이상으로 설정할 것을 권고
- 암호 만료 활성화, 암호 만료일은 90일 이하여야 함 
- 암호 재사용 제한 최소 1개 이상이어야 함
기준이 은근 빡빡하다... 결과보고 판단하면 된다. 다만 패스워드 최소 사용기간 설정하는 건 없어서 패스

 

Countermeasure

- IAM > 계정 설정 > 암호 정책 편집란에서 암호 정책을 기준에 맞게 설정

- 상세 설정 방법은 SK 쉴더스에서 작성한 '2023 클라우드 보안 가이드' 참조

 
※ 본 블로그에서 작성하는 AWS 보안 관련 가이드는 SK 쉴더스에서 작성된 가이드를 기반으로 작성된 글입니다.

Comments