IAM

  • Identity Access management IAM에서는 사용자를 생성하고 그룹에 배치
    • 글로벌 서비스라 리전을 선택하지 않는다
    • 사용자와 그룹이 글로벌 관점에서 생성됨
  • 루트 계정을 만들때 기본으로 생성되지만 루트 계정은 사용해서도 안되고 공유해서도 안된다
    • 루트 계정은 모든 권한을 갖고 있기 때문에 위험한 계정이 될 수 있다 → 별도의 관리자 계정을 만듦
    • 대신 사용자를 생성해야한다
    • IAM에서 사용자를 생성할 때 하나의 사용자는 조직내에 한 사람으로 해당됨
    • 필요하다면 그룹으로 묶을 수도 있다.
    • 그룹에는 사용자만 배치가능 다른 그룹을 배치할 수 없다
    • 그룹이 없는 사용자도 있지만 추천하는 방식은 아님
    • 유저는 다수의 그룹에 속할 수 있다.
    • 사용자와 그룹을 사용하는 이유
    • AWS에서는 모든 사용자에게 모든 것을 허용하지 않는다
    • 최소 권한의 원칙(least privilege principle) → 필요로 하는 것 이상의 권한을 주지 않는다
    • 세 개의 서비스에 접근해야한다면 세 개의 서비스만 접근 허용
    • Tag로 사용자의 접근을 추적, 조직, 제어할 수 있다
  • 이후 루트 계정 로그인이 아닌 IAM 사용자로 로그인할 수 있다.
    • AdministratorAccess는 루트랑 별 차이없다

IAM 정책

  • 정책을 그룹 레벨로 정의할 수 있다.
  • 그룹에 속하지 않는 사용자는 인라인 정책을 생성할수 있다.
    • 그룹에 속해있든 아니든 원하는 사용자에게 인라인 정책 상속 가능
  • 정책 구조와 정책 명명법에 대해서 잘 이해가 필요
    • JSON Document
      • 정책 구조 요소
        • 버전 숫자를 포함 2012-10-17 정책 언어 버전
        • 식별 ID도 있지만 선택사항
      • Statement
        • Sid - 문장의 식별자
        • Effect - 특정 API에 접근하는 걸 허용하는지 거부하는지 (allow, deny)
        • Principal - 특정 정책이 적용될 사용자 계정 역할로 구성
          • aws:iam:12312313:root ← 이런 형태로 구성됨
        • Action - effect에 기반해 허용 및 거부되는 api 목록
        • Resource - action이 적용될 리소스의 목록
        • Condition - statement가 언제 적용될지 나타내는 것이 있다.

IAM 정책 실습해보기

AdministratorAccess → 이런 구조로 되어있다는 것만 참고할 것

정책을 직접 설정할 수도 있다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GenerateCredentialReport",
                "iam:GenerateServiceLastAccessedDetails",
                "iam:Get*",
                "iam:List*",
                "iam:SimulateCustomPolicy",
                "iam:SimulatePrincipalPolicy"
            ],
            "Resource": "*"
        }
    ]
}

IAM 그룹 사용자과 사용자들의 정보 침해 보호

두 가지 메커니즘이 있다

비밀번호 정책의 정의

  • 비밀번호가 강력할수록 계정의 보안이 강해짐
  • 다양한 옵션을 이용해 비밀번호 정책의 생성이 가능
  • 최소 길이, 소문자 대문자 갯수. 특수문자 등 요구가능
  • 비밀번호 변경 허용 또는 금지 가능
  • 일정시간이 지나면 비밀번호 만료시킬 수 있다
  • 재사용 금지 가능

Multi Factor Authentication 다요소 인증 - MFA (시험을 위해 알아두어여함)

AWS에서는 이 메커니즘을 필수 사용 권장

  • 루트 계정은 무슨 일이 있어도 반드시 보호
  • 전체 IAM 사용자들도 보호를 해야한다
  • 비밀번호 외에 MFA 장치를 사용
    • MFA란?
      • 알고 있는 비밀번호 + 가지고 있는 보안장치를 함께 사용하는 것
    • Password+ MFA Token 물리적 장치
    • 비밀번호를 해킹당해도 계정 소유자에 물리적 장치를 가져가야함
    • MFA 장치 옵션
      • Virtual MFA device
        • google authenticator(폰에서만 사용가능)
        • Authy(멀티 디바이스)
        • 원하는 수만큼의 계정 등록 가능
        • 하나의 디바이스에서 멀티플 토큰을 지원 → 일반적인 OTP라고 생각하면 될듯
      • U2F - Universal 2nd Factor Security KEy
        • Yubico - AWS의 제 3자 회사
        • 물리적 장치 - USB gudxodla
        • 하나의 보안 키로 다양한 유저 지원
      • Hardware key Fob MFA
      • AWS GovCloud

MFA 실습해보기

Authy → aws가 아니더라도 github 등 웹 서비스 중 보안이 중요한 곳에서 많이 사용됨

AWS 엑세스

  1. AWS 콘솔 → 사용자 이름 및 비밀번호 MFA로 보호
  2. CLI로 접근 → 컴퓨터에서 설정 엑세스 키에 의해 보호됨
  3. AWS SDK → 엑세스 키로 보호됨
    1. 특정 언어로된 API
    2. 프로그래밍을 위한 엑세스 가능
    3. 터미널에서 사용하는게 아닌 코딩을 통해 서비스로써 삽입하는 것임
    4. 다양한 프로그래밍 언어를 지원

엑세스 키는 비밀번호와 같다. 절대 공유되면 안됨

'TIL > AWS' 카테고리의 다른 글

EC2 - SAA Level  (1) 2023.05.17
AWS SAA를 위한 EC2 공부하기 (2)  (0) 2023.05.15
AWS SAA를 위한 EC2 공부하기 (1)  (1) 2023.05.15
AWS IAM이 무엇인지 공부하고 실습하기(2)  (0) 2023.05.13
AWS 시작하기  (0) 2023.05.10
복사했습니다!