본문 바로가기
Cloud/AWS

AWS) IAM 및 AWS CLI

by 박채니 2023. 11. 20.
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
"유데미" AWS 강의를 참고하여 포스팅한 개인 공부 내용입니다.

 

 

IAM (Identity and Access Management)

→ 사용자 생성 및 그룹 배치

 글로벌 서비스 해당

→ 가입을 하면서 생성된 root 계정은 오직 계정을 생성할 때만 사용

→ 개인 사용자 혹은 그룹을 생성할 수 있음

 

✅ 글로벌 서비스 여부 판단

- AWS Console에서 우측 상단에 Global이라고 표시되어 있음

- 글로벌 서비스가 아니라면 내가 선택한 리전이 표시됨

 

사용자와 그룹을 생성하는 이유

 

* AWS 계정을 사용하도록 허용하기 위함

* 허용을 위해선 권한 부여를 해야함 → IAM 정책 (JSON 문서)

IAM 정책

 

다만, 모든 사용자에게 모든 것을 허용하지 않고 최소 권한의 원칙을 적용

 

IAM 정책

그룹마다 정책을 부여할 수 있음 (그룹이 없는 개인 사용자 또한 가능)

원하는 사용자에게 inline 정책 적용 가능

 

⭐️ IAM 정책 구성 요소

  • Version: 정책 언어 버전
  • Id: 정책 식별 ID (선택 사항)
  • Statement
    • Sid: 문장 ID (선택 사항)
    • Effect: 접근 허용 여부
    • Principal: 특정 정책이 적용될 사용자, 계정 혹은 역할
    • Action: 허용 및 거부되는 API 호출 목록
    • Resource: 적용될 action의 리소스 목록
    • Condition: Statement가 언제 적용될 지 결정 (선택 사항)

 

✅ Version, Id는 문이 아니라 IAM 정책 자체의 일부!

 

IAM 계정 보호

Password Policy (비밀번호 정책의 정의)

비밀번호가 강력할 수록 계정 보안이 철저

* 비밀번호 최소 길이 설정

* 특정 유형의 글자 사용 요구 (대/소문자, 숫자, 특수문자 등)

* 비밀번호 변경 허용 / 금지

* 일정 기간이 지나면 비밀번호 만료

* 비밀번호 재사용 막음

 

Multi Factor Authenticaton (MFA) - 다요소 인증

필수적으로 사용하도록 권장

→ 비밀번호와 소지하고 있는 보안 장치를 함께 사용 (비밀번호를 해킹 당해도 계정이 침해당하지 않음)

 

MFA 옵션

 

  • 가상 MFA 장치 (Virtual MFA device)
    → 원하는 수만큼의 계정 및 사용자 등록 가능
    • Google Authenticator (하나의 휴대전화에서만 사용 가능)
    • Authy (여러 장치에서 사용 가능)
      하나의 장치에서도 토큰을 여러개 지원
  • U2F 보안키 (Univeral 2nd Factor)
    • Yubico 사의 YubiKey (제 3자 회사 장치)
      하나의 보안 키에서 여러 루트 계정과 IAM 사용자를 지원 → 하나의 키로 충분
  • Hardware Key Fob MFA Device
    • Gemalto 사 제품
  • AWS GovCloud (미국 정부의 클라우드)
    → 특수한 Key Fob 필요 (SurePassID 사 제품)

특수한 Key Fob

 

AWS Access 방법

  • password + MFA
  • CLI: access key(자격증명)에 의해 보호
    • AWS CLI 설치
      access key를 생성하여 access
      (https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html)
       
    • CloudShell 이용 (우측 상단에 아이콘 있음 → 사용불가한 region이 있으니 확인 필요)
      AWS 클라우드에서 무료로 사용 가능한 터미널 같은 개념
      구성 (글씨 크기 조정), 파일 업로드/다운로드, 전체 저장소 존재, 내부적으로 API 호출하는 등 장점 및 기능이 많음
# AWS CLI 명령어

$ aws configure
AWS Access Key ID [None]: 발급받은 ACCESS KEY ID 
AWS Secret Access Key [None]: 발급받은 SECRET ACCESS KEY
Default region name [None]: ap-northeast-2
Default output format [None]:

$ aws iam list-users
{
    "Users": [
        {
            "Path": "/",
            "UserName": "chany-dev",
            "UserId": "USER ID",
            "Arn": "ARN",
            "CreateDate": "2023-11-20T13:17:49+00:00",
            "PasswordLastUsed": "2023-11-29T12:36:54+00:00"
        }
    ]
}

 

  • SDK: 애플리케이션 코드 내에서 API 호출 (access key에 의해 보호)

사용자마다 access key를 생성하기 때문에, 공유 금지

 (Access Key ID = username, Secret Access Key = password와 같음)