example/01-startup/terraform/app-on-ecs/modules/identity/main.tf (106 lines of code) (raw):

provider "alicloud" { profile = "default" } #create custom authority policy for system admin resource "alicloud_ram_policy" "system_admin_policy" { name = "SystemAdministratorAccess" document = <<EOF { "Statement": [ { "Effect": "Allow", "NotAction": [ "ram:*", "ims:*", "resourcemanager:*", "bss:*", "bssapi:*", "efc:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:GetRole", "ram:ListRoles", "ram:CreateServiceLinkedRole", "ram:DeleteServiceLinkedRole", "bss:DescribeOrderList", "bss:DescribeOrderDetail", "bss:PayOrder", "bss:CancelOrder" ], "Resource": "*" } ], "Version": "1" } EOF description = local.language_obj.system_admin_authority force = true } #set RAM user password strength resource "alicloud_ram_account_password_policy" "password_policy" { minimum_password_length = 8 require_lowercase_characters = true require_uppercase_characters = true require_numbers = true require_symbols = true hard_expiry = false max_password_age = 90 password_reuse_prevention = 8 max_login_attempts = 5 } # create cloud admin group resource "alicloud_ram_group" "cloud_admin_group" { name = "CloudAdminGroup" comments = local.language_obj.admin_group_comments force = true } # authorize policy to cloud admin resource "alicloud_ram_group_policy_attachment" "cloud_admin_group_policy_attachment" { policy_name = "AdministratorAccess" policy_type = "System" group_name = alicloud_ram_group.cloud_admin_group.name } # create system admin group resource "alicloud_ram_group" "system_admin_group" { name = "SystemAdminGroup" comments = local.language_obj.system_admin_comments force = true } # authorize policy to system admin group resource "alicloud_ram_group_policy_attachment" "system_admin_group_policy_attachment" { policy_name = alicloud_ram_policy.system_admin_policy.name policy_type = alicloud_ram_policy.system_admin_policy.type group_name = alicloud_ram_group.system_admin_group.name } # create billing admin group resource "alicloud_ram_group" "billing_admin_group" { name = "BillingAdminGroup" comments = local.language_obj.billing_admin_comments force = true } # authorize AliyunBSSFullAccess policy to billing admin group resource "alicloud_ram_group_policy_attachment" "bss_group_policy_attachment_AliyunBSSFullAccess" { policy_name = "AliyunBSSFullAccess" policy_type = "System" group_name = alicloud_ram_group.billing_admin_group.name } # authorize AliyunFinanceConsoleFullAccess policy to billing admin group resource "alicloud_ram_group_policy_attachment" "bss_group_policy_attachment_AliyunFinanceConsoleFullAccess" { policy_name = "AliyunFinanceConsoleFullAccess" policy_type = "System" group_name = alicloud_ram_group.billing_admin_group.name } # create common user group resource "alicloud_ram_group" "common_user_group" { name = "CommonUserGroup" comments = local.language_obj.common_user_comments force = true } locals{ language = var.language } locals { language_obj = { "admin_group_comments" = local.language =="EN"?"cloud admin group":"云管理员组" "system_admin_comments" = local.language =="EN"?"system admin group":"系统管理员组" "common_user_comments" = local.language =="EN"?"common user group":"普通用户组" "billing_admin_comments" = local.language =="EN"?"billing admin group":"财务账单管理员组" "system_admin_authority" = local.language =="EN"?"system admin authority":"系统管理员权限" } }