클라우드

[AWS] IAM & AWS CLI

AWS Region를 고르는 기준

• requirements: data never leaves a region without your explicit permission
• Proximity to customers: reduced latency
• Available services within a Region: new services and new features aren’t available in every Region
• Pricing: pricing varies region to region and is transparent in the service pricing page

요구 사항: 명시적 허가 없이는 데이터가 영역을 벗어나지 않습니다.
고객과의 근접성: 지연 시간 단축
지역 내에서 이용 가능한 서비스: 일부 지역에서는 새로운 서비스와 새로운 기능을 이용할 수 없습니다.
가격: 가격은 지역마다 다르며 서비스 가격 페이지에서 투명합니다.

 

IAM는 글로벌 서비스이며 리전을 필요로 하지 않는다.
리전에 따라 사용가능한 서비스가 제한되어있다.

 


MFA

MFA는 계정 보안을 설정할때 비밀번호 조건 강화외에도 추가로 설정하는 보안방식인데, 세가지 방식이 있다.

  • Virtual MFA device - 가상 머신
  • Universal 2nd Factor
  • Hardware Key..

앱이나 프로그램으로 인증키를 받는 것 / 이미 인증받은걸 usb에 담아두는거 (공인인증서st) / 은행에서 많이 본 느낌 

 

# 설정 하는 법

보안 자격 증명 > 멀티 팩터 인증(MFA) > MFA활성화 

 


CLI

- Command Line Interface

CLI, 명령줄 인터페이스가 있습니다. 이 인터페이스는 컴퓨터에서 설정되며 액세스 키와 몇 초 안에 다운로드할 자격 증명으로 보호되어 터미널에서 AWS에 액세스할 수 있습니다.

AWS Management 콘솔을 사용하는 대신 사용할 수 있습니다.

 

 

# 장점

 CLI를 사용하면 AWS 서비스의 공용 API에 직접 액세스할 수 있으므로 이 과정에서 매우 유용합니다.
그런 다음 CLI를 사용하여 리소스를 관리하고 일부 작업을 자동화하는 스크립트를 개발할 수 있습니다

 

 

# 윈도우에 CLI설치하기

윈도우용 AWS CLI 설치 사이트로 이동하여 설치하기

링크 클릭 후 설치

 

 

# 올바르게 설치 되었는지 확인

1. cmd를 켜기

2. aws --version

이렇게 버전이 나오면 정상적으로 설치된 것

 

 

# AWS에서 액세스키 받아서 연동하기

1. 액세스 키 받기

IAM > 액세스관리 > 사용자 > 연동할 사용자 클릭 > 요약하단 [보안자격 증명] 탭 클릭 > 액세스 키 세션 내 [액세스 키 만들기] 버튼 클릭

액세스 키는 생성시 한번만 볼수 있지만, 언제든 새로 만들수 있다.  잊어버리면 다시 만들고 다시 연동하면 된다.

 

2. CMD켜기

3. aws configure

4. AWS Access Key ID : 액세스 키ID복붙

5. AWS Secret Access Key : 액세스 키PW복붙

6. Default region name : 구분할 유저명 작성

7. Default output format : 안 적어도 됨

 

 

# 잘 연동 되었는지 확인

IAM권한인 것을 적어본다.

aws iam list-users 명령어에 올바른 값이 출력된다.

 

 

# 권한이 없을 때 잘 접근 제어되는지 확인

방금전에 IAM users를 조회한 계정에 IAM권한을 지웠다. 그리고 다시 CMD에서 aws iam list-users를 실행해보자

접근이 제한되고 있다.

 


AWS CloudShell

현재 콘솔에 접근해 있는 iam권한에 따라 명령어가 실행된다.

AWS Console에서도 CLI처럼 명령어로 제어할수 있다.

장점은 아까 CLI에서 한것 처럼 엑세스를 받아서 자격증명을 할 필요가 없다는 점이다. 

현재 로그인되어있는 계정으로 자격증명이 자동으로 된다.

하지만 해당 방법은 사용가능한 리전이 한정되어있어서, 가능 리전으로 접근해서 사용하거나 해야한다.

(작성일 기준 한국리전은 불가능해서 도쿄리전으로 해봄)

가능 리전 확인하기

 

 

