[AWS] IAM

qewr·2022년 12월 5일
0

AWS

목록 보기
3/8

다양한 이유로 많은 사람들이 AWS를 사용하려고 한다. 그럼 AWS를 가입하면 가장 먼저 해야할 일이 무엇일까? EC2 인스턴스를 생성하는 것? 아니다. 바로 IAM 사용자를 생성하는 것이다.

IAM

IAM이란 Identity and Access Management의 약자로 AWS 리소스에 대한 사용자 또는 다른 리소스의 액세스를 제어하는 서비스이다. 예를 들어 사용자가 EC2 인스턴스에 대한 작업을 모두 할 수 있게 할지 아니면 읽을 수만 있게 할지 등을 설정할 수 있다.

AWS에 가입하면 기본적으로 루트 계정이 생성된다. 이 루트 계정은 AWS 서비스에 대한 모든 권한이 부여되어 있다. 이 말은 AWS를 이용할 때 특정 상황이 아니고서는 사용하지 않는게 보안적으로 좋다는 말이다. IAM 사용자를 생성하는 것은 권유가 아니라 필수일 정도로 중요하다.

IAM User, Group

AWS에서는 IAM 사용자를 생성하여 조직의 구성원에 대한 리소스 권한을 제어할 수 있다. 이때 하나의 사용자는 조직 내의 한 명의 사용자에 해당이 된다.

사용자는 그룹에 추가될 수 있다. IAM Group은 사용자로 구성된 하나의 집단으로 그룹에 권한을 설정하면 해당 그룹에 소속된 사용자는 그 권한을 부여받는다.

IAM Policy

그렇다면 권한은 어떻게 설정하는 것일까? 바로 IAM Policy를 통해 설정한다. IAM 정책은 아래와 같은 JSON 문서로 되어있다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
          	"Principal": {
              "AWS": ["arn:aws:iam::123456789012:user/username],
            }
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket"
            ],
            "Resource": "*"
        }
    ]
}
  • Version은 정책 언어의 버전으로 보통은 2012-10-17이다.
  • Statement는 정책에 대한 구성 요소로 한 개 이상의 구성을 적을 수 있다.
  • Effect는 Allow, Deny 둘 중 하나의 값을 가지며 해당 정책에 대해 허락할지, 거부할지를 정한다.
  • Principal은 정책을 부여할 대상을 설정한다.
  • Action은 Effect를 기준으로 허용 및 거부될 행위를 말한다.
  • Resource는 Action이 적용될 리소스이다.

IAM 정책을 설정할 때 가장 중요한 것은 최소 권한 부여 원칙을 적용하여 보안을 높이는 것이다. 필요한 것보다 과도한 권한을 부여하는 것은 지양하자.

IAM Role

IAM Role도 Policy와 마찬가지로 권한 정책을 포함한 자격 증명이다. 차이가 있다면 하나의 사용자나 하나의 그룹에 연결되는 것이 아닌 AWS 리소스에 액세스할 수 없는 사용자, 애플리케이션 또는 서비스에 권한을 위임할 수 있다.

해당 역할이 필요한 사람이라면 누구나 그 역할을 얻을 수 있는 것이 IAM Role이다. 예를 들어 EC2 인스턴스에 접근할 권한이 없는 사용자가 역할을 요구하여 EC2에 접근할 수도 있으며, EC2 인스턴스가 S3 서비스를 사용하고자 할때 이에 대한 역할을 부여할 수도 있다.

🪅 참고자료

0개의 댓글