Anda dapat menggunakan Terraform untuk membuat dan mengelola kunci. Topik ini menjelaskan cara membuat kunci.
Ikhtisar
Key Management Service (KMS) memungkinkan Anda membuat kunci master default tanpa perlu membeli instans KMS. Anda juga dapat membuat kunci dalam instans KMS. Untuk informasi selengkapnya tentang kunci, lihat Ikhtisar layanan kunci.
Prasyarat
Menggunakan Akun Alibaba Cloud dengan izin penuh atas semua sumber dayanya menimbulkan ancaman keamanan tinggi jika kredensialnya bocor. Kami menyarankan agar Anda menggunakan pengguna Resource Access Management (RAM) dan membuat AccessKey untuk pengguna tersebut. Untuk informasi selengkapnya, lihat Buat pengguna RAM dan Buat AccessKey.
Untuk memberikan izin kepada pengguna RAM, sambungkan kebijakan AliyunKMSFullAccess. Kebijakan ini memberikan izin untuk mengelola Key Management Service (KMS). Untuk informasi selengkapnya, lihat Kelola izin pengguna RAM.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ], "Condition": {} } ] }Persiapkan lingkungan Terraform. Anda dapat memilih salah satu metode berikut untuk menggunakan Terraform:
Gunakan Terraform di Explorer: Alibaba Cloud menyediakan lingkungan online untuk Terraform. Anda tidak perlu menginstal Terraform dan dapat langsung masuk untuk menggunakannya serta mengujinya secara online. Metode ini cocok untuk skenario pengujian dan debugging Terraform yang cepat, nyaman, dan tanpa biaya.
Cloud Shell: Komponen Terraform telah dipra-instal di Alibaba Cloud Cloud Shell, dan kredensial identitas Anda dikonfigurasi secara otomatis. Anda dapat langsung menjalankan perintah Terraform di Cloud Shell. Metode ini cocok untuk skenario akses dan penggunaan Terraform yang cepat, nyaman, dan berbiaya rendah.
Instal dan konfigurasi Terraform secara lokal: Metode ini cocok untuk skenario dengan konektivitas jaringan terbatas atau ketika diperlukan lingkungan pengembangan kustom.
Pastikan versi Terraform Anda adalah 0.12.28 atau lebih baru. Untuk memeriksa versi saat ini, jalankan perintah terraform --version.
Sumber daya yang digunakan
alicloud_kms_key: Membuat dan mengelola kunci.
alicloud_kms_alias: Membuat dan mengelola alias.
Prosedur
Contoh ini menunjukkan cara membuat kunci dalam instans KMS.
Buat direktori kerja. Di dalam direktori tersebut, buat file konfigurasi bernama
main.tf. File main.tf merupakan file utama Terraform yang mendefinisikan sumber daya yang akan dideploy. Pastikan Anda telah membuat instans KMS sebelum memulai.variable "region" { default = "cn-shanghai" } provider "alicloud" { region = var.region } variable "instance_name" { default = "tf-kms-vpc-172-16" } variable "instance_type" { default = "ecs.n1.tiny" } # Gunakan sumber data 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 vSwitch lain dengan blok CIDR 172.16.128.0/17. resource "alicloud_vswitch" "vsw1" { vpc_id = alicloud_vpc.vpc.id cidr_block = "172.16.128.0/17" zone_id = data.alicloud_zones.default.zones.1.id vswitch_name = "terraform-example-2" } # Buat instans manajemen kunci perangkat lunak dan mulai dengan parameter jaringan. resource "alicloud_kms_instance" "default" { timeouts { delete = "20m" # Tetapkan periode timeout untuk penghapusan. } # Instans manajemen kunci perangkat lunak. product_version = "3" vpc_id = alicloud_vpc.vpc.id # Tentukan zona untuk instans KMS menggunakan 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,alicloud_vswitch.vsw1.id ] # Performa komputasi, jumlah kunci, jumlah rahasia, dan jumlah operasi manajemen akses. vpc_num = "1" key_num = "1000" secret_num = "100" spec = "1000" # Asosiasikan instans KMS dengan VPC lain. Parameter ini opsional. # Jika VPC dan VPC instans KMS berada di bawah akun Alibaba Cloud yang berbeda, Anda harus terlebih dahulu berbagi vSwitch. #bind_vpcs { #vpc_id = "vpc-j6cy0l32yz9ttxfy6****" #vswitch_id = "vsw-j6cv7rd1nz8x13ram****" #region_id = "cn-shanghai" #vpc_owner_id = "119285303511****" #} #bind_vpcs { #vpc_id = "vpc-j6cy0l32yz9ttd7g3****" #vswitch_id = "vsw-3h4yrd1nz8x13ram****" #region_id = "cn-shanghai" #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" }Buat kunci dalam instans KMS:
# Spesifikasi kunci adalah Aliyun_AES_256, dan kunci digunakan untuk enkripsi dan dekripsi (ENCRYPT/DECRYPT). resource "alicloud_kms_key" "kms_software_key_encrypt_decrypt" { timeouts { delete = "20m" # Tetapkan periode timeout untuk penghapusan. } description = "default_key_encrypt_decrypt description" # Penggunaan kunci. Nilai default: ENCRYPT/DECRYPT. Nilai valid: ENCRYPT/DECRYPT, yang menunjukkan bahwa kunci digunakan untuk mengenkripsi atau mendekripsi data. key_usage = "ENCRYPT/DECRYPT" # Spesifikasi kunci. Nilai default: Aliyun_AES_256. key_spec = "Aliyun_AES_256" # Sumber bahan kunci. Nilai default: Aliyun_KMS. Nilai valid: Aliyun_KMS dan EXTERNAL. origin = "Aliyun_KMS" # ID instans KMS. # Jika Anda menambahkan parameter ini, kunci akan dibuat dalam instans KMS. Jika tidak, kunci master default akan dibuat. dkms_instance_id = alicloud_kms_instance.default.id # Jumlah hari sebelum CMK dihapus. pending_window_in_days = 7 # Pemetaan tag yang akan ditetapkan ke sumber daya. Ini opsional. #tags = { #"Environment" = "Production" #"Name" = "KMS-01" #"SupportTeam" = "PlatformEngineering" #"Contact" = "aliyun@test.com" #} } # Alias kunci adalah alias/kms_software_key_encrypt_decrypt, yang harus unik dalam satu Akun Alibaba Cloud. resource "alicloud_kms_alias" "kms_software_key_encrypt_decrypt_alias" { # Alias. alias_name = "alias/kms_software_key_encrypt_decrypt" # ID kunci. key_id = alicloud_kms_key.kms_software_key_encrypt_decrypt.id }Jalankan perintah berikut untuk menginisialisasi lingkungan
Terraform.terraform initOutput berikut menunjukkan bahwa inisialisasi berhasil.
Menginisialisasi backend... Menginisialisasi plugin penyedia... - Menggunakan versi sebelumnya dari hashicorp/alicloud dari file kunci dependensi - Menggunakan hashicorp/alicloud v1.231.0 yang diinstal sebelumnya Terraform 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 menyetel 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.Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk membuat kunci.
terraform applySaat diminta, masukkan
yesdan tekan tombol Enter. Tunggu hingga perintah selesai. Output berikut menunjukkan bahwa kunci telah dibuat.Apakah Anda ingin melakukan tindakan ini? Terraform akan melakukan tindakan yang dijelaskan di atas. Hanya 'yes' yang akan diterima untuk menyetujui. Masukkan nilai: yes ... alicloud_kms_key.kms_software_key_encrypt_decrypt: Membuat... alicloud_kms_key.kms_software_key_encrypt_decrypt: Pembuatan selesai setelah 0 detik [id=key-shh6715c21812y8i7z***] alicloud_kms_alias.kms_software_key_encrypt_decrypt_alias: Membuat... alicloud_kms_alias.kms_software_key_encrypt_decrypt_alias: Pembuatan selesai setelah 0 detik [id=alias/kms_secret] ... Penerapan selesai! Sumber daya: 2 ditambahkan, 0 diubah, 0 dihapus.Verifikasi hasilnya.
Jalankan perintah terraform show
Jalankan perintah berikut untuk melihat detail sumber daya yang dibuat oleh Terraform:
terraform show
Login ke Konsol Key Management Service
Login ke Konsol Key Management Service untuk melihat kunci yang telah dibuat.
Bersihkan sumber daya
Ketika Anda tidak lagi memerlukan sumber daya yang dibuat atau dikelola oleh Terraform, jalankan perintah berikut untuk melepaskannya. Untuk informasi selengkapnya tentang terraform destroy, lihat Perintah umum.
terraform destroy