Terraform
[Terraform]테라폼으로 AWS IAM 생성하기
암낫어로봇
2024. 4. 25. 14:11
반응형
테라폼 전용 IAM 사용자 생성하기
IAM -> 사용자 -> 사용자 생성 클릭
사용자 이름 지정 -> 그룹에 사용자 추가 -> 사용자 생성
사용자 생성 완료된 상태에서 사용자 이름 클릭
보안 자격 증명 -> 액세스 키 만들기 -> CLI 선택
액세스 키 따로 기록해두기(나중에 다시 확인할 수 없음)
.csv 파일로 다운로드 받을 수 있으므로 다운받은 후 잘 보관해야 한다.
테라폼을 위해 생성한 IAM 사용자에게 권한 부여하기
앞서 생성한 IAM 사용자는 테라폼을 사용해 새로운 IAM 사용자를 생성하기 위한 용도이므로 새로운 사용자를 생성할 수 있는 권한을 미리 부여해주어야 한다.
직접 정책 연결 -> IAMFullAccess -> 권한 추가
권한 부여 완료
AWS CLI로 계정에 접근하기
- `set AWS_PROFILE=iam-terraform` : AWS_PROFILE 환경 변수에 default 사용자의 이름을 지정해주는 명령
- `aws configure` : AWS CLI에서 사용할 사용자를 등록하는 과정
AWS CLI 사용자 등록 확인하는 방법
cat ~/.aws/credentials
cat ~/.aws/config
Terrafom으로 사용자 및 그룹 생성하기
main.tf 파일에 provider, resource 작성
# main.tf
# aws provider 설정
provider "aws" {
region = "ap-northeast-2"
}
# 개별 사용자와 그룹을 각각 생성
resource "aws_iam_user" "manager1" {
name = "manager1"
path = "/system/"
}
resource "aws_iam_group" "manager-group" {
name = "manager"
path = "/system/"
}
# 생성한 개별 사용자와 그룹을 연결해주는 코드(그룹에 사용자 등록)
resource "aws_iam_group_membership" "manager-membership" {
name = "manager-membership"
users = [
aws_iam_user.manager1.name
]
group = aws_iam_group.manager-group.name
}
# iam policy를 생성
resource "aws_iam_policy" "manager-policy" {
name = "manager-policy"
path = "/system/"
description = "manager policy"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EOF
}
# 생성한 iam policy를 group에 연결
resource "aws_iam_group_policy_attachment" "manager-group-policy-attachment" {
group = aws_iam_group.manager-group.name
policy_arn = aws_iam_policy.manager-policy.arn
}
코드 작성 완료 후 설정 적용
`terraform init` -> `terraform plan` -> `terraform apply`
새로운 사용자 생성된 모습
새로운 그룹 생성된 모습
새로운 정책 생성된 모습
그룹 권한에 생성한 정책이 연결된 모습
참고 자료
인프런 - 실리콘밸리 엔지니어와 함께하는 테라폼(Terraform)
실리콘밸리 엔지니어와 함께하는 테라폼(Terraform) | 미쿡엔지니어 - 인프런
미쿡엔지니어 | "클라우드 인프라스트럭처 자동화(Infrastructure Automation)의 세계로 떠나보세요!" 인프라스트럭처 자동화 도구, 테라폼은 클라우드 환경에서 리소스를 프로비저닝(Provisioning)하고 관
www.inflearn.com
반응형