iam이란?

YEONGHUN KO·2025년 1월 22일
0

AWS

목록 보기
2/4
post-thumbnail

Identity Access Management의 약자이다.

글자 그대로 해석하자면 어떤 주체에 접근권한을 부여하는 것을 의미한다. 크게 두가지로 나뉜다.

자격증명-기반 정책(Id-Based Policy,이하 IB) / 리소스-기반 정책(Resource-Based Policy, 이하 RB)

IB는 aws 계정, iam 사용자 그룹, 역할 등에 적용된다. 즉 특정 주체의 접근 범위를 명시하는 거라고 보면된다. "이 정책과 연결된 보안주체는 어떤 대상에 대해 이러한 권한이 부여된다" 라고 이해하면 된다. 그래서 정책을 부여한 주체가 보안주체이니 principle 속성이 필요 없다.

IB는 특정 aws계정, aws 그룹(사용자 그룹), aws 역할(aws서비스, 외부 앱) 에 적용가능하다.

RB는 특정 리소스 안에서 명시되는 정책이다. 예를 들어, s3안에서 이 정책이 명시되면 s3의 접근권한에 대한 정보를 알 수 있다. "이 대상에 대해 이러한 권한이 누구누구에게 부여가 된다" 로 이해하면된다. 그래서 "누구누구" 에 대한 정보가 필요한데 그 정보가 principle에 명시되어 있다.

그리고 iam 정책은 json의 형태로 나타난다.

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E36E6CTWWW86E5"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::budify.buddy.net/*"
        }
    ]
}

여러가지 용어가 있는데 중요한 용어들 간단히 살펴보자.

  1. Effect
  • emum: Allow | Deny
  • 규칙을 허용할지 안 할지 구분한다.
  1. Acion
  • string | Array<string>
  • 허용할 행위를 말한다.
  1. Resource
  • statment의 주제가 되는 리소스를 한정한다.
  1. Prinicple
  • object
  • RB에서만 명시가 된다. 해당 resource에 대한 권한을 부여받는 주체이다.

5.Sid

  • string
  • statement를 구분하기 위해 사용된다.

위의 예시로 적힌 iam 정책을 한 문장으로 해석하면 아래와 같다.

S3 버킷 budify.buddy.net 에 업로드된 모든 오브젝트를 읽을 권한(s3:GetObject)를 CloudFront Origin Access Identity E36E6CTWWW86E5 에 부여한다.

(참고로 위의 정책은 principal이 들어감으로 RB이다. 그래서 budify-was ec2에 iam 역할을 부여하고 그 역할을 principal로 설정해보자!)

정책은 쉽게 말해, "어떤 condition을 만족할때 어떤 resource에 대해서 어떤 action을 할 수 있게 허용/불허(effect)한다" 를 명시하는 것이라고 보면 된다.

참고로 요 링크에 접속하면 iam 정책을 쉽게 만들 수 있다.

출처

  1. https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-IAM-Policy-JSON-%EA%B5%AC%EC%A1%B0-ARN-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC
  2. https://musma.github.io/2019/11/05/about-aws-iam-policy.html
  3. https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-S3-%EB%B2%84%ED%82%B7-%EC%83%9D%EC%84%B1-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%8B%A4%EC%A0%84-%EA%B5%AC%EC%B6%95
profile
'과연 이게 최선일까?' 끊임없이 생각하기

0개의 댓글