All Products
Search
Document Center

Key Management Service:Beli dan aktifkan instans manajemen kunci perangkat lunak dengan Terraform

Last Updated:Jun 05, 2026

Pelajari cara membeli dan mengaktifkan instans manajemen kunci perangkat lunak KMS menggunakan Terraform.

Ikhtisar

Instans manajemen kunci perangkat lunak memerlukan VPC dan vSwitch. Anda juga dapat mengaitkan beberapa VPC dengan instans tersebut. Setelah konfigurasi selesai, sertifikat CA instans akan dihasilkan. Simpan sertifikat ini dengan aman—aplikasi yang mengakses instans KMS memerlukannya.

Persiapan

  1. Siapkan RAM user dan berikan izin

    Untuk keamanan, gunakan RAM user alih-alih Akun Alibaba Cloud Anda.

    1. Buat RAM user: Buat RAM user.

    2. Buat AccessKey: Buat dan catat AccessKey untuk RAM user tersebut. Buat AccessKey.

    3. Berikan izin kepada RAM user: Terraform memerlukan AliyunKMSFullAccess, AliyunVPCFullAccess, dan AliyunBSSFullAccess. Untuk menerapkan prinsip hak istimewa minimal, terapkan kebijakan kustom berikut. Berikan izin kepada RAM user.

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "kms:*"
            ],
            "Resource": [
              "*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "vpc:CreateVpc",
              "vpc:CreateVSwitch",
              "vpc:DescribeNatGateways",
              "vpc:DeleteVpc",
              "vpc:DeleteVSwitch"
            ],
            "Resource": [
              "*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "vpc:DescribeVpcAttribute",
              "vpc:DescribeVSwitchAttributes",
              "vpc:DescribeRouteTableList"
            ],
            "Resource": [
              "*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": [
              "bss:*",
              "bssapi:*"
            ],
            "Resource": [
              "*"
            ]
          }
        ]
      }
  2. Siapkan lingkungan runtime Terraform

    Jalankan Terraform dengan salah satu cara berikut:

    Penting

    Diperlukan Terraform v0.12.28 atau versi yang lebih baru. Jalankan terraform --version untuk memverifikasi.

    1. Terraform Explorer: Lingkungan daring dari Alibaba Cloud. Masuk untuk langsung menggunakannya—tidak perlu instalasi. Paling cocok untuk uji coba cepat tanpa biaya.

    2. Cloud Shell: Terraform telah dipra-instal dan kredensial dikonfigurasi secara otomatis. Paling cocok untuk eksekusi berbasis cloud yang cepat.

    3. Instal dan konfigurasi Terraform secara lokal: Paling cocok untuk lingkungan dengan konektivitas terbatas atau kebutuhan penyiapan khusus.

  3. Periksa versi provider Aliyun/Alicloud

    Beberapa fitur memerlukan versi minimum provider Aliyun/Alicloud:

    • Atur perpanjangan otomatis saat pembuatan: Memerlukan provider 1.245.0 atau lebih baru.

    • Ubah menjadi perpanjangan otomatis: Memerlukan provider 1.257.0 atau lebih baru.

Resource yang digunakan

Penting

Beberapa resource dalam tutorial ini dikenai biaya. Lepaskan resource tersebut jika sudah tidak diperlukan.

Beli dan aktifkan instans manajemen kunci perangkat lunak menggunakan Terraform

Contoh ini membuat dan mengaktifkan instans KMS.

Catatan

