본문 바로가기
Terraform/AWS and 테라폼: Infrastructure as

[AWS and 테라폼: Infrastructure as Code] AWS IAM 소개

by 개발자 영만 2024. 1. 21.

Amazon IAM 개념


AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스. IAM을 사용하여 AWS기본 접근, 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어한다.
 

Security


  • Blocking — 특정 자원에 대한 접근 혹은 사용을 제어하는 것
  • Encrypting — 공개되는 정보에 대해서 식별 불가능한 정보로 암호화 하는 것
  • Hiding — ****정보에 관한 접근을 특정 경로 혹은 명령어로 접근하는 것
  • 위로 갈수록 더 안전하고 강력한 형태이고 밑으로 갈수록 느슨하고 루즈한 형태이다.
  • 보통 EncryptingHiding은 같이 사용한다.
  • AWS IAM의 경우 Blocking의 영역이라고 보면 된다.
     

IAM 구성 요소


  • AWS IAM User — AWS IAM User는 AWS 내에서 생성하는 사용자로 AWS와 상호작용하는 사용자 혹은 어플리케이션을 의미한다.
  • AWS IAM Group — AWS IAM Group은 IAM User의 집합이고, Group을 사용함으로써 다수 사용자에 대하여 동일한 권한을 보다 쉽게 관리할 수 있다.
  • AWS IAM Role — AWS IAM Role은 특정 권한을 가진 IAM 자격증명입니다. 이 Role을 사용함으로써 특정 사용자 혹은 어플리케이션에 혹은 AWS 서비스에 접근 권한을 위임할 수 있다.
  • AWS IAM Policy — AWS의 접근하는 해당 권한을 정의하는 개체로 AWS IAM 리소스들과 연결하여 사용할 수 있다.
     

IAM Policy structure

{
    "Statement":[
        {
            "Effect":"effect",
            "Action":"action",
            "Resource":"arn",
            "Condition:{
                "condition":{
                    "key":"value"
                }
            }
        }
    ]
}
  • Effect — “Allow” 또는 “Deny”일 수 있다. 기본적으로 IAM 사용자에게는 리소스 및 API 작업을 사용할 권한이 없으므로 모든 요청이 거부된다.
  • Action — action은 권한을 부여하거나 거부할 특정 API 작업
  • Resource — 작업의 영향을 받는 리소스. Amazon 리소스 이름(ARN)을 사용하거나 명령문이 모든 리소스에 적용됨을 표시하는 와일드카드(*)를 사용한다.
  • Condition — 선택 사항으로서 정책이 적용되는 시점을 제어하는 데 사용할 수 있다. 다양한 조건을 넣어 권한을 부여할 수 있다.

  • Policy는 두가지 형태가 있는데
    • 내가 만든 Policy
    • aws가 만들어 놓은 자주 사용되는 Policy