Cách tạo Vai trò IAM trong AWS bằng Terraform

theanh

Administrator
Nhân viên
Trong bài viết này, chúng ta sẽ xem cách tạo Vai trò 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ề Terraform và AWS IAM Roles. Nếu bạn muốn tìm hiểu thêm về Vai trò IAM, hãy nhấp vào đây.Trong bài viết này, chúng tôi sẽ tạo một vai trò và chỉ định quyền quản trị viên cho vai trò đó.

Điều kiện tiên quyết​

  1. Hiểu biết cơ bản về Terraform.
  2. Terraform đã được cài đặt trên hệ thống của bạn.
  3. Tài khoản AWS (Tạo nếu bạn chưa có một).
  4. '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​

  1. Viết các tệp cấu hình Terraform để tạo Vai trò IAM.
  2. Tạo Vai trò IAM bằng các tệp cấu hình Terraform.
  3. Xóa Vai trò IAM đã tạo bằng Terraform.

Viết các tệp cấu hình Terraform cho Vai trò IAM​

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 trong các 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' chịu trách nhiệm tạo Vai trò IAM trên AWS. main.tf này sẽ đọc các giá trị của 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}"}data "aws_iam_policy_document" "cross_account_assume_role_policy" { statement { effect = "Allow" principals { type = "AWS" identifiers = var.principal_arns } actions = ["sts:AssumeRole"] }}resource "aws_iam_role" "cross_account_assume_role" { name = var.name assume_role_policy = data.aws_iam_policy_document.cross_account_assume_role_policy.json}resource "aws_iam_role_policy_attachment" "cross_account_assume_role" { count = length(var.policy_arns) role = aws_iam_role.cross_account_assume_role.name policy_arn = element(var.policy_arns, count.index)}
Ý nghĩa của các đối số được sử dụng trong cấu hình trên:
  • assume_role_policy- (Bắt buộc) Chính sách cấp cho một thực thể quyền đảm nhận vai trò.
  • policy_arn(Bắt buộc) - ARN của chính sách bạn muốn áp dụng
Tạo 'variables.tf' có chứa khai báo và định nghĩa các biến.

Tại đây,

biến "principal_arns" giữ Số tài khoản AWS được phép sử dụng vai trò này. Bạn thậm chí có thể truyền danh sách Số tài khoản tại đây.

biến "policy_arns"giữ ARN của chính sách mà chúng ta cần đính kèm vào Vai trò mà chúng ta sẽ tạo. Bạn thậm chí có thể truyền danh sách ARN Chính sách tại đây.

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 của AWS VPC"}biến "name" { default = "myrole" type = "string" description = "Tên của vai trò."biến "principal_arns" { default = ["123456789012"] type = list(string) description = "ARN của tài khoản, nhóm hoặc người dùng có khả năng đảm nhận vai trò này."}biến "policy_arns" { mặc định = ["arn:aws:iam::aws:policy/AdministratorAccess"] kiểu = danh sách(chuỗi) mô tả = "Danh sách ARN của các chính sách được liên kết với vai trò IAM đã tạo"}
Sau khi bạn đã tạo 'variables.tf', đừng quên thay đổi các giá trị được gán cho các 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 vai trò 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 vùng.

Để tạo IAMRole, chúng ta không cần cụ thể một vùng nào, tôi chỉ giữ biến này ở đây để bạn có thể hiểu về biến vùng 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ủa bạn. 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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"
Bây giờ, bạn sẽ có 3 tệp, đó là variables.tf, terraform.tfvars và main.tf

Tạo Vai trò IAM 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 tài nguyên mới đã được thêm vào và 0 đã bị hủy.

Bạn có thể vào bảng điều khiển AWSIAM trong Vai trò để xác minh xem Vai trò IAM đã được tạo hay chưa.

Xóa Vai trò IAM đã tạo bằng Terraform​

Nếu bạn không còn cần 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

Kết luận​

Trong bài viết này, chúng ta đã thấy các bước để tạo Vai trò IAM với quyền quản trị viên. Chúng ta cũng đã thấy cách có thể xóa Vai trò IAM chỉ bằng một lệnh.
 
Back
Bên trên