Saat Anda mengaktifkan instans manajemen kunci perangkat lunak menggunakan Terraform, Anda hanya dapat mengonfigurasi satu vSwitch.

  1. Buat direktori kerja dan buat file konfigurasi bernama main.tf di dalam direktori tersebut. main.tf adalah file utama Terraform yang mendefinisikan resource yang akan dideploy.

    variable "region" {
      default = "ap-southeast-1"
    }
    
    provider "alicloud" {
      region = var.region
    }
    variable "instance_name" {
      default = "tf-kms-vpc-172-16"
    }
    
    variable "instance_type" {
      default = "ecs.e-c1m2.large"
    }
    # Gunakan data source untuk memperoleh informasi tentang zona yang tersedia. Resource hanya dapat dibuat di zona yang ditentukan.
    data "alicloud_zones" "default" {
      available_disk_category     = "cloud_efficiency"
      available_resource_creation = "VSwitch"
      available_instance_type     = var.instance_type
    }
    # Buat VPC.
    resource "alicloud_vpc" "vpc" {
      vpc_name   = var.instance_name
      cidr_block = "172.16.0.0/12"
    }
    # Buat vSwitch dengan Blok CIDR 172.16.0.0/21.
    resource "alicloud_vswitch" "vsw" {
      vpc_id     = alicloud_vpc.vpc.id
      cidr_block = "172.16.0.0/21"
      zone_id    = data.alicloud_zones.default.zones.0.id
      vswitch_name = "terraform-example-1"
    }
    # Buat instans manajemen kunci perangkat lunak KMS dan mulai dengan parameter jaringan.
    resource "alicloud_kms_instance" "default" {
      # Instans manajemen kunci perangkat lunak.
      product_version = "3"
      vpc_id          = alicloud_vpc.vpc.id
      # Tentukan zona tempat instans KMS berada. Gunakan ID zona yang diperoleh.
      zone_ids = [
        data.alicloud_zones.default.zones.0.id,
        data.alicloud_zones.default.zones.1.id
      ]
      # ID vSwitch.
      vswitch_ids = [
        alicloud_vswitch.vsw.id
      ]
      # Performa komputasi, jumlah kunci, jumlah rahasia, dan jumlah permintaan akses terkelola.
      vpc_num    = "1"
      key_num    = "1000"
      secret_num = "100"
      spec       = "1000"
      # Opsional. Kaitkan VPC lain dengan instans KMS.
      # Jika VPC dan VPC instans KMS dimiliki oleh Akun Alibaba Cloud yang berbeda, Anda harus terlebih dahulu berbagi vSwitch.
      #bind_vpcs {
      #vpc_id = "vpc-j6cy0l32yz9ttxfy6****"
      #vswitch_id = "vsw-j6cv7rd1nz8x13ram****"
      #region_id = "ap-southeast-1"
      #vpc_owner_id = "119285303511****"
      #}
      #bind_vpcs {
      #vpc_id = "vpc-j6cy0l32yz9ttd7g3****"
      #vswitch_id = "vsw-3h4yrd1nz8x13ram****"
      #region_id = "ap-southeast-1"
      #vpc_owner_id = "119285303511****"
      #}
    }
    
    # Simpan sertifikat CA instans KMS ke file lokal.
    resource "local_file" "ca_certificate_chain_pem" {
      content  = alicloud_kms_instance.default.ca_certificate_chain_pem
      filename = "ca.pem"
    }
  2. Inisialisasi lingkungan runtime Terraform.

    terraform init

    Inisialisasi yang berhasil menghasilkan output berikut.

    ...
    Terraform has been successfully initialized!
    You may now begin working with Terraform. Try running "terraform plan" to see any changes...
  3. Buat rencana eksekusi dan pratinjau perubahan.

    terraform plan
  4. Buat instans KMS.

    terraform apply

    Masukkan yes saat diminta dan tekan Enter. Output berikut mengonfirmasi bahwa instans KMS telah dibuat.

    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
      Enter a value: yes
    ...
    Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
  5. Verifikasi hasilnya.

    Jalankan perintah terraform show

    Lakukan kueri detail resource yang dibuat oleh Terraform:

    terraform show

    Masuk ke Konsol Key Management Service

    Masuk ke Konsol Key Management Service. Di halaman Instance Management, ikuti Application Integration Guide: Authorize Application Access, Obtain Instance CA Certificate, dan Complete Application Adaptation. Fokus pada dua langkah terakhir. Tab Software Key Management menampilkan daftar instans KMS Anda beserta kapasitas kunci, kapasitas rahasia, waktu pembuatan, metode penagihan, dan status kedaluwarsa. Anda dapat melihat Details, mengelola Resource Sharing, atau memulai Renewal.

Bersihkan resource

Untuk melepas resource yang dibuat oleh Terraform dan tidak lagi diperlukan, jalankan perintah berikut. Penggunaan terraform destroy dijelaskan dalam Common commands.

terraform destroy

Contoh lengkap

Catatan

Jalankan kode contoh secara langsung dengan sekali klik. Jalankan dengan sekali klik

Kode contoh

variable "region" {
  default = "ap-southeast-1"
}

provider "alicloud" {
  region = var.region
}
variable "instance_name" {
  default = "tff-kms-vpc-172-16"
}

variable "instance_type" {
  default = "ecs.e-c1m2.large"
}
# Gunakan data source untuk memperoleh informasi tentang zona yang tersedia. Resource hanya dapat dibuat di zona yang ditentukan.
data "alicloud_zones" "default" {
  available_disk_category     = "cloud_efficiency"
  available_resource_creation = "VSwitch"
  available_instance_type     = var.instance_type
}
# Buat VPC.
resource "alicloud_vpc" "vpc" {
  vpc_name   = var.instance_name
  cidr_block = "172.16.0.0/12"
}
# Buat vSwitch dengan Blok CIDR 172.16.0.0/21.
resource "alicloud_vswitch" "vsw" {
  vpc_id     = alicloud_vpc.vpc.id
  cidr_block = "172.16.0.0/21"
  zone_id    = data.alicloud_zones.default.zones.0.id
  vswitch_name = "terraform-example-1"
}
# Buat instans manajemen kunci perangkat lunak KMS dan mulai dengan parameter jaringan.
resource "alicloud_kms_instance" "default" {
  # Instans manajemen kunci perangkat lunak.
  product_version = "3"
  vpc_id          = alicloud_vpc.vpc.id
  # Tentukan zona tempat instans KMS berada. Gunakan ID zona yang diperoleh.
  zone_ids = [
    data.alicloud_zones.default.zones.0.id,
    data.alicloud_zones.default.zones.1.id
  ]
  # ID vSwitch.
  vswitch_ids = [
    alicloud_vswitch.vsw.id
  ]
  # Performa komputasi, jumlah kunci, jumlah rahasia, dan jumlah permintaan akses terkelola.
  vpc_num    = "1"
  key_num    = "1000"
  secret_num = "100"
  spec       = "1000"
  # Kaitkan VPC lain dengan instans KMS.
  # Jika VPC dan VPC instans KMS dimiliki oleh Akun Alibaba Cloud yang berbeda, Anda harus terlebih dahulu berbagi vSwitch.
  #bind_vpcs {
  #vpc_id = "vpc-j6cy0l32yz9ttxfy6****"
  #vswitch_id = "vsw-j6cv7rd1nz8x13ram****"
  #region_id = "ap-southeast-1"
  #vpc_owner_id = "119285303511****"
  #}
  #bind_vpcs {
  #vpc_id = "vpc-j6cy0l32yz9ttd7g3****"
  #vswitch_id = "vsw-3h4yrd1nz8x13ram****"
  #region_id = "ap-southeast-1"
  #vpc_owner_id = "119285303511****"
  #}
}
# Simpan sertifikat CA instans KMS ke file lokal.
resource "local_file" "ca_certificate_chain_pem" {
  content  = alicloud_kms_instance.default.ca_certificate_chain_pem
  filename = "ca.pem"
}