AWS IAM User&Group

박도준·2021년 5월 18일
0

[IaC] Terraform

목록 보기
7/9
post-thumbnail

AWS IAM이란

AWS IAM(Identity and Access Management)는 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스이다.

IAM을 사용하여 AWS 기본 접근 및 리소스를 사용하도록 권한을 부여할 수 있다.



IAM 구성요소

  • IAM User : AWS IAM User는 AWS 내에서 생성하는 사용자로 AWS와 상호작용하는 사용자 혹은 어플리케이션을 뜻한다.

  • IAM Group : AWS IAM Groupdms IAM User의 집합이고, Group을 사용함으로써 다수 사용자에 대하여 동일한 권한을 보다 쉽게 관리할 수 있다.

  • IAM Role : AWS IAM Role은 특정 권한을 가진 IAM 자격 증명이다. 이 Role을 사용함으로써 특정 사용자, 어플리케이션 그리고 AWS 서비스에 접근 권한을 위임할 수 있다.

  • IAM Policy : AWS의 접근하는 해당 권한을 정의하는 개체로 AWS IAM 리소스들과 연결하여 사용할 수 있다.



테라폼으로 IAM user 생성

테라폼으로 IAM user를 생성해본다.

  • provider.tf
provider "aws"{
 region = "ap-northeast-2"
}
  • user_dojun.tf
resource "aws_iam_user" "dojun"{
 name = "dojun"
}

IAM은 리전 종속적인 서비스가 아닌 글로벌 리소스이므로 어떤 region을 적어도 같은 리소스를 의미한다.

IAM User를 생성할 때는 aws_iam_user 리소스를 사용하고, 필수 요소는 name이다.

terraform init

terraform plan

terraform apply

이렇게 테라폼 코드를 통해 IAM User가 생성된 것을 확인할 수 있다. 하지만 생성한 user는 console에 접속할 수 없는데, 이는 생성한 user의 비밀번호를 설정하지 않았기 때문이다.

비밀번호와 MFA는 직접 console 혹은 AWS CLI를 통해 설정할 수 있다. 물론 테라폼을 통해 aws_iam_user_login_profile를 사용하면 설정이 가능하다.



테라폼으로 IAM group 생성

테라폼을 통해 IAM group을 생성해본다.

  • devops_group.tf
resource "aws_iam_group" "devops_group"{
 name = "devops"
}

IAM group을 생성할 때는 aws_iam_group 리소스를 사용하고, 필수 요소는 name이다.

terraform plan

terraform apply



생성한 IAM user를 IAM group에 등록

테라폼으로 생성한 IAM group에 IAM user를 등록해본다.

  • devops_group.tf
resource "aws_iam_group" "devops_group"{
 name = "devops"
}

resource "aws_iam_group_membership" "devops" {
 name = aws_iam_group.devops_group.name

 users = [
   aws_iam_user.dojun.name
 ]

 group = aws_iam_group.devops_group.name
}

IAM user를 group에 등록하기 위해서는 aws_iam_group_membership리소스를 사용한다.

aws_iam_group_membership리소스에는 3가지 필요 요소가 있다.

  • name - Group Membership을 식별하기 위한 이름
  • users - Group에 등록할 IAM user name
  • group - users 목록을 첨부할 IAM 그룹 이름

terraform plan

terraform apply

profile
Better late than never

0개의 댓글