Topik ini menjelaskan cara menggunakan Terraform untuk membeli dan mengaktifkan instans manajemen kunci perangkat lunak di Key Management Service (KMS).
Ikhtisar
Saat membeli dan mengaktifkan instans manajemen kunci perangkat lunak, Anda harus menyambungkan virtual private cloud (VPC) dan vSwitch ke instans tersebut. Anda juga dapat mengaitkan beberapa VPC dengan instans KMS. Setelah konfigurasi selesai, sertifikat instans CA akan dibuat. Simpan sertifikat ini di lokasi yang aman dan gunakan untuk mengonfigurasi aplikasi yang perlu mengakses instans KMS.
Persiapan
Persiapkan pengguna RAM dan berikan izin
Demi keamanan, kami menyarankan agar Anda menggunakan pengguna Resource Access Management (RAM) alih-alih akun Alibaba Cloud Anda.
Buat pengguna RAM: Untuk informasi selengkapnya, lihat Buat pengguna RAM.
Buat AccessKey: Buat dan catat AccessKey untuk pengguna RAM tersebut. Untuk informasi selengkapnya, lihat Buat AccessKey.
Berikan izin kepada pengguna RAM: Terraform memerlukan izin AliyunKMSFullAccess, AliyunVPCFullAccess, dan AliyunBSSFullAccess untuk membuat dan mengelola sumber daya cloud. Untuk menerapkan prinsip hak istimewa minimal, gunakan kebijakan kustom berikut untuk otorisasi. Untuk informasi selengkapnya, lihat Berikan izin kepada pengguna RAM.
{ "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": [ "*" ] } ] }
Persiapkan lingkungan runtime Terraform
Anda dapat menjalankan Terraform dengan salah satu cara berikut:
PentingPastikan versi Terraform Anda adalah
v0.12.28atau lebih baru. Anda dapat menjalankan perintahterraform --versionuntuk memeriksa versinya.Terraform Explorer: Lingkungan runtime online yang disediakan oleh Alibaba Cloud. Anda dapat langsung menggunakannya setelah masuk, tanpa perlu instalasi. Metode ini cocok untuk skenario di mana Anda ingin mencoba Terraform secara cepat tanpa biaya.
Cloud Shell: Terraform telah dipra-instal di Cloud Shell, dan kredensial identitas Anda dikonfigurasi secara otomatis. Metode ini cocok untuk skenario di mana Anda ingin menjalankan perintah dengan cepat dan mudah di cloud.
Instal dan konfigurasi Terraform secara lokal: Metode ini cocok untuk skenario dengan konektivitas jaringan yang buruk atau ketika diperlukan lingkungan pengembangan kustom.
Periksa versi Provider Aliyun/Alicloud
Beberapa fitur memiliki persyaratan versi tertentu untuk provider Aliyun/Alicloud:
Atur perpanjangan otomatis saat pembuatan: Untuk mengatur perpanjangan otomatis saat membuat instans KMS, versi provider harus
1.245.0atau lebih baru.Ubah menjadi perpanjangan otomatis: Untuk mengubah metode perpanjangan instans KMS yang sudah ada dari perpanjangan manual menjadi perpanjangan otomatis, versi provider harus
1.257.0atau lebih baru.
Sumber daya yang digunakan
alicloud_vpc: Membuat virtual private cloud (VPC).
alicloud_vswitch: Membuat virtual switch (vSwitch) untuk membagi VPC menjadi satu atau beberapa subnet.
alicloud_zones: Menanyakan zona yang tersedia.
alicloud_kms_instance: Membeli dan mengaktifkan instans manajemen kunci perangkat lunak.
Beberapa sumber daya yang digunakan dalam tutorial ini dikenai biaya. Segera hapus sumber daya tersebut jika tidak lagi diperlukan.
Membeli dan mengaktifkan instans manajemen kunci perangkat lunak menggunakan Terraform
Contoh ini membuat dan mengaktifkan instans KMS.
Saat mengaktifkan instans manajemen kunci perangkat lunak menggunakan Terraform, Anda hanya dapat mengonfigurasi satu vSwitch.
Buat direktori kerja dan buat file konfigurasi bernama
main.tfdi direktori tersebut. main.tf adalah file utama Terraform yang mendefinisikan sumber daya yang akan diterapkan.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 mendapatkan informasi tentang zona yang tersedia. Sumber daya 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 telah 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" }Jalankan perintah berikut untuk menginisialisasi lingkungan runtime
Terraform.terraform initKeluaran berikut menunjukkan bahwa Terraform telah diinisialisasi.
... Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes...Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk membuat instans KMS.
terraform applySaat diminta, masukkan
yesdan tekan tombol Enter. Keluaran berikut menunjukkan 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.Verifikasi hasilnya.
Jalankan perintah terraform show
Anda dapat menjalankan perintah berikut untuk menanyakan detail sumber daya yang dibuat oleh Terraform:
terraform showMasuk ke konsol Key Management Service
Masuk ke konsol Key Management Service dan lihat instans KMS yang telah Anda buat.
Bersihkan sumber daya
Jika Anda tidak lagi memerlukan sumber daya yang dibuat oleh Terraform, jalankan perintah berikut untuk menghapusnya. Untuk informasi selengkapnya tentang terraform destroy, lihat Perintah umum.
terraform destroyContoh lengkap
Anda dapat menjalankan kode contoh dalam topik ini secara langsung dengan sekali klik. Jalankan dengan sekali klik