빛나는 8GB 맥북을 사용하기 위해 AWS EC2에 linux Ubuntu를 설치하여 linux를 학습하고 있다.
오늘은 AWS IAM에 대해 알아보고 AWS CLI를 Linuc Ubuntu 환경에 설치해보겠다.
IAM

- global service
- Identity access management
- 유저를 만들고 그룹에 할당이 가능하다.
- default root user를 만들고 절대 공유하면 안된다.
- IAM에서 유저를 생성하고 그 유저는 조직내의 한 사람을 의미한다.
- 그리고 사용자가 합이 맞으면 그룹화가 가능
- 그룹은 컨테이너 사용자만 가능하고 다른 그룹은 불가
IAM 사용자를 생성하고 그룹에 권한을 부여하는 단계
- AWS Management Console에서 Identity and Access Management(IAM) 서비스로 이동
- 왼쪽 탐색 창에서 "Users(사용자)"를 선택하고, "Add user(사용자 추가)"를 클릭
- 사용자 세부 정보를 입력합니다. 사용자 이름을 설정하고, 액세스 유형을 선택
- "Programmatic access(프로그래밍 액세스)"를 선택하면 액세스 키와 비밀 액세스 키가 생성
- "AWS Management Console access(AWS Management Console 액세스)"를 선택하면 사용자가 콘솔에 로그인할 수 있도록 하고 비밀번호도 설정
- "Permissions(권한)" 단계에서 "Add user to group(사용자를 그룹에 추가)"을 선택
- 새로운 그룹을 생성하거나 기존 그룹을 선택하여 사용자를 그룹에 추가
- 그룹을 생성하려면 "Create group(그룹 생성)"을 클릭하고, 그룹 이름을 설정하고, 그룹에 연결할 정책을 선택
- 기존 그룹을 선택하려면 "Add user to group(사용자를 그룹에 추가)"을 클릭하고, 기존 그룹을 선택
- "Tags(태그)" 및 "Review(검토)" 단계에서 선택적으로 태그를 추가하고, 사용자 설정을 검토한 후 "Create user(사용자 생성)"를 클릭
- 사용자가 생성되면 액세스 키와 비밀 액세스 키(프로그래밍 액세스를 선택한 경우) 또는 사용자 이름과 비밀번호(콘솔 액세스를 선택한 경우)를 안전한 곳에 저장

IAM Policies Structure

- Consists of
- Version: policy language version, always include “2017-04-16” 정책언어버전
- Id: an Indentier for the policy 정책을 확인하는 방법이다. (optional)
- statement : one or more individual statement (required)
- sid : statement의 식별 id 값 (optional)
- Effect : 특정 API에 대한 Access allows or denies?
- Principal : account, user, role 중 누가 적용되는지
- Action : API 호출 목록 Effect에 근거해 거부되거나 허용
- Resource : 작업에 사용할 작업 목록 (optional)
IAM MFA
Vertual MFA Device - Google Authenticator(phone only), Authy(multi-device)
- 단일 장치에서 다중토큰을 지원한다.
- Root Account, IAM User, Role 계정을 얼마든지 추가할 수 있다.
Universal 2nd Factor Security Key - Yubikey by Yubico (3rd party)
Hardware Key Fob MFA Device provided by Gemalto (3rd party)
Hardware Key Fob MFA Device for AWS GovCloud(US) provided by SurePassID (3rd party)
How can user access AWS?
- management console protected by MFA+Password
- AWS CLI Command Line Interface protected by access key
- AWS SDK Software Development Kit - for code protected by access key
Management Console 에서 access Key 생성 가능하다.

