IAM -> 사용자
클릭
사용자 추가
클릭
사용자 이름 : admin
.
프로그래밍 방식 엑세스
, AWS Management Console 액세스
선택 후 -> 비밀번호 설정 -> 다음: 권한
클릭
상단 오른쪽에 기존 정책 직접 연결
클릭
AdministratorAccess
체크
하단에 다음: 태그
클릭
기본 값으로 둔 후 -> 다음: 검토
클릭
하단에 사용자 만들기
클릭
이 뒤로 닫기를 누르면 다시는 액세스키를 볼 수 없으니, .csv 다운로드
클릭해주자
다음 계정도 똑같이 만들어 주자
사용자 이름: viewuser
.
AWS Management Console 액세스
만 체크 후 -> 비밀 번호 설정 -> 다음: 권한
클릭
상단 오른쪽에 기존 정책 직접 연결
클릭
view
를 검색 후, ViewOnlyAccess
클릭 -> 다음: 태그
클릭
기본 값으로 둔 후 -> 다음: 검토
클릭
하단에 사용자 만들기
클릭
view는 액세스키 사용할 일이 없으니 굳이 저장하지 말자
IAM 'admin' 으로 로그인 해보자 (다른 브라우저로 접속 권장, 다시 로그인하기 귀찮기 때문에 ㅎㅎ...)
s3 -> 버킷 만들기
클릭
이름 마음대로 설정 후, 버킷 만들기
클릭
만들어졌습니당
삭제
클릭 -> 버킷 삭제
클릭
삭제도 가능하네요 !
이번엔 'viewuser'로 로그인 해봅시다
s3 -> 버킷 만들기
클릭
이름 마음대로 설정 후, 버킷 만들기
클릭
만들어지지 않습니다 이 IAM 계정에는 볼 수 있는 권한
밖에 없기 때문이죠
저는 귀찮아서 그냥 CLI 앱을 깔았습니다
# 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
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
맨 하단에 다음
클릭
하단에 키값 설정 후 다음
클릭
기본 값으로 둔 후 -> 다음
클릭
하단에 파란박스 체크 후에 스택 생성
클릭
만들어졌습니당
EC2 -> 인스턴스
클릭
EC2가 생성되고 있네요 !
S3IAMRoleEC2
에 들어가보면 IAM 역할에 STGLabInstanceRole
이 적용된 게 보이실 겁니다
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
S3IAMRoleEC2
에 아이디를 복사
# S3IAMRoleEC2 재시작
aws ec2 reboot-instances --instance-ids 'S3IAMRoleEC2'
ping 'S3IAMRoleEC2'
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://버킷
# VPC 정보 확인
$ aws ec2 describe-vpcs
권한이 없어서 VPC 확인을 하지 못합니다
IAM → 사용자 → admin
클릭 → 권한에 + 인라인 정책 추가
클릭
JSON
클릭 후 아래 내용 입력 -> 정책 검토
클릭
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Resource": "*"
}
]
}
이름은 아무거나
하단에 정책 생성
클릭
정책이 생겼습니당
다시 Basic 인스턴스 CLI로 돌아간 후
# ec2 조회
aws ec2 describe-instances
# S3IAMRoleEC2 재시작
aws ec2 reboot-instances --instance-ids 'S3IAMRoleEC2'
재시작은 안 되는 걸 볼 수 있다. 아까 추가한 인라인 정책 중 Deny 항목에 ec2:RebootInstances이 있었기 때문이다
참고 자료 : AFOS[2기] 노션 내용