Terraform을 사용하여 AWS에서 IAM 사용자 생성
이 기사에서는 IAM 사용자를 생성하는 방법을 살펴봅니다. 계속 진행하기 전에 귀하가 Terraform 및 AWS IAM 사용자의 기본 사항에 익숙하다고 가정합니다. IAM 사용자에 대해 자세히 알아보려면 여기를 클릭하십시오. 이 도움말에서는 사용자를 만들고 관리자 권한을 할당합니다.
전제 조건
- Terraform에 대한 기본적인 이해.
- 시스템에 Terraform이 설치되어 있습니다.
- AWS 계정(계정이 없는 경우 생성).
- AWS IAM 사용자의 access_key 및 secret_key. (AWS에서 access_key 및 secret_key를 사용하여 IAM 사용자를 생성하는 방법을 알아보려면 여기를 클릭하십시오.)
우리가 할 일
- IAM 사용자 생성을 위한 Terraform 구성 파일을 작성합니다.
- Terraform 구성 파일을 사용하여 IAM 사용자를 만듭니다.
- Terraform을 사용하여 생성된 IAM 사용자를 삭제합니다.
IAM 사용자용 Terraform 구성 파일 작성
terraform 구성 파일을 만들 수 있는 전용 디렉터리를 만듭니다.
다음 명령을 사용하여 디렉토리를 만들고 현재 작업 디렉토리를 변경하십시오.
mkdir terraform
cd terraform/
저는 \vim\을 편집기로 사용하여 파일을 작성하고 있습니다. 원하는 편집기를 사용하고 다음 구성을 복사하여 붙여넣어 variables.tf, terraform.tfvars 및 main.tf를 만들 수 있습니다.
AWS에 대한 IAM 사용자 생성을 담당하는 main.tf를 생성합니다. 이 main.tf는 variables.tf 및 terraform.tfvars에서 변수 값을 읽습니다.
vim main.tf
provider "aws" { region = "${var.region}" access_key = "${var.access_key}" secret_key = "${var.secret_key}" } resource "aws_iam_user" "user" { name = var.name } resource "aws_iam_user_policy_attachment" "attach-user" { user = "${aws_iam_user.user.name}" policy_arn = var.policy_arns }
위 구성에서 사용된 인수의 의미:
사용자
- 정책을 적용해야 하는 사용자policy_arn
- 적용할 정책의 ARN입니다.
위의 구성은 사용자를 만들고 정책을 연결합니다.
변수의 선언 및 정의를 포함하는 variables.tf를 생성합니다.
여기,
\name\ 변수는 생성될 사용자 이름에 할당될 IAM 사용자 이름을 보유합니다.
\policy_arns\ 변수는 생성할 사용자에 연결해야 하는 정책의 ARN을 보유합니다. 여기에서 생성한 사용자에게 관리자 액세스 권한을 제공할 정책의 ARN을 할당했습니다.
vim variables.tf
variable "access_key" { description = "Access key to AWS console" } variable "secret_key" { description = "Secret key to AWS console" } variable "region" { description = "Region of AWS VPC" } variable "name" { default = "myadmin" type = "string" description = "The name of the user" } variable "policy_arns" { default = "arn:aws:iam::aws:policy/AdministratorAccess" type = string description = "ARN of policy to be associated with the created IAM user" }
variables.tf를 생성했으면 변수에 할당된 값을 변경하는 것을 잊지 마십시오. 강조표시된 값은 내 환경에만 해당하므로 변경해야 합니다. 나머지 변수는 그대로 유지할 수 있습니다. 생성 중인 사용자에게 관리자 액세스 권한을 할당하지 않으려면 선택한 정책의 정책 ARN을 정의하여 변경할 수 있습니다.
위 파일에 정의된 access_key 및 secret_key 변수의 정의를 포함하는 terraform.tfvars를 생성합니다. 우리는 region과 함께 terraform.tfvars 파일에 이 두 변수의 선언을 보관했습니다.
IAM 사용자를 생성하기 위해 특별히 특정 지역이 필요하지 않습니다. 이 지역 변수를 이해하고 다른 리소스 생성 파일에서 사용할 수 있도록 이 변수를 여기에 보관했습니다.
다음 키는 AWS에서 리소스를 생성하는 데 사용되는 IAM 사용자의 키로 변경해야 합니다. 이러한 키를 지정하기 전에 AWS 콘솔에서 키를 생성해야 하며 이 키를 누구와도 공유하지 마십시오.
vim terraform.tfvars
region = "eu-west-3" access_key = "AKIAQ6GAIA5XFLXF6HOV" secret_key = "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"
이제 3개의 파일 즉, variables.tf, terraform.tfvars 및 main.tf가 있어야 합니다.
Terraform 구성 파일을 사용하여 IAM 사용자 만들기
다음 명령을 실행하기 전에 유효한 access_key 및 secret_key를 구성했는지 확인하십시오.
사용할 첫 번째 명령어는 terraform init입니다. 이 명령은 구성 내에서 사용되는 공급자에 대한 플러그인을 다운로드하고 설치합니다. 우리의 경우 AWS입니다.
terraform init
두 번째로 사용할 명령은 terraform plan입니다. 이 명령은 인프라에서 발생할 변경 사항을 확인하는 데 사용됩니다.
terraform plan
terraform apply 명령은 main.tf 파일에 언급된 AWS에 리소스를 생성합니다. 리소스를 생성하기 위한 입력을 제공하라는 메시지가 표시됩니다.
terraform apply
위의 명령어를 실행하면 성공적으로 완료되면 새 리소스 1개가 추가되고 0개가 삭제된 것을 확인할 수 있습니다.
사용자 아래의 AWS 사용자 콘솔로 이동하여 IAM 사용자가 생성되었는지 확인할 수 있습니다.
참고: 사용자를 생성한 후에는 루트 사용자를 사용하여 AWS 콘솔에서 암호를 할당하십시오.
Terraform을 사용하여 생성된 IAM 사용자 삭제
main.tf 파일에 언급된 구성을 사용하여 생성한 리소스가 더 이상 필요하지 않은 경우 \terraform destroy\ 명령을 사용하여 해당 리소스를 모두 삭제할 수 있습니다.
terraform destroy
결론
이 도움말에서는 관리자 권한이 있는 IAM 사용자를 만드는 단계를 확인했습니다. 또한 단 하나의 명령으로 IAM 사용자를 삭제할 수 있는 방법도 확인했습니다.