해킹공주의 일상
[AWS 보안점검] AWS SDK 패스워드 정책 설정 가져오기 본문
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 쉴더스에서 작성된 가이드를 기반으로 작성된 글입니다.
'사이드 프로젝트 > 클라우드' 카테고리의 다른 글
AWS CloudFormation 란 | 간단사용예시 (0) | 2023.10.01 |
---|---|
클라우드 컴퓨팅과 AWS 개념 (0) | 2023.09.29 |
[AWS 보안진단] Key Pair 관리 (0) | 2023.05.16 |
AWS SDK와 Python 연결하기 (0) | 2023.05.16 |
[AWS 보안진단] IAM 및 사용자 관리 SDK로 가져오기 (0) | 2023.05.16 |