全部产品
Search
文档中心

Terraform:Gunakan Terraform untuk membuat Peran RAM dan memberikan izin kepada Peran RAM

更新时间:Jun 29, 2025

Terraform adalah alat open source yang memungkinkan Anda melihat pratinjau, mengonfigurasi, dan mengelola sumber daya cloud secara aman dan efisien. Topik ini menjelaskan cara menggunakan Terraform untuk membuat Peran Manajemen Akses Sumber Daya (RAM) dan menempelkan kebijakan ke Peran RAM.

Catatan

Anda dapat menjalankan kode contoh dalam topik ini dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.

Prasyarat

  • Disarankan agar Anda menggunakan pengguna RAM dengan izin minimum yang diperlukan untuk melakukan operasi dalam topik ini. Ini mengurangi risiko kebocoran pasangan AccessKey akun Alibaba Cloud Anda. Untuk informasi tentang cara menempelkan kebijakan yang berisi izin minimum yang diperlukan ke pengguna RAM, lihat Buat Pengguna RAM dan Berikan Izin kepada Pengguna RAM. Dalam contoh ini, kebijakan berikut digunakan:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ram:GetRole",
            "ram:ListPoliciesForRole",
            "ram:ListRoles",
            "ram:CreateRole",
            "ram:DeleteRole",
            "ram:DetachPolicyFromRole",
            "ram:UpdateRole",
            "ram:GetPolicy",
            "ram:GetPolicyVersion",
            "ram:AttachPolicyToRole",
            "ram:CreatePolicy",
            "ram:CreatePolicyVersion",
            "ram:ListEntitiesForPolicy",
            "ram:ListPolicyVersions",
            "ram:DeletePolicy",
            "ram:DeletePolicyVersion",
            "ram:ListPoliciesForGroup",
            "ram:ListPolicies",
            "ram:ListPolicyAttachments"
          ],
          "Resource": "*"
        }
      ]
    }
  • Lingkungan runtime untuk Terraform disiapkan dengan salah satu metode berikut:

    • Gunakan Terraform di Terraform Explorer: Alibaba Cloud menyediakan lingkungan runtime online untuk Terraform. Anda dapat masuk ke lingkungan tersebut dan menggunakan Terraform tanpa perlu menginstalnya. Cocok untuk skenario di mana Anda perlu menggunakan dan men-debug Terraform secara hemat biaya, efisien, dan nyaman.

    • Gunakan Terraform di Cloud Shell: Cloud Shell sudah diinstal sebelumnya dengan Terraform dan dikonfigurasi dengan kredensial identitas Anda. Anda dapat menjalankan perintah Terraform di Cloud Shell. Cocok untuk skenario di mana Anda perlu menggunakan dan mengakses Terraform secara hemat biaya, efisien, dan nyaman.

    • Instal dan Konfigurasikan Terraform pada Mesin Lokal Anda: Cocok untuk skenario di mana koneksi jaringan tidak stabil atau lingkungan pengembangan kustom diperlukan.

Sumber daya yang digunakan

Langkah 1: Buat kebijakan

  1. Buat direktori kerja dan file konfigurasi bernama main.tf di direktori tersebut. Contoh kode berikut menunjukkan cara membuat kebijakan kustom. Untuk informasi lebih lanjut tentang kebijakan, lihat Bahasa Kebijakan. Anda dapat menyalin kode contoh ke file main.tf.

    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    
    # Kebijakan.
    resource "alicloud_ram_policy" "policy" {
      policy_name     = "policy-name-${random_integer.default.result}"
      policy_document = <<EOF
        {
          "Statement": [
            {
              "Action": [
                "oss:ListObjects",
                "oss:GetObject"
              ],
              "Effect": "Deny",
              "Resource": [
                "acs:oss:*:*:mybucket",
                "acs:oss:*:*:mybucket/*"
              ]
            }
          ],
            "Version": "1"
        }
    EOF
      description     = "ini adalah tes kebijakan"
      force           = true
    }
  2. Jalankan perintah berikut untuk menginisialisasi lingkungan runtime Terraform:

    terraform init

    Jika informasi berikut dikembalikan, Terraform telah diinisialisasi:

    Terraform telah berhasil diinisialisasi!
    
    Anda sekarang dapat mulai bekerja dengan Terraform. Coba jalankan "terraform plan" untuk melihat
    perubahan apa pun yang diperlukan untuk infrastruktur Anda. Semua perintah Terraform
    seharusnya sekarang berfungsi.
    
    Jika Anda pernah mengatur atau mengubah modul atau konfigurasi backend untuk Terraform,
    jalankan ulang perintah ini untuk menginisialisasi ulang direktori kerja Anda. Jika Anda lupa, perintah lain
    akan mendeteksinya dan mengingatkan Anda untuk melakukannya jika perlu.
  3. Jalankan perintah berikut untuk mengeksekusi kode:

    terraform apply

    Selama eksekusi kode, masukkan yes saat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai dijalankan. Jika informasi berikut dikembalikan, kode berhasil dieksekusi.

    Anda dapat menerapkan rencana ini untuk menyimpan nilai keluaran baru ini ke status Terraform, tanpa mengubah infrastruktur apa pun.
    
    Apakah Anda ingin melakukan tindakan ini?
      Terraform akan melakukan tindakan yang dijelaskan di atas.
      Hanya 'yes' yang akan diterima untuk menyetujui.
    
      Masukkan nilai: yes
    
    
    Penerapan selesai!  Sumber daya: 2 ditambahkan, 0 diubah, 0 dihapus.
  4. Verifikasi hasilnya.

    Jalankan perintah terraform show

    Jalankan perintah berikut di direktori kerja untuk menanyakan detail kebijakan yang dibuat menggunakan Terraform:

    terraform show

    image

    Masuk ke konsol RAM

    Masuk ke konsol RAM. Di panel navigasi kiri, pilih Permissions > Policies. Di halaman Kebijakan, lihat kebijakan yang telah dibuat.

    image

