본문 바로가기
CICD/AWS

[AWS] IAM 과 CLI

by windy7271 2024. 7. 3.
728x90
반응형

 

새로운 어플 선택시 어느 나라를 선택하는게 좋을까?

-상황에 따라 다르다

 

  • 1. 법률준수
  • 2.지연시간: 가까울 수록 지연시간이 줄어든다.
  • 3.요금

데이터 센터(DC)와 가용영역(AZ)들은 높은 대역폭의 초저지연 네트워킹으로 서로 연결되어 리전을 형성한다.

 

각각의 Region에는 보통 3개가용영역 최대 6개 가지고 있다.

ap-southeaset-2a. ap-southeaset-2b, ap-southeaset-2c 이런게 AZ라고 볼 수 있는데.

 

재난 발생에 대비해 서로 분리 되어있고, 하나가 고장나면 나머지에 영향을 끼치지 않는다.

높은 대역폭의 초저지연 네트워킹으로 연결되어있다.

Region을 서울로 설정해 둘지라도 예를들어 Route 53 을 들어가면 글로벌로 나온다. 이유는 리전 선택이 필요하지 않기 때문이다.

 

모든 리전에 똑같은 서비스가 존재하는건 아니다. 극단적인 예를들어 서울에 Route53이 있는데, 케이프타운에는 Route53이 없을 수도 있다.


 

 

IAM : Identity and Access Managemnt (글로벌 선택 필요 없음, 하지만 특정 지역에서만 선택가능한 것이 있다.)

 

IAM 정책이란 AWS 서비스에 요청을 생성하기 위한 일련의 권한을 말하며, IAM 사용자, 사용자 그룹 및 IAM 역할에서 사용하게 될 JSON문서를 말한다.

 

사용자 생성, 그룹에 배치 -> 글로벌 서비스

사용자를 왜 만들까 ??

  • 처음 로그인해서 사용하는건 루트 사용자이기 때문이다.
  • 루트 계정을 사용하는건 최선, 안전한 방법이 아니라 생성한다.

IAM : permission

사용자에게 권한을 부여해야한다. → 사용자 혹은 그룹에게 정책, 혹은 IAM 이라는 정책이라고 불리는 json문서저장 가능하다.

IAM 정책의 문장은 시드(Sid), 효과(Effect), 원칙(Principal), 조치(Action), 리소스(Resource), 그리고 조건(Condition)으로 구성된다.

 

AWS에서는 최소권한원칙 을 따른다.

 

 

관리 콘솔에 접근할 수 있게 하기위해 체크를 해준다.

  1. IAM을 생성해준다.
  1. 사용자에게 권한추가하기, 그릅추가

 

태그는 나의 리소스에 메타데이터를 제공할 수 있게 도와준다.

 

 

예를들어 부서가 기술부라고 해줄 수 있다.

그럼 사용자, 사용자 그룹에 들어가면 설정이 알맞게 되어있다.

 

사용자에서 방금만든 boseok으로 들어오면 내가 속한 admin그룹이 가진 모든 권한을 boseok이 이어 받는다는 얘기이다.

이런식으로 관리하면 권한 관리하는것이 더 간단하기 때문에 사용한다.

별칭으로 aws-boseok-v3 으로 해놨기 때문에 다음과 같이 가능하다.

IAM 정책

그룹에 속해있지 않음 사용자를 연결 가능하게 인라인 정책 생성 가능

추가 방법정리 :

  1. 상속,
  2. 인라인 정책

다른 그룹에 속하는 A,B 에게 C정책을 상속받게도 할 수 있다.

보통 Json 형식이다.

Version : 정책언어버전

ID : 정책 식별 ID (선택)

statment : 문장

SID : 문장ID로 문장의 식별자(선)

effect : 문장이 특정 api에 접근할, 말지 (allow or deny)

principal : 정책 적용 될 사용자.

Action : effect 기반하여 호출되는 목록

Resource : action 의 리소스 목록

 

MFA : 다요소 인증 AWS 필수적 권장

비밀번호 + 보안장치 같이 사용 → 비밀번호 해킹시 보안장치도 알아야하기 때문에 확률이 낮음

 

MFA장치

Authy, Google Authenticator → 여러 토큰을 제공한다. 사용 편하다

U2F : 물리적 장치 , 사용편하다 하나의 보안 키에서 여러 루트 게정과 IAM사용자를 지원하기 때문에 하나의 키로도 충분하다.

하드웨어 MFA

 

 

IAM → 보안자격증명

 

QR 코드 인증후 MFA 코드 2 번 입력후 등록하면 된다.

AWS 접근 3가지방법

  1. CLI (명령 인터페이스) 엑세스 키에 의해 보호 된다.
  2. SDK : AWS로 부터 App 코드 내에서 API를 호출하고자 할 때 사용된다. 엑세스 키에 의해 관리된다.
  3. AWS Management Console
  • CLI , SDK 를 사용하여 엑세스 할 수 있는 엑세스 키를 생성할 수 있다.

mac 기준 설정확인

aws 유저에 들어가서 엑세스 키 생성하기

 

aws iam list-users : 내 계정의 모든 사용자 나열

 

관리 콘솔과 CLI는 비슷한 종류의 정보를 제공한다.

그룹에서 삭제하면 권한이 제거돼서 다음과 에러가 나온다.

 

aws에서 cloudshwell 에서도 확인이 가능하다.

IAM Role 은 사용자와 같지만 실제 사람이 사용하는게 아닌 AWS서비스에 의해 사용되도록 만들어졌다.

iam role을 만들어 ec2와 하나의 객체로 만든다 → ec2 인스턴스가 aws에 어떤 정보에 접근할때 iam role사용된다.

EC2 관한 IAM Role 생성 방법

Role 정책과 권한 할당

ec2 인스턴스가 IAM 에서 읽을 수 있게 된다.

IAM 보안도구

  • 자격 증명 보고서 만들 수 있다. (다양한 자격증명 보여줌) ⇒ account-level
  • IAM액세스 관리자 어떤 권한이 사용됐는지 아닌지 (최소권한의 원칙) ⇒ user-level
  1. 자격증명 만들기
 

이런식으로 자격증명에 대한 보고서를 표로 나타내서 csv로 돌려준다.

  1. 엑세스 관리자

사용자 → 유저 → 엑세스 관리자 에 나오게 된다.

 

 

IAM 에서 제공하는 일반적인 가이드라인, 모범사례

  1. root 계정은 설정할때 제외 건드리지 않는다.
  2. 누군가 사용하려고 하면 새로운 사용자를 만들어주고 보안그룹에 추가 해준다.
  3. 강력 비밀번호 정책을 한다. (MFA)
  4. AWS 서비스에 권한을 부여할때마다 새로운 역할 을 만들어 사용한다.

 

반응형

댓글