AWS

IAM (Identity Access Management)

운덩하는 개발자 2023. 3. 8.
반응형

AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스, IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어

  •  주요기능.
    • AWS 계정에 대한 공유 액세스
    • 서비스별 세분화된 권한 제공
    • EC2에서 실행되는 앱을 위한 AWS 리소스 액세서 권한 제공
    • 멀티 팩터 인증(MFA)
    • 자격 증명 연동

AWS 서비스들은 IAM Role을 할당받아 권한 부여가능

Access Key와 Secret Access Key를 직접 입력하지 않고 권한 부여 가능

또한 IAM 사용자 게정을 만들어 사용자에게 적절한 권한을 부여하고 사용 가능한 서비스를 제한 가능

<Policy>

Optional top-level elements 에는 두 개의 키가 존재

  • Version
    • String
    • "2012-10-17", "2008-10-17" 두 개의 버전이 있으며 각 버전마다 정책 언어가 다름
  • Statement : 정책 식별자를 지정

각각의 Statement에는 6개의 키가 존재

  • SID (optional)
    • String
    • Statement ID로서 각 Statement를 구분
  • Effect
    • Allow | Deny
    • 정책에서 엑세스를 허용하는지 거부하는지 여부
  • Principal
    • Object
    • 액세스를 허용하거나 거부할 보안 주체(계정, 사용자, 역할 등)를 지정
    • 리소스 기반 정책에서만 사용
  • Action
    • String | Array<String>
    • 정책이 허용하거나 거부하는 작업 목록 혹은 목록 지정
    • 서비스:작업 의 형태로 작성합니다.
    • "Action": [ "s3:PutObject", "s3:GetObjectAcl", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:PutObjectAcl" ],
  • Resource (optional)
    • arn
    • 작업이 적용되는 리소스 목록을 지정
    • 리소스 기반 정책을 생성하는 경우 선택 사항
    • 이 요소를 포함하지 않으면 작업이 적용되는 리소스는 정책이 연결된 리소스

<Role>

  • 특정 권한을 가진 계정에 생성할 수 있는 IAM 자격증명
  • 역할에는 다음과 같은 주체가 있음 AWS 계정의 IAM 사용자
    • AWS의 서비스(EC2, RDS, ELB 등)
    • 외부 자격 증명 공급자 서비스에 의해 인증된 외부 사용자
  • 역할 생성시 IAM 사용자, 서비스, 외부 사용자 등 주체를 정해야함
  • 하나의 역할에는 다수의 정책을 연결 가능
  • 생성된 역할을 서비스 혹은 IAM 사용자 등에 연결
  • Region에 국한되지 않고 사용 가능
  • 신규 유저는 생성시 아무런 권한이 없으며 Acess Key, Secret Key가 할당
  • 각 키는 최초 생성시에만 볼 수 있으며 즉시 보관 필수

<Group & User>

  • 사용자는 IAM 사용자를 의미하여 관리자 게정에 의해 부여받은 권한에 한해 제한된 서비스에 접근할 수 있는 계정을 의미
  • 콘솔 로그인, 프로그래밍 액세스 가능 여부 선택하여 생성 가능
  • 콘솔 로그인이 승인된 경우, 별도의 링크를 통해 콘솔에 로그인 할 수 있음
  • 각 사용자마다 정책을 부여할 수 있음
  • 사용자 모두에게 일일이 부여하기 힘들거나 그룹 단위로 통제하고 싶은 경우,  'Group'을 사용할 수 있음
  • 그룹은 이미 생성된 사용자와 권한을 설정할 수 있으며 그룹 내 모든 사용자는 그룹의 권한을 적용받음

 

<AdminstartorAccess>

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

모든 리소스에 대한 모든 작업을 허용

369개 중 369개, 즉 모든 서비스 허용

 

<IAMReadOnly>

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

369개 중 1개의 서비스 허용

 

MFA (Multi Factor Authentication) - AWS에선 필수적으로 권장

  • Password + Security device
    • Virtual MFA device
      1. Google Authenticator (Phone only)
      2. Authy (Multi-device)
    • U2F (Universal 2nd Factor Securtiy Key) - USB같이 생긴걸 연
      1. Yubikey
    • Hardware Key Fob MFA Device
      1. Gemalto
      2. GovCloud
반응형

댓글