Trong bài viết này, chúng ta sẽ xem cách tạo Người dùng IAM. Trước khi tiếp tục, tôi cho rằng bạn đã quen thuộc với những điều cơ bản về Người dùng Terraform và AWS IAM. Nếu bạn muốn tìm hiểu thêm về Người dùng IAM, hãy nhấp vào đây.Trong bài viết này, chúng tôi sẽ tạo một người dùng và chỉ định quyền quản trị viên cho người dùng đó.
Sử dụng lệnh sau để tạo một thư mục và thay đổi thư mục làm việc hiện tại của bạn thành thư mục đó.
mkdir terraformcd terraform/
Tôi đang sử dụng "vim" làm trình soạn thảo để viết tệp, bạn có thể sử dụng trình soạn thảo tùy chọn và sao chép, dán các cấu hình sau để tạo các biến.tf, terraform.tfvars và main.tf
Tạo 'main.tf' có nhiệm vụ tạo IAM Useron cho AWS. Main.tf này sẽ đọc giá trị của các biến từ variables.tf và terraform.tfvars.
vim main.tf
Ý nghĩa của các đối số được sử dụng trong cấu hình trên:
Tạo 'variables.tf' chứa khai báo và định nghĩa của các biến.
Tại đây,
biến "name" lưu trữ Tên người dùng IAM sẽ được gán cho người dùng sẽ được tạo.
biến "policy_arns"lưu trữ ARN của chính sách mà chúng ta cần đính kèm vào Người dùng mà chúng ta sẽ tạo. Ở đây tôi đã gán ARN của chính sách sẽ cung cấp Quyền truy cập của Quản trị viên cho người dùng mà chúng ta tạo.
vim variables.tf
Sau khi tạo 'variables.tf', đừng quên thay đổi các giá trị được gán cho biến. Bạn phải thay đổi các giá trị được tô sáng vì chúng dành riêng cho môi trường của tôi. Bạn có thể giữ nguyên các biến còn lại. Nếu bạn không muốn gán quyền truy cập quản trị cho người dùng mà bạn đang tạo, bạn có thể thay đổi bằng cách xác định ARN Chính sách của chính sách bạn chọn.
Tạo 'terraform.tfvars' chứa định nghĩa của các biến access_key và secret_key được xác định trong tệp ở trên. Chúng tôi đã giữ nguyên khai báo của 2 biến này trong tệp 'terraform.tfvars' cùng với 'region'.
Để tạo Người dùng IAM, chúng ta không cần cụ thể một region nào, tôi chỉ giữ biến này ở đây để bạn có thể hiểu về biến region này và có thể sử dụng nó trong các tệp tạo tài nguyên khác của mình.
Cần thay đổi các khóa sau bằng các khóa của người dùng IAM được sử dụng để tạo tài nguyên trên AWS. Trước khi chỉ định các khóa này, bạn cần tạo chúng từ AWS Console và không chia sẻ các khóa này với bất kỳ ai.
vim terraform.tfvars
Bây giờ, bạn sẽ có 3 tệp, đó là variables.tf, terraform.tfvars và main.tf
Lệnh đầu tiên được sử dụng là 'terraform init'. Lệnh này tải xuống và cài đặt các plugin cho các nhà cung cấp được sử dụng trong cấu hình. Trong trường hợp của chúng tôi, đó là AWS.
terraform init
Lệnh thứ hai được sử dụng là 'terraform plan'. Lệnh này được sử dụng để xem những thay đổi sẽ diễn ra trên cơ sở hạ tầng.
terraform plan
Lệnh 'terraform apply' sẽ tạo các tài nguyên trên AWS được đề cập trong tệp main.tf. Bạn sẽ được nhắc nhập thông tin đầu vào để tạo tài nguyên.
terraform apply
Khi bạn thực thi lệnh trên, sau khi hoàn tất thành công, bạn có thể thấy 1 tài nguyên mới đã được thêm vào và 0 tài nguyên đã bị hủy.
Bạn có thể vào bảng điều khiển AWSUser trong Users để xác minh xem IAMUser đã được tạo hay chưa.
Lưu ý: Sau khi tạo người dùng, hãy gán mật khẩu cho người dùng đó từ AWS Console bằng cách sử dụng Root user.
terraform destroy
Điều kiện tiên quyết
- Hiểu biết cơ bản về Terraform.
- Terraform đã được cài đặt trên hệ thống của bạn.
- Tài khoản AWS (Tạo nếu bạn chưa có một).
- 'access_key' & 'secret_key' của Người dùng AWS IAM. (Nhấp vào đây để tìm hiểu cách tạo người dùng IAM bằng 'access_key' và 'secret_key' trên AWS, )
Những gì chúng ta sẽ làm
- Viết các tệp cấu hình Terraform để tạo Người dùng IAM.
- Tạo IAMUser bằng các tệp cấu hình Terraform.
- Xóa createdIAMUser bằng Terraform.
Viết các tệp cấu hình Terraform cho IAMUser
Tạo một thư mục chuyên dụng nơi bạn có thể tạo các tệp cấu hình Terraform.Sử dụng lệnh sau để tạo một thư mục và thay đổi thư mục làm việc hiện tại của bạn thành thư mục đó.
mkdir terraformcd terraform/
Tôi đang sử dụng "vim" làm trình soạn thảo để viết tệp, bạn có thể sử dụng trình soạn thảo tùy chọn và sao chép, dán các cấu hình sau để tạo các biến.tf, terraform.tfvars và main.tf
Tạo 'main.tf' có nhiệm vụ tạo IAM Useron cho AWS. Main.tf này sẽ đọc giá trị của các biến từ variables.tf và terraform.tfvars.
vim main.tf
Mã:
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}
-
user
- Người dùng mà chính sách sẽ được áp dụng -
policy_arn
- ARN của chính sách mà bạn muốn áp dụng
Tạo 'variables.tf' chứa khai báo và định nghĩa của các biến.
Tại đây,
biến "name" lưu trữ Tên người dùng IAM sẽ được gán cho người dùng sẽ được tạo.
biến "policy_arns"lưu trữ ARN của chính sách mà chúng ta cần đính kèm vào Người dùng mà chúng ta sẽ tạo. Ở đây tôi đã gán ARN của chính sách sẽ cung cấp Quyền truy cập của Quản trị viên cho người dùng mà chúng ta tạo.
vim variables.tf
Mã:
biến "access_key" { description = "Khóa truy cập vào bảng điều khiển AWS"}biến "secret_key" { description = "Khóa bí mật vào bảng điều khiển AWS"}biến "region" { description = "Khu vực AWS VPC"}biến "name" { default = "myadmin" type = "string" description = "Tên người dùng"}biến "policy_arns" { default = "arn:aws:iam::aws:policy/AdministratorAccess" type = string description = "ARN của chính sách sẽ được liên kết với người dùng IAM đã tạo"}
Tạo 'terraform.tfvars' chứa định nghĩa của các biến access_key và secret_key được xác định trong tệp ở trên. Chúng tôi đã giữ nguyên khai báo của 2 biến này trong tệp 'terraform.tfvars' cùng với 'region'.
Để tạo Người dùng IAM, chúng ta không cần cụ thể một region nào, tôi chỉ giữ biến này ở đây để bạn có thể hiểu về biến region này và có thể sử dụng nó trong các tệp tạo tài nguyên khác của mình.
Cần thay đổi các khóa sau bằng các khóa của người dùng IAM được sử dụng để tạo tài nguyên trên AWS. Trước khi chỉ định các khóa này, bạn cần tạo chúng từ AWS Console và không chia sẻ các khóa này với bất kỳ ai.
vim terraform.tfvars
Mã:
region = "eu-west-3"access_key = "AKIAQ6GAIA5XFLXF6HOV"secret_key = "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"
Tạo IAMUser bằng các tệp cấu hình Terraform
Trước khi thực hiện các lệnh sau, hãy đảm bảo rằng bạn đã cấu hình access_key và secret_key hợp lệ.Lệnh đầu tiên được sử dụng là 'terraform init'. Lệnh này tải xuống và cài đặt các plugin cho các nhà cung cấp được sử dụng trong cấu hình. Trong trường hợp của chúng tôi, đó là AWS.
terraform init
Lệnh thứ hai được sử dụng là 'terraform plan'. Lệnh này được sử dụng để xem những thay đổi sẽ diễn ra trên cơ sở hạ tầng.
terraform plan
Lệnh 'terraform apply' sẽ tạo các tài nguyên trên AWS được đề cập trong tệp main.tf. Bạn sẽ được nhắc nhập thông tin đầu vào để tạo tài nguyên.
terraform apply
Khi bạn thực thi lệnh trên, sau khi hoàn tất thành công, bạn có thể thấy 1 tài nguyên mới đã được thêm vào và 0 tài nguyên đã bị hủy.
Bạn có thể vào bảng điều khiển AWSUser trong Users để xác minh xem IAMUser đã được tạo hay chưa.
Lưu ý: Sau khi tạo người dùng, hãy gán mật khẩu cho người dùng đó từ AWS Console bằng cách sử dụng Root user.
Xóa IAM User đã tạo bằng Terraform
Nếu bạn không còn cần đến các tài nguyên đã tạo bằng cấu hình được đề cập trong tệp main.tf, bạn có thể sử dụng lệnh "terraform destroy" để xóa tất cả các tài nguyên đó.terraform destroy