5주차-2 보안 실습

아이수베어·2022년 1월 21일
0

AFOS[2기]

목록 보기
11/29
post-thumbnail

실습) IAM User 생성 및 로그인

IAM -> 사용자 클릭
스크린샷 2021-07-07 오후 11 46 05

사용자 추가 클릭
스크린샷 2021-07-07 오후 11 46 12

사용자 이름 : admin.
프로그래밍 방식 엑세스, AWS Management Console 액세스 선택 후 -> 비밀번호 설정 -> 다음: 권한 클릭
스크린샷 2021-07-07 오후 11 46 43

상단 오른쪽에 기존 정책 직접 연결 클릭
스크린샷 2021-07-07 오후 11 46 50

AdministratorAccess 체크
스크린샷 2021-07-07 오후 11 46 57

하단에 다음: 태그 클릭
스크린샷 2021-07-07 오후 11 47 02

기본 값으로 둔 후 -> 다음: 검토 클릭
스크린샷 2021-07-07 오후 11 47 28

하단에 사용자 만들기 클릭
스크린샷 2021-07-07 오후 11 47 35

이 뒤로 닫기를 누르면 다시는 액세스키를 볼 수 없으니, .csv 다운로드 클릭해주자
스크린샷 2021-07-07 오후 11 47 46

다음 계정도 똑같이 만들어 주자
사용자 이름: viewuser.
AWS Management Console 액세스 만 체크 후 -> 비밀 번호 설정 -> 다음: 권한 클릭
스크린샷 2021-07-07 오후 11 48 18

상단 오른쪽에 기존 정책 직접 연결 클릭
스크린샷 2021-07-07 오후 11 48 43

view를 검색 후, ViewOnlyAccess 클릭 -> 다음: 태그 클릭
스크린샷 2021-07-07 오후 11 48 59

기본 값으로 둔 후 -> 다음: 검토 클릭
스크린샷 2021-07-07 오후 11 49 07

하단에 사용자 만들기 클릭
스크린샷 2021-07-07 오후 11 49 11

view는 액세스키 사용할 일이 없으니 굳이 저장하지 말자
스크린샷 2021-07-07 오후 11 49 23

IAM 'admin' 으로 로그인 해보자 (다른 브라우저로 접속 권장, 다시 로그인하기 귀찮기 때문에 ㅎㅎ...)
스크린샷 2021-07-07 오후 11 50 30

s3 -> 버킷 만들기 클릭
스크린샷 2021-07-07 오후 11 51 50

이름 마음대로 설정 후, 버킷 만들기 클릭
스크린샷 2021-07-07 오후 11 52 14
스크린샷 2021-07-07 오후 11 52 17

만들어졌습니당
스크린샷 2021-07-07 오후 11 52 58

삭제 클릭 -> 버킷 삭제 클릭
스크린샷 2021-07-07 오후 11 53 08
스크린샷 2021-07-07 오후 11 53 19

삭제도 가능하네요 !
스크린샷 2021-07-07 오후 11 53 25

이번엔 'viewuser'로 로그인 해봅시다
스크린샷 2021-07-07 오후 11 53 57

s3 -> 버킷 만들기 클릭
스크린샷 2021-07-07 오후 11 55 05

이름 마음대로 설정 후, 버킷 만들기 클릭
스크린샷 2021-07-07 오후 11 55 19
스크린샷 2021-07-07 오후 11 55 23

만들어지지 않습니다 이 IAM 계정에는 볼 수 있는 권한밖에 없기 때문이죠
스크린샷 2021-07-07 오후 11 55 29

실습) admin 사용자로 AWS CLI 사용하기

저는 귀찮아서 그냥 CLI 앱을 깔았습니다
스크린샷 2021-07-07 오후 11 57 41

# aws cli 사용을 위한 자격 증명 설정
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-2
Default output format [None]: table

# 자격 증명 List 확인
$ aws configure list

# VPC 정보 확인
$ aws ec2 describe-vpcs
스크린샷 2021-07-08 오전 12 02 56 스크린샷 2021-07-08 오전 12 03 40 스크린샷 2021-07-08 오전 12 03 49

실습) IAM Role

CloudFormation 스택 생성 클릭 후 밑에 링크 클릭

