Dalam artikel ini kita akan melihat cara membuat Peran IAM. Sebelum melanjutkan, saya berasumsi bahwa Anda sudah familiar dengan dasar-dasar Terraform dan Peran IAM AWS. Jika Anda ingin mempelajari lebih lanjut tentang Peran IAM, klik di sini. Dalam artikel ini, kami akan membuat peran dan menetapkannya izin administrator.
Prasyarat
- Pemahaman dasar tentang Terraform.
- Terraform terpasang di sistem Anda.
- Akun AWS (Buat jika Anda belum memilikinya).
- 'access_key' &'secret_key' dari Pengguna AWS IAM. (Klik di sini untuk belajar membuat pengguna IAM dengan 'access_key' &'secret_key' di AWS, )
Apa yang akan kami lakukan
- Tulis file konfigurasi Terraform untuk membuat Peran IAM.
- Buat Peran IAM menggunakan file konfigurasi Terraform.
- Hapus Peran IAM yang dibuat menggunakan Terraform.
Tulis file konfigurasi Terraform untuk Peran IAM
Buat direktori khusus tempat Anda dapat membuat file konfigurasi terraform.
Gunakan perintah berikut untuk membuat direktori dan mengubah direktori kerja Anda saat ini ke direktori tersebut.
mkdir terraform
cd terraform/
Saya menggunakan "vim" sebagai editor untuk menulis dalam file, Anda dapat menggunakan editor pilihan Anda dan salin tempel konfigurasi berikut untuk membuat variabel.tf, terraform.tfvars dan main.tf
Buat 'main.tf' yang bertanggung jawab untuk membuat Peran IAM di AWS. Main.tf ini akan membaca nilai variabel dari variabel.tf dan terraform.tfvars.
vim main.tf
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) }
Arti argumen yang digunakan dalam konfigurasi di atas:
- assume_role_policy - (Diperlukan) Kebijakan yang memberikan izin kepada entitas untuk mengambil peran.
- policy_arn (Wajib) - ARN kebijakan yang ingin Anda terapkan
Buat 'variables.tf' yang berisi deklarasi dan definisi variabel.
Di sini,
Variabel "principal_arns" menyimpan Nomor Akun AWS yang diizinkan untuk diasumsikan menggunakan peran ini. Anda bahkan dapat memberikan daftar Nomor Rekening di sini.
variabel "policy_arns" menampung ARN kebijakan yang perlu kita lampirkan ke Peran yang akan kita buat. Anda bahkan dapat memberikan daftar ARN Kebijakan di sini.
variabel vim.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 = "myrole" type = "string" description = "The name of the role. " } variable "principal_arns" { default = ["123456789012"] type = list(string) description = "ARNs of accounts, groups, or users with the ability to assume this role." } variable "policy_arns" { default = ["arn:aws:iam::aws:policy/AdministratorAccess"] type = list(string) description = "List of ARNs of policies to be associated with the created IAM role" }
Setelah Anda membuat 'variables.tf', jangan lupa untuk mengubah nilai yang ditetapkan ke variabel. Anda harus mengubah nilai yang disorot karena ini khusus untuk lingkungan saya. Anda dapat menyimpan variabel lainnya apa adanya. Jika Anda tidak ingin menetapkan akses admin ke peran yang Anda buat, Anda dapat mengubahnya dengan menentukan ARN Kebijakan dari kebijakan pilihan Anda.
Buat 'terraform.tfvars' yang berisi definisi variabel access_key dan secret_key yang didefinisikan dalam file di atas. Kami telah menyimpan deklarasi 2 variabel ini dalam file 'terraform.tfvars' bersama dengan wilayah.
Untuk membuat Peran IAM, kami tidak secara khusus memerlukan wilayah tertentu, saya hanya menyimpan variabel ini di sini sehingga Anda dapat memahami variabel wilayah ini dan dapat menggunakannya di file pembuatan sumber daya Anda yang lain.
Kunci berikut perlu diubah dengan kunci pengguna IAM Anda. Sebelum menentukan kunci ini, Anda harus membuatnya dari AWS Console dan tidak membagikan kunci ini kepada siapa pun.
vim terraform.tfvars
region = "eu-west-3" access_key = "AKIAQ6GAIA5XFLXF6HOV" secret_key = "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"
Sekarang, Anda seharusnya memiliki 3 file, yaitu, variabel.tf, terraform.tfvars dan main.tf
Buat Peran IAM menggunakan file konfigurasi Terraform
Sebelum Anda menjalankan perintah berikut, pastikan Anda telah mengonfigurasi access_key dan secret_key yang valid.
Perintah pertama yang digunakan adalah 'terraform init'. Perintah ini mengunduh dan menginstal plugin untuk penyedia yang digunakan dalam konfigurasi. Dalam kasus kami ini adalah AWS.
init terraform
Perintah kedua yang digunakan adalah 'terraform plan'. Perintah ini digunakan untuk melihat perubahan yang akan terjadi pada infrastruktur.
rencana terraform
Perintah 'terraform apply' akan membuat sumber daya pada AWS yang disebutkan dalam file main.tf. Anda akan diminta untuk memberikan masukan untuk membuat sumber daya.
terraform berlaku
Saat Anda menjalankan perintah di atas, setelah berhasil diselesaikan, Anda dapat melihat bahwa sumber daya baru telah ditambahkan dan 0 telah dihancurkan.
Anda dapat membuka konsol AWS IAM di bagian Peran untuk memverifikasi apakah Peran IAM dibuat atau tidak.
Hapus Peran IAM yang dibuat menggunakan Terraform
Jika Anda tidak lagi memerlukan sumber daya yang Anda buat menggunakan konfigurasi yang disebutkan dalam file main.tf, Anda dapat menggunakan perintah "terraform destroy" untuk menghapus semua sumber daya tersebut.
hancurkan terraform
Kesimpulan
Dalam artikel ini kita melihat langkah-langkah untuk membuat Peran IAM dengan hak administrator. Kami juga melihat bagaimana Peran IAM dapat dihapus hanya dalam satu perintah.