이 블로그는 유데미 "AWS Certified Solutions Architect Associate 시험합격!" 강의를 바탕으로 작성되었습니다.
목차
1. 사용자 정보 침해 방지 매커니즘
1. 비밀번호 정책 정의
: 비밀번호가 강력할수록 계정의 보안이 철저해짐
정의방법

- 비밀번호 최소 길이 설정
- 특정 유형의 글자 사용 요구 (대문자 소문자, 숫자, non-alphanumeric chars(특수문자) 등)
- IAM 사용자들의 비번 변경을 허용/금지 설정
- 사용자들 비번 만료시켜 바꾸도록 요구 (ex 90일마다)
- 변경 시 이미 썼던 비번 사용 방지
2. Multi Factor Authentication (MFA) (필수로 써야함)
: 유저는 (특히 관리자일경우) 내 계정 접근 가능, 내 AWS 계정의 configuration(구성) 변경, 자원 삭제하게될 수도 있음.
-> 내 Root 계정과 IAM 유저들도 보호해야함!!!
-> 비번 외에 내 계정을 보호할 수 있는 방법이 MFA다~
- MFA는 내가 아는 비번과 내가 가진 security device를 함께 쓰는 것!! (비번만 쓰는것보다 안전할 것)
- 비번이 해킹당하더라도 계정이 compromised(침해)당하지 않음!!!
2. AWS에서 MFA 장치 옵션⭐️
1. 가상 MFA 장치
- Google Authenticator (하나의 폰에서만 쓸 수 있음)
- Authy (여러 장치에서 사용 가능, 한 장치에서도 여러 토큰(root유저, IAM유저들 다 지원가능) 지원)
2. Universal(범용) 2nd Factor (U2F)
- Yubico사의 YubiKey라는 물리적 키
:들고다닐 수 있어서 편리, 하나의 키로 여러 root와 IAM 유저들 지원
3. Hardware Key Fob MFA 장치 (Gemalto 사에서 제공)
4. Hardware Key Fob MFA Device for AWS GovCloud (US) (미국 정부 거, SurePassID 사에서 제공)
3. 유저들이 AWS 접근하는법
1. AWS Management Console (비번+MFA로 보호받음)
2. AWS Command Line Interface (CLI): 액세스 키로 보호받음. 액세스 키는 터미널에서 AWS 접근 되게 해줌.
=> 커멘드라인으로 써서 명령!!
3. AWS Software Developer Kit (SDK): 앱 코드 내에서 API 호출 가능. 2번과 같이 액세스 키로 보호받음
=> 지원되는 여러 언어의 라이브러리. 코드로 애플리케이션 안에 임베드!!
액세스 키 생성 방법
- AWS 콘솔에서 생성됨
- 사용자들이 자신들의 액세스 키를 직접 관리
- 액세스 키는 비번처럼 암호임!!! 공유하지말자
(액세스키 ID==username, 액세스키==비밀번호)
AWS CLI 명령어들
$ aws configure: AWS 액세스 ID, 액세스 키, 지역이름 입력하면 AWS 구성요소 입력 가능
$ aws iam list-users: 유저 목록 json 출력
4. AWS CloudShell
CloudShell: AWS 클라우드에서 무료로 사용가능한 터미널. 가능한 리전이 정해져있음
- 마치 credentials가 클라우드를 쓰고있는 계정에서 실행되고 있는것처럼 표시됨. 그래서 API 호출이 작동가능한 것!!
- 리눅스처럼 echo "test" > demo.txt 쓰면 test라는 단어 포함한 텍스트파일 생성도 가능!!
(이파일은 CloudShell 재시작해도 남아있음)
- configuration(구성)(글씨크기 테마 등), 파일 업로드/다운로드 가능
5. IAM Roles
IAM Role: IAM의 마지막 구성요소!!!
- 몇몇 AWS 서비스는 우리 계정에서 실행해야 하고, 이를 위해서 권한이 필요함 -> IAM Roles를 써서 AWS 서비스에 permissions(권한) 부여해야함
- IAM Roles는 유저와 비슷하지만, 실제 사람이 쓰도록 만들어진 것이 아니고 AWS 서비스에 의해 사용되도록 만들어짐
ex) EC2 인스턴스로 가상 서버 생성, EC2 인스턴스가 AWS에서 어떤 작업을 수행하려고 할 때, 그 권한을 EC2 인스턴스에 부여해야함
-> IAM Role을 만들어서 이들(EC2 인스턴스와 IAM Role)을 하나의 개체로 만들어. 이후 EC2인스턴스가 AWS에 있는 정보에 접근하려 할 때, IAM Role을 사용하게 될거임. IAM Role의 권한이 올바르게 부여된 경우 접근이 될거임
Common roles:
- EC2 인스턴스 Roles
- Lambda Function Roles
- Roles for CloudFormation
6. IAM 보안 도구들
1. IAM Credentials Report (account-level)

- 계정수준에서 가능. 내 계정의 유저들과 그들의 credentials 정보 list
2. IAM 액세스 advisor

- 유저에게 부여된 서비스의 권한과 마지막으로 접근된 시간 보여줌
- 최소권한의 원칙에 따랐을 때 매우 유용! (어떤 권한이 사용되지 않는지 볼 수 있고 권한 줄여서 최소권한의 원칙 지키기 쉬워짐)
7. IAM 가이드라인
- AWS 계정 설정 제외하고 root 계정 쓰지말자
- AWS 유저 하나 == 하나의 물리적 유저
- 유저를 그룹에 assign & 그룹에 permission assign.
- 강한 비밀번호 policy 만들기
- MFA 사용하기
- EC2인스턴스처럼 AWS서비스에 permission 줄때마다 Roles 만들고 쓰기
- AWS CLI나 SDK 쓸때는 액세스키 생성 필요. 액세스 키 공유하지말것!!!!!
- 계정 permissions는 IAM credentials report나 IAM access advisor 쓸 수 있음
'AWS' 카테고리의 다른 글
[AWS] 스팟, IP, 배치그룹, ENI (1) | 2024.01.25 |
---|---|
[AWS] EC2 Security Group, 클래식 포트, SSH, EC2 시작 (1) | 2024.01.25 |
[AWS] EC2 기초 (1) | 2024.01.25 |
[AWS] AWS IAM - 1 (1) | 2023.12.18 |
[AWS] AWS 클라우드 개요 (0) | 2023.12.18 |