루트 사용자 대신 IAM 사용자에 연결된 액세스 키 만드는 방법
- AWS 콘솔의 상단 오른쪽에 있는 사용자 이름 옆에 있는 드롭다운 메뉴를 클릭
- 드롭다운 메뉴에서 "내 보안 자격 증명"을 선택
- "보안 자격 증명" 섹션에서 "액세스 키(액세스 키 ID 및 비밀 액세스 키)" 항목 찾기
- "액세스 키 ID" 열에서 해당 IAM 사용자의 액세스 키 ID를 찾기
- "비밀 액세스 키" 열에서 비밀 액세스 키 값을 확인할 수 있다. 이 값은 보안 상의 이유로 보여주지 않을 수 있으며, 필요하다면 "비밀 액세스 키" 열 옆의 "표시" 링크를 클릭하여 확인할 수 있다.
IAM 사용자의 액세스 키 ID와 비밀 액세스 키를 확인한 후, 이를 AWS CLI의 aws configure 명령을 사용하여 설정할 수 있다.
AWS CLI ?
Command Line Interface
AWS CLI (Amazon Web Services Command Line Interface)는 AWS (Amazon Web Services)를 관리하기 위한 명령줄 도구이다. AWS CLI를 사용하면 터미널 또는 명령 프롬프트에서 AWS 리소스를 생성, 관리 및 제어할 수 있다.
AWS CLI를 사용하면 다양한 AWS 서비스를 다룰 수 있다. 예를 들어, Amazon S3 (Simple Storage Service)에서 파일을 업로드하거나 다운로드하고, Amazon EC2 (Elastic Compute Cloud)에서 인스턴스를 관리하며, Amazon RDS (Relational Database Service)에서 데이터베이스를 설정하고 관리하는 등의 작업을 할 수 있다.
AWS CLI는 강력한 기능을 제공하며, AWS 관리 작업을 자동화하거나 스크립트 작성에 유용하다. 또한, AWS CLI는 AWS SDK (Software Development Kit)를 사용하지 않고도 AWS 리소스와 상호 작용할 수 있는 유연성을 제공한다.
AWS CLI는 Python 기반으로 작성되어 있으며, AWS CLI 설치 후 AWS 계정과 인증 정보를 구성해야 사용할 수 있다.
AWS SDK?
AWS SDK (Amazon Web Services Software Development Kit)는 개발자들이 AWS (Amazon Web Services)를 사용하여 애플리케이션을 개발하고 통합할 수 있도록 도와주는 도구 모음이다. AWS SDK는 여러 프로그래밍 언어에서 사용할 수 있으며, 각 언어에 맞는 라이브러리와 API를 제공한다.
AWS SDK를 사용하면 애플리케이션 내에서 AWS 서비스와 상호 작용할 수 있다. 예를 들어, Amazon S3 (Simple Storage Service)에서 파일을 업로드하거나 다운로드하고, Amazon EC2 (Elastic Compute Cloud)에서 인스턴스를 관리하며, Amazon DynamoDB에서 데이터베이스 작업을 수행하는 등의 작업을 할 수 있다.
AWS SDK는 AWS 서비스의 API 호출을 추상화하고, 인증 및 권한 부여, 요청 및 응답 처리, 오류 처리 등과 같은 기본 작업을 단순화한다. 또한, SDK는 AWS 서비스와 통신하기 위해 필요한 인증 자격 증명과 보안 설정을 관리한다.
AWS SDK는 다양한 프로그래밍 언어로 제공되며, 예를 들어 Java, Python, Ruby, JavaScript(Node.js), .NET(C#), PHP 등을 지원합니다. 이러한 언어별 SDK를 사용하여 개발자는 특정 언어로 작성된 애플리케이션에서 AWS 서비스를 손쉽게 활용할 수 있다.
AWS CLI를 설치방법
- 운영 체제에 필요한 의존성 설치:
- Linux: sudo apt-get update && sudo apt-get install -y unzip
설치 확인:
- 터미널 또는 명령 프롬프트에서 aws --version 명령을 실행하여 설치가 정상적으로 되었는지 확인한다.
구성:
- AWS 계정에 액세스하기 위해 AWS CLI를 구성해야 한다 . aws configure 명령을 실행하면 아래와 같은 옵션들을 수정할 수 있는 라인이 뜬다.

- AWS Access Key ID 및 AWS Secret Access Key: 올바른 액세스 키 ID와 시크릿 액세스 키를 입력했는지 확인한다
- 이 값들은 AWS IAM 사용자로부터 얻을 수 있다
- Default region name: 올바른 리전을 입력했는지 확인한다.
- 예를 들어, "us-west-1" 또는 "ap-southeast-2"와 같은 유효한 AWS 리전 코드를 말한다.
- Default output format: 올바른 출력 형식을 입력했는지 확인한다.
- 예를 들어, "json", "text", "table"과 같은 유효한 형식을 입력한다.
이제 AWS CLI가 설치되었으며, 터미널 또는 명령 프롬프트에서 AWS CLI 명령을 실행할 수 있다.
예를 들어, aws s3 ls 명령을 사용하여 Amazon S3 버킷의 내용을 나열할 수 있다.
여기서 잘못된 access 정보를 넣었을 때 aws configure 초기화 하는 방법은 아래와 같다.
- 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 현재의 AWS CLI 구성 파일을 삭제합니다:
- Linux, macOS:
rm ~/.aws/config
rm ~/.aws/credentials
- Linux, macOS:
'DevOps > aws' 카테고리의 다른 글
[AWS] VPC(Virtual Private Cloud)를 활용한 네트워크 구성 및 보안 설정 W. TERRAFORM 예제 (2) | 2023.07.13 |
---|---|
[AWS] Security Groups (5) | 2023.05.31 |
[AWS] 컨테이너 오케스트레이션 서비스로 비용절감하는 법 (0) | 2023.03.31 |
[AWS] EC2 기본 사용법에 대해 알아보자 (0) | 2022.10.10 |