1. 로그인 계정 설정
backend와 provider 설정
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
}
}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?