1. 로그인 계정 설정

backend와 provider 설정

  • terraform/iam/art-id/backend.tf 파일을 수정합니다.

terraform/iam/art-id/backend.tf
terraform {
  required_version = ">= 1.0.0" # Terraform Version

  backend "s3" {
    bucket         = "art-id-apnortheast2-tfstate" # Set bucket name 
    key            = "art/terraform/iam/art-id/terraform.tfstate"
    region         = "ap-northeast-2"
    encrypt        = true
    dynamodb_table = "terraform-lock" # Set DynamoDB Table
  }
}
vim provider.tf
provider "aws" {
  region = "us-east-1" # IAM is global
}

공통 권한 생성

  • 모든 사용자가 공통으로 가져야 할 권한을 생성합니다.

  • 이후 각 그룹마다 권한을 매핑할 예정입니다.

terraform/iam/art-id/every_policy.tf 를 확인합니다. 수정하실 필요는 없습니다.

Module 세팅

  • Multi-account 세팅을 위해서 각 account마다 필요한 정책을 생성해야 합니다.

  • 공통 리소스는 module을 통해서 생성합니다.

    • terraform/iam/art-id/_module_assume_policy 폴더를 생성하여 정의

terraform/iam/art-id/_module_assume_policy/main.tf 를 확인합니다. 따로 수정하실 필요는 없습니다.

Production 계정 접근을 위한 Policy 생성

  • Production 계정에 Assume하기 위해서는 권한이 필요합니다.

  • id 계정에서 production계정의 role을 사용하기 위한 권한 설정이므로, 추후에 production 계정에 해당 Role을 생성해야 합니다.( 본 설정만으로는 assume할 수 없습니다.)

terraform/iam/art-id/assume_policy_prod.tf 를 수정합니다.

팀별로 그룹과 사용자 생성

  • 편의상 아래와 같이 세팅했습니다.

    • group_devops_black

      • 모든 계정에서 admin 권한을 사용할 수 있는 사용자의 그룹

      • 예제 사용자 : [email protected]

    • group_devops_white

      • 모든 계정에서 readonly 권한을 사용할 수 있는 사용자의 그룹

      • 예제 사용자 : [email protected]

사용자 생성

로그인 계정에 실제 로그인을 할 사용자를 생성합니다.

그룹 생성

사용자를 할당할 그룹을 생성합니다.

Black Group

White Group

사용자 비밀번호 초기화

  • 테라폼으로 생성한 사용자에게 초기 비밀번호를 세팅해줍니다.

  • 세팅한 후에 해당 사용자에게 id와 비밀번호를 알려주고 패스워드 변경과 MFA 설정을 요청하시면 됩니다.

IAM > Users > 사용자 선택 > Security credentials 로 이동합니다.

Enable console access 버튼을 클릭하여 아래와 같이 세팅합니다.

Enable console access 를 진행한 후에, 해당 정보를 사용자에게 전달합니다.

Last updated

Was this helpful?