本文介绍如何使用Terraform创建一个RAM用户。

方式一:通过Terrform Resource创建

  1. 创建RAM用户。
    1. 创建terraform.tf文件,输入以下内容,并保存在当前的执行目录中。
      resource "alicloud_ram_user" "user" {
        name         = "user_test"
        display_name = "TestAccount"
        mobile       = "86-1868888****"
        email        = "example@example.com"
        comments     = "yoyoyo"
        force        = true                   
      }
    2. 运行terraform apply开始创建。
    3. 运行terraform show查看已创建的RAM用户,您也可以登录RAM控制台查看创建的用户。
  2. 指定控制台登录密码。
    1. terraform.tf文件中增加以下内容。
      resource "alicloud_ram_login_profile" "profile" {
        user_name = alicloud_ram_user.user.name
        password  = "!Test@123456"
      }
    2. 运行terraform apply开始创建。
    3. 运行terraform show查看账户密码安全策略,您也可以用创建的新用户登录RAM控制台查看账户密码安全策略。
  3. 创建访问密钥AccessKey。
    1. terraform.tf文件中增加以下内容。
      resource "alicloud_ram_access_key" "ak" {
        user_name   = alicloud_ram_user.user.name
        secret_file = "accesskey.txt"                # 保存AccessKey的文件名
      }
    2. 运行terraform apply开始创建。
    3. 打开accesskey.txt查看创建的访问密钥。
  4. 创建RAM用户组。
    1. terraform.tf文件中增加以下内容。
      resource "alicloud_ram_group" "group" {
        name     = "test_ram_group"
        force    = true
      }
    2. 运行terraform apply开始创建。
    3. 运行terraform show查看创建的RAM用户组,您也可以登录RAM控制台查看创建的RAM用户组。
  5. 将用户加入用户组中。
    1. terraform.tf文件中增加以下内容。
      resource "alicloud_ram_group_membership" "membership" {
        group_name = alicloud_ram_group.group.name
        user_names = [alicloud_ram_user.user.name]
      }
    2. 运行terraform apply开始创建。
    3. 运行terraform show查看RAM用户组下的用户,您也可以登录RAM控制台查看RAM用户组下的用户。
完整代码如下:
provider "alicloud" {
}

resource "alicloud_ram_user" "user" {
  name         = "user_test"
  display_name = "TestAccount"
  mobile       = "86-1868888****"
  email        = "example@example.com"
  comments     = "yoyoyo"
  force        = true
}

resource "alicloud_ram_login_profile" "profile" {
  user_name = alicloud_ram_user.user.name
  password  = "!Test@123456"
}

resource "alicloud_ram_access_key" "ak" {
  user_name   = alicloud_ram_user.user.name
  secret_file = "accesskey.txt"
}

resource "alicloud_ram_group" "group" {
  name     = "test_ram_group"
  comments = "this is a group comments."
  force    = true
}

resource "alicloud_ram_group_membership" "membership" {
  group_name = alicloud_ram_group.group.name
  user_names = [alicloud_ram_user.user.name]
}

方式二:通过Terraform Module一键创建

为了更快捷的创建RAM资源,阿里云提供了Terraform Module:terraform-alicloud-ram。简单使用示例如下:
module "ram_user" {
   // 引用module源地址
   source = "terraform-alicloud-modules/ram/alicloud"
   // RAM用户名
   name = "terraformtest1"
   // 是否创建控制台登录凭证
   create_ram_user_login_profile = true
   // 控制台登录密码
   password = "User@123"
   // 是否创建accesskey
   create_ram_access_key = true
   // 是否赋予管理员权限
   is_admin = true
 }

create_ram_access_key为true时,会在当前路径下生成文件secret.txt存放密钥信息;is_admin为true时,会自动为用户授予某些管理权限。