Langkah 2: Buat Peran RAM dan tempelkan kebijakan ke Peran RAM

  1. Tambahkan konten berikut ke file main.tf.

    # Peran RAM.
    resource "alicloud_ram_role" "role" {
      name        = "role-name-${random_integer.default.result}"
      document    = <<EOF
        {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "apigateway.aliyuncs.com",
                  "ecs.aliyuncs.com"
                ]
              }
            }
          ],
          "Version": "1"
        }
    EOF
      description = "ini adalah tes peran."
      force       = true
    }
    
    # Tempelkan kebijakan ke Peran RAM.
    resource "alicloud_ram_role_policy_attachment" "attach" {
      policy_name = alicloud_ram_policy.policy.policy_name
      role_name   = alicloud_ram_role.role.name
      policy_type = alicloud_ram_policy.policy.type
    }
  2. Buat rencana eksekusi dan pratinjau perubahan.

    terraform plan
  3. Jalankan perintah berikut untuk mengeksekusi kode:

    terraform apply

    Selama eksekusi kode, masukkan yes saat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai dijalankan. Jika informasi berikut dikembalikan, kode berhasil dieksekusi.

    Penerapan selesai!  Sumber daya: 2 ditambahkan, 0 diubah, 0 dihapus.
  4. Verifikasi hasilnya.

    Jalankan perintah terraform show

    Jalankan perintah berikut di direktori kerja untuk menanyakan detail Peran RAM yang dibuat menggunakan Terraform:

    terraform show

    image

    Masuk ke konsol RAM

    1. Masuk ke konsol RAM. Di panel navigasi kiri, pilih Identities > Roles. Di halaman Peran, lihat Peran RAM yang telah dibuat.

      image

    2. Klik nama Peran RAM untuk melihat kebijakan yang ditempelkan ke Peran RAM.

      image

Lepaskan sumber daya

Jika Anda tidak lagi memerlukan sumber daya yang dibuat atau dikelola menggunakan Terraform, jalankan perintah berikut untuk melepaskan sumber daya. Untuk informasi lebih lanjut tentang perintah terraform destroy, lihat Perintah Umum.

terraform destroy

Contoh

Catatan

Anda dapat menjalankan kode contoh dalam topik ini dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.

Kode contoh

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

# Kebijakan.
resource "alicloud_ram_policy" "policy" {
  policy_name     = "policy-name-${random_integer.default.result}"
  policy_document = <<EOF
    {
      "Statement": [
        {
          "Action": [
            "oss:ListObjects",
            "oss:GetObject"
          ],
          "Effect": "Deny",
          "Resource": [
            "acs:oss:*:*:mybucket",
            "acs:oss:*:*:mybucket/*"
          ]
        }
      ],
        "Version": "1"
    }
EOF
  description     = "ini adalah tes kebijakan"
  force           = true
}

# Peran RAM.
resource "alicloud_ram_role" "role" {
  name        = "role-name-${random_integer.default.result}"
  document    = <<EOF
    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "apigateway.aliyuncs.com",
              "ecs.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
EOF
  description = "ini adalah tes peran."
  force       = true
}

# Tempelkan kebijakan ke Peran RAM.
resource "alicloud_ram_role_policy_attachment" "attach" {
  policy_name = alicloud_ram_policy.policy.policy_name
  role_name   = alicloud_ram_role.role.name
  policy_type = alicloud_ram_policy.policy.type
}

Jika Anda ingin melihat contoh yang lebih lengkap, kunjungi direktori layanan terkait di halaman Contoh Lengkap.