https://ap-northeast-2.console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?stackName=IamLab&templateURL=https:%2F%2Fs3.ap-northeast-2.amazonaws.com%2Fcloudformation.cloudneta.net%2FIAM%2Fiamlab.yaml

맨 하단에 다음 클릭
2021-07-08 오전 12 04 28

하단에 키값 설정 후 다음 클릭
스크린샷 2021-07-08 오전 12 04 43

기본 값으로 둔 후 -> 다음 클릭
스크린샷 2021-07-08 오전 12 04 49

하단에 파란박스 체크 후에 스택 생성 클릭
스크린샷 2021-07-08 오전 12 04 57

만들어졌습니당
스크린샷 2021-07-08 오전 12 05 04

EC2 -> 인스턴스 클릭
EC2가 생성되고 있네요 !
스크린샷 2021-07-08 오전 12 05 52

S3IAMRoleEC2에 들어가보면 IAM 역할에 STGLabInstanceRole이 적용된 게 보이실 겁니다
스크린샷 2021-07-08 오전 12 06 24

BasicEC2 SSH 접속

# aws cli 사용을 위한 자격 증명 설정 (admin)
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EX####
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MD####
Default region name [None]: ap-northeast-2
Default output format [None]: table

# 자격 증명 List 확인
$ aws configure list

# ec2 조회
aws ec2 describe-instances
스크린샷 2021-07-08 오전 12 06 27 스크린샷 2021-07-08 오전 12 11 12 스크린샷 2021-07-08 오전 12 11 33

S3IAMRoleEC2에 아이디를 복사

# S3IAMRoleEC2 재시작
aws ec2 reboot-instances --instance-ids 'S3IAMRoleEC2'
ping 'S3IAMRoleEC2'
스크린샷 2021-07-08 오전 12 12 11 스크린샷 2021-07-08 오전 12 14 23 스크린샷 2021-07-08 오전 12 14 27 스크린샷 2021-07-08 오전 12 14 45 스크린샷 2021-07-08 오전 12 14 53

S3IAMRoleEC2 SSH 접속 → 자격 증명 없이도 S3 사용 가능

# 현재 EC2에 적용된 IAM Role(EC2 Profile) 정보 확인
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/STGLabInstanceRole

# S3 버킷 조회
aws s3 ls

# S3 버킷 생성
aws s3 mb s3://버킷(유일한 이름) --region ap-northeast-2

# S3 버킷 삭제
aws s3 rm s3://버킷
스크린샷 2021-07-08 오전 12 15 53 스크린샷 2021-07-08 오전 12 17 33 스크린샷 2021-07-08 오전 12 17 44 스크린샷 2021-07-08 오전 12 18 17 스크린샷 2021-07-08 오전 12 19 28 스크린샷 2021-07-08 오전 12 19 40
# VPC 정보 확인
$ aws ec2 describe-vpcs

권한이 없어서 VPC 확인을 하지 못합니다
스크린샷 2021-07-08 오전 12 20 04

실습) IAM Policy

IAM → 사용자 → admin 클릭 → 권한에 + 인라인 정책 추가 클릭
스크린샷 2021-07-08 오전 12 20 32
스크린샷 2021-07-08 오전 12 20 48
스크린샷 2021-07-08 오전 12 20 52

JSON 클릭 후 아래 내용 입력 -> 정책 검토 클릭

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:RebootInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Resource": "*"
        }
    ]
}
스크린샷 2021-07-08 오전 12 21 08 스크린샷 2021-07-08 오전 12 21 28

이름은 아무거나
하단에 정책 생성 클릭
스크린샷 2021-07-08 오전 12 22 14

정책이 생겼습니당
스크린샷 2021-07-08 오전 12 22 26

다시 Basic 인스턴스 CLI로 돌아간 후

# ec2 조회
aws ec2 describe-instances

# S3IAMRoleEC2 재시작
aws ec2 reboot-instances --instance-ids 'S3IAMRoleEC2'
스크린샷 2021-07-08 오전 12 22 52

재시작은 안 되는 걸 볼 수 있다. 아까 추가한 인라인 정책 중 Deny 항목에 ec2:RebootInstances이 있었기 때문이다
스크린샷 2021-07-08 오전 12 25 41

자원 삭제 (중요!)

IAM User 삭제(admin, viewuser)

CloudFormation 삭제


참고 자료 : AFOS[2기] 노션 내용

profile
Junior Cloud Engineer

0개의 댓글