Terraform概述

Terraform是一种开源工具,用于安全高效地预览、配置和管理云基础架构和资源。本文介绍Terraform的基本概念和针对密钥管理服务 KMS(Key Management Service)的应用场景。

什么是Terraform

Terraform是IT基础架构自动化编排工具,可以用代码来管理维护IT资源。更多信息,请参见什么是Terraform

  • Terraform的命令行接口CLI(Command Line Interface)提供一种简单机制,用于将配置文件部署到阿里云或其他任意支持的云上,并对其进行版本控制。它编写了描述云资源拓扑的配置文件中的基础结构,例如虚拟机、存储账户和网络接口。

  • Terraform通过Provider支持新的基础架构,让您在阿里云上能够轻松使用简单模板语言来定义、预览和部署云基础结构。

  • Terraform可以创建、修改和删除多种阿里云产品的相关资源,例如ECS、VPC、RDS和SLB等。

通过Terraform管理KMS资源

KMS支持通过Terraform管理以下资源。

资源类型

说明

Provider版本

alicloud_kms_alias

创建并管理别名。

1.77.0及以上版本。

alicloud_kms_application_access_point

创建并管理应用接入点。具体操作,请参见创建应用接入点

1.210.0及以上版本。

alicloud_kms_client_key

创建并管理应用身份凭证(ClientKey)。具体操作,请参见创建应用接入点

1.210.0及以上版本。

alicloud_kms_instance

购买并启用KMS软件密钥管理实例。具体操作,请参见购买并启用软件密钥管理实例

重要

仅支持购买及启用软件密钥管理实例,不支持购买及启用硬件密钥管理实例。

1.210.0及以上版本。

alicloud_kms_key

创建并管理密钥。具体操作,请参见创建密钥

1.85.0及以上版本。

alicloud_kms_key_version

创建并管理密钥版本。

1.85.0及以上版本。

alicloud_kms_network_rule

创建并管理网络控制规则。具体操作,请参见创建应用接入点

1.210.0及以上版本。

alicloud_kms_policy

创建并管理权限策略。具体操作,请参见创建应用接入点

1.210.0及以上版本。

alicloud_kms_secret

创建并管理凭据。具体操作,请参见创建凭据

1.76.0及以上版本。

使用Terraform

  1. 安装Terraform且版本不低于0.14.0。

  2. 说明

    安装后您可以通过terraform --version命令查看Terraform版本,如果版本低于0.14.0,请重新覆盖安装正确版本。

  3. 配置阿里云账号信息。

    说明

    为提高权限管理的灵活性和安全性,建议您创建一个名为Terraform的RAM用户,并为该RAM用户创建AccessKey以及授予AliyunKMSFullAccess权限。具体操作,请参见创建RAM用户为RAM用户授权

    选择一种阿里云认证方式,为Terraform的执行提供认证信息。

    • 方式一:创建环境变量,用于存放身份认证信息(推荐)。

      不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量

      export ALICLOUD_ACCESS_KEY="******"
      export ALICLOUD_SECRET_KEY="******"
      export ALICLOUD_REGION="******"
    • 方式二:在配置文件的provider代码块中指定身份认证信息。

      provider "alicloud" {
        access_key = "******"
        secret_key = "******"
        region     = "******"
      }
  4. 查看Provider版本是否需要升级。

    • 查看Provider版本

      terraform -version 
    • 升级Provider版本

      terraform init -upgrade