본문 바로가기
CI & CD/AWS

AWS iam policy

by Riverandeye 2020. 1. 9.

IAM의 policy에 관해서는 이 블로그에 정말 정리가 잘 되어 있다. 꼭 읽어보도록 하자.

이 블로그엔 내가 찾던 AWS에 대한 모든 정보들이 담겨 있는 것 같다. 정말 감사하다ㅠㅠ

 

대부분의 정보는 위의 블로그에 담겨 있고, 조금 더 설명해야 할 부분들을 추가하였다. 

 

Policy

결국 Policy 라는게, 어떤 정책을 의미하는건데, 가지고 있는 자원에 대한 접근 권한을 지정해 주는 것을 의미한다.

 

일반적으로 루트 사용자는 모든 권한을 가지고 있는데, 이 사용자의 API Key를 생성한 후 이게 유출 된다면 정말로 큰일날 지도 모른다. 모든 자원에 대한 접근 권한이 있으니, 무분별한 사용자가 인스턴스를 마구 만들어버리면 전 재산이 털리게 될 수도 있다. 

 

그렇기 때문에, 해당 루트 사용자가 관리하는 IAM 사용자와 그룹을 만든 후, 해당 사용자와 그룹이 접근 할 수 있는 리소스의 범위와 활동을 제한하여 사용하는 것이다. 

 

Action

각 자원들에 대해 수행할 수 있는 작업들을 의미하는데, 결국엔 이것들을 제어 해 주어야 한다. 

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/using-with-s3-actions.html

 

위 링크는 S3 버킷에 대해 수행할 수 있는 작업의 목록을 담고 있는데, 

이러한 작업들을 어떤 계정은 쓸 수 있게 하고, 어떤 계정은 쓰지 못하게 하는 것이 목적이다.

 

예시

 

더보기

{

  "Version""2012-10-17",

  "Statement": [

    {

      "Sid""ReadOnlyPermissions",

      "Effect""Allow",

      "Action": [

        "lambda:GetAccountSettings",

        "lambda:ListFunctions",

        "lambda:ListTags",

        "lambda:GetEventSourceMapping",

        "lambda:ListEventSourceMappings",

        "iam:ListRoles"

      ],

      "Resource""arn:aws:lambda:::*"

    },

    {

      "Sid""S3Permissions",

      "Effect""Allow",

      "Action": ["s3:GetObject""s3:PutObject""s3:DeleteObject"],

      "Resource""arn:aws:s3:::버킷/*"

    }

  ]

}

version, sid, effect, resource에 대한 정보는 링크의 글에 잘 정리되어 있다. 

 

Group의 Policy를 지정할 때 사용하였는데, 해당 그룹의 사용자에겐 이 규칙이 적용되는 것이다.

Effect가 Allow 로 작성된 것은, 밑의 Action들을 허용한다는 뜻이고, 그 밑의 Resource에 작성된 영역의 리소스들에 대해 액션들을 허용한다는 뜻이다. 

 

두번째 Sid가 S3Permissions 인 Statement가 의미하는 바는, s3의 '버킷'이라는 이름의 버킷의 하위 디렉토리의 모든 자원들에 대해서 Get, Put, Delete 요청을 모두 수행할 수 있게끔 하겠다는 뜻이 된다. 그럼 Group에 해당하는 모든 사용자가 위 기능들을 수행할 수 있는 것이다.

댓글