# 파일 만들고 다운로드 받기

클라우드 셸의 특징은 전체 저장소가 있다는 것이다.

[cloudshell-user@ip-10-0-42-127 ~]$ ls
[cloudshell-user@ip-10-0-42-127 ~]$ echo "test">demo.txt
[cloudshell-user@ip-10-0-42-127 ~]$ cat demo.txt 
test
[cloudshell-user@ip-10-0-42-127 ~]$ ls
demo.txt
[cloudshell-user@ip-10-0-42-127 ~]$ pwd
/home/cloudshell-user

처음 ls로 파일 목록을 조회해볼 때 클라우드 셀에는 파일이 없다는 점을 알수 있다.

 

우측 상단 Action 버튼 클릭 > Download file 클릭 
shell에서 생성한 파일 경로 작성 후 download 클릭

 

 

# 글자 사이즈 조절/테마 선택

우측 상단 톱니바퀴 아이콘 클릭 > 글자 사이즈 조절/테마 선택/쉽게 복사하기 기능 on/off가능

 

 

# 탭 추가하기

우측 상단 Action 버튼 클릭 > New tab클릭 > 끌어서 오른쪽에 가져다두기


SDK 

- Software Development Kit

애플리케이션 코드 내에서 AWS에서 API를 호출할 때마다 사용되는 SDK인 AWS 소프트웨어 개발 키트가 있습니다.

 

SDK는 의 약자로, 이것은 라이브러리 집합입니다. 이것은 언어마다 다르므로, 당신은 SDK를 가지고 있을 것입니다. 비슷하게, 그것은 당신이 당신의 AWS 서비스와 API를 프로그래밍 방식으로 접근하고 관리할 수 있게 할 것입니다. 하지만 이번에는 SDK는 당신이 당신의 터미널 내에서 사용하는 것이 아닙니다. 응용 프로그램에 포함시켜 코딩해야 하는 것입니다.

 

자바스크립트, 파이썬, PHP와 같은 다양한 프로그래밍 언어를 지원한다.NET,Ruby,Java,Go,Node.js,C++,이 모든 프로그래밍 언어입니다.

안드로이드나 iOS를 사용한다면 모바일 SDK도 있고, 사물인터넷(IoT) 장치 SDK도 있습니다. 따라서 연결된 열 센ㅈ서나 백로그를 사용할 경우에 대비한 장치 SDK도 있습니다.


이상적인 IAM셋팅

  1. AWS 계정을 설정할 때를 제외하고는 루트 계정을 사용하지 마십시오. AWS 사용자 한 명이 물리적 사용자 한 명과 같다.
  2. 강력한 암호 정책을 만들어야 한다.
  3. MFA(Multiple Factor Authentication)를 사용하여 계정을 해커로부터 안전하게 보호해야 한다.
  4. AWS를 프로그래밍 방식으로 사용하거나 CLI를 사용하여 CLI나 일부 SDK를 사용하려면 액세스 키를 생성해야 합니다. 이러한 액세스 키는 암호와 같다. 해당 액세스 키는 꼭 유출되지 않도록 해야한다.

 

Users 사용자: 물리적 사용자에 매핑되었으며 AWS 콘솔의 암호가 있습니다.
Groups 그룹: 사용자만 포함합니다.
Policies 정책: 사용자 또는 그룹에 대한 사용 권한을 요약한 JSON 문서
Roles 역할: EC2 인스턴스 또는 AWS 서비스용
Security 보안: MFA + 암호 정책
Access Keys 액세스 키: CLI 또는 SDK를 사용하여 AWS 액세스
Audit 감사: IAM 자격 증명 보고서 및 IAM Access Advisor

 

 


퀴즈 오답노트

IAM Security Tool : IAM Credentials Report

IAM시큐리티 툴 : IAM Credentials Report

 

Which principle should you apply regarding IAM Permissions?

grant least privilege

IAM 권한과 관련하여 적용할 원칙은 무엇인가요?

원칙을 적게 상속받도록 한다. (최소한의 권한을 준다)

 

IAM User Groups can not be part of other User Groups.

 

According to the AWS Shared Responsibility Model, which of the following is AWS responsibility?

AWS infrastructure

728x90
반응형