使用Terraform首次開通ACK并授權服務角色
本文為您介紹在首次使用ACK時,如何通過Terraform開通容器服務ACK并進行容器服務角色的授權。
本教程所含示例代碼支持一鍵運行,您可以直接運行代碼。一鍵運行
前提條件
由于阿里云賬號(主賬號)具有資源的所有權限,一旦發生泄露將面臨重大風險。建議您使用RAM用戶,并為該RAM用戶創建AccessKey,具體操作方式請參見創建RAM用戶和創建AccessKey。
為運行Terraform命令的RAM用戶綁定以下最小權限策略,以獲取管理本示例所涉及資源的權限。更多信息,請參見為RAM用戶授權。
該權限策略允許RAM用戶創建、查看和刪除RAM角色,并支持對RAM角色權限策略的管理。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:GetRole", "ram:ListRoles", "ram:AttachPolicyToRole", "ram:ListPoliciesForRole", "ram:CreateRole", "ram:DetachPolicyFromRole", "ram:DeleteRole" ], "Resource": "*" } ] }
準備Terraform運行環境,您可以選擇以下任一方式來使用Terraform。
在Terraform Explorer中使用Terraform:阿里云提供了Terraform的在線運行環境,您無需安裝Terraform,登錄后即可在線使用和體驗Terraform。適用于零成本、快速、便捷地體驗和調試Terraform的場景。
Cloud Shell:阿里云Cloud Shell中預裝了Terraform的組件,并已配置好身份憑證,您可直接在Cloud Shell中運行Terraform的命令。適用于低成本、快速、便捷地訪問和使用Terraform的場景。
在本地安裝和配置Terraform:適用于網絡連接較差或需要自定義開發環境的場景。
使用的資源
alicloud_ack_service:自動開通容器服務ACK。
alicloud_ram_role:創建一個RAM角色。
alicloud_ram_role_policy_attachment:為RAM角色綁定其他權限。
alicloud_ram_roles:根據指定的過濾條件,返回阿里云賬號中RAM角色的列表。
步驟一:開通容器服務ACK
在創建ACK集群前您需要開通容器服務。
創建一個工作目錄,并在該工作目錄中創建名為main.tf的配置文件,然后將以下代碼復制到main.tf中。
// 開通容器服務ACK。 data "alicloud_ack_service" "open" { enable = "On" type = "propayasgo" }
執行如下命令,初始化Terraform運行環境。
terraform init
返回信息如下,Terraform初始化成功。
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
執行如下命令,開通容器服務ACK。
terraform apply
在執行過程中,根據提示輸入
yes
并按下Enter鍵,等待命令執行完成,若出現以下信息,則表示容器服務ACK開通成功。You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. 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: 0 added, 0 changed, 0 destroyed.
步驟二:授權角色
首次登錄容器服務 Kubernetes 版時,需要為服務賬號授予系統服務角色,具體步驟如下。
在
main.tf
配置文件中增加如下授權模板。// 所需RAM角色。 variable "roles" { type = list(object({ name = string policy_document = string description = string policy_name = string })) default = [ { name = "AliyunCSManagedLogRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的日志組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedLogRolePolicy" }, { name = "AliyunCSManagedCmsRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的CMS組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedCmsRolePolicy" }, { name = "AliyunCSManagedCsiRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的存儲組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedCsiRolePolicy" }, { name = "AliyunCSManagedCsiPluginRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的存儲組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedCsiPluginRolePolicy" }, { name = "AliyunCSManagedCsiProvisionerRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的存儲組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedCsiProvisionerRolePolicy" }, { name = "AliyunCSManagedVKRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "ACK Serverless集群的VK組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedVKRolePolicy" }, { name = "AliyunCSServerlessKubernetesRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群默認使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSServerlessKubernetesRolePolicy" }, { name = "AliyunCSKubernetesAuditRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群審計功能使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSKubernetesAuditRolePolicy" }, { name = "AliyunCSManagedNetworkRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群網絡組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedNetworkRolePolicy" }, { name = "AliyunCSDefaultRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群操作時默認使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSDefaultRolePolicy" }, { name = "AliyunCSManagedKubernetesRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群默認使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedKubernetesRolePolicy" }, { name = "AliyunCSManagedArmsRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群Arms插件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedArmsRolePolicy" }, { name = "AliyunCISDefaultRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "容器服務(CS)智能運維使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCISDefaultRolePolicy" }, { name = "AliyunOOSLifecycleHook4CSRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群擴縮容節點池依賴OOS服務,OOS使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunOOSLifecycleHook4CSRolePolicy" }, { name = "AliyunCSManagedAutoScalerRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的彈性伸縮組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedAutoScalerRolePolicy" } ] } // 查詢RAM角色列表 data "alicloud_ram_roles" "roles" { policy_type = "Custom" name_regex = "^Aliyun.*Role$" } locals { # 提取所有所需RAM角色name all_role_names = [for role in var.roles : role.name] # 提取已存在的RAM角色name created_role_names = [for role in data.alicloud_ram_roles.roles.roles : role.name] # 計算補集:即找出還未創建的所需RAM角色 complement_names = setsubtract(local.all_role_names, local.created_role_names) # 待創建的RAM角色 complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)] } // 創建角色。 resource "alicloud_ram_role" "role" { for_each = { for r in local.complement_roles : r.name => r } name = each.value.name document = each.value.policy_document description = each.value.description force = true } // 角色關聯系統權限。 resource "alicloud_ram_role_policy_attachment" "attach" { for_each = { for r in local.complement_roles : r.name => r } policy_name = each.value.policy_name policy_type = "System" role_name = each.value.name depends_on = [alicloud_ram_role.role] }
說明在示例中,variable表示作為參數提供給Terraform使用的輸入變量,關于參數如何傳值,請參見Variable 介紹。本示例中參數值請參見附錄,其中,服務角色是必選參數,可選角色請根據實際情況選擇。
創建執行計劃,并預覽變更。
terraform plan
執行如下命令應用執行計劃,為您的賬號進行角色授權。
terraform apply
在執行過程中,根據提示輸入
yes
并按下Enter鍵,等待命令執行完成,若出現以下信息,則表示授權完成。Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
驗證結果。
執行terraform show命令
您可以使用以下命令查詢Terraform已創建的資源詳細信息:
terraform show
登錄RAM控制臺
登錄RAM控制臺,查看已創建的角色。
清理資源
當您不再需要上述通過Terraform創建或管理的資源時,請運行以下命令以釋放資源。關于terraform destroy
的更多信息,請參見Terraform常用命令。
terraform destroy
完整示例
本教程所含示例代碼支持一鍵運行,您可以直接運行代碼。一鍵運行
示例代碼
provider "alicloud" {
region = var.region_id
}
variable "region_id" {
type = string
default = "cn-hangzhou"
}
// 開通容器服務ACK。
data "alicloud_ack_service" "open" {
enable = "On"
type = "propayasgo"
}
// 所需RAM角色。
variable "roles" {
type = list(object({
name = string
policy_document = string
description = string
policy_name = string
}))
default = [
{
name = "AliyunCSManagedLogRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群的日志組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedLogRolePolicy"
},
{
name = "AliyunCSManagedCmsRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群的CMS組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedCmsRolePolicy"
},
{
name = "AliyunCSManagedCsiRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群的存儲組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedCsiRolePolicy"
},
{
name = "AliyunCSManagedCsiPluginRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群的存儲組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedCsiPluginRolePolicy"
},
{
name = "AliyunCSManagedCsiProvisionerRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群的存儲組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedCsiProvisionerRolePolicy"
},
{
name = "AliyunCSManagedVKRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "ACK Serverless集群的VK組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedVKRolePolicy"
},
{
name = "AliyunCSServerlessKubernetesRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群默認使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSServerlessKubernetesRolePolicy"
},
{
name = "AliyunCSKubernetesAuditRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群審計功能使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSKubernetesAuditRolePolicy"
},
{
name = "AliyunCSManagedNetworkRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群網絡組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedNetworkRolePolicy"
},
{
name = "AliyunCSDefaultRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群操作時默認使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSDefaultRolePolicy"
},
{
name = "AliyunCSManagedKubernetesRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群默認使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedKubernetesRolePolicy"
},
{
name = "AliyunCSManagedArmsRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群Arms插件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedArmsRolePolicy"
},
{
name = "AliyunCISDefaultRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "容器服務(CS)智能運維使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCISDefaultRolePolicy"
},
{
name = "AliyunOOSLifecycleHook4CSRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群擴縮容節點池依賴OOS服務,OOS使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunOOSLifecycleHook4CSRolePolicy"
},
{
name = "AliyunCSManagedAutoScalerRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description = "集群的彈性伸縮組件使用此角色來訪問您在其他云產品中的資源。"
policy_name = "AliyunCSManagedAutoScalerRolePolicy"
}
]
}
// 查詢RAM角色列表
data "alicloud_ram_roles" "roles" {
policy_type = "Custom"
name_regex = "^Aliyun.*Role$"
}
locals {
# 提取所有所需RAM角色name
all_role_names = [for role in var.roles : role.name]
# 提取已存在的RAM角色name
created_role_names = [for role in data.alicloud_ram_roles.roles.roles : role.name]
# 計算補集:即找出還未創建的所需RAM角色
complement_names = setsubtract(local.all_role_names, local.created_role_names)
# 待創建的RAM角色
complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
}
// 創建角色。
resource "alicloud_ram_role" "role" {
for_each = { for r in local.complement_roles : r.name => r }
name = each.value.name
document = each.value.policy_document
description = each.value.description
force = true
}
// 角色關聯系統權限。
resource "alicloud_ram_role_policy_attachment" "attach" {
for_each = { for r in local.complement_roles : r.name => r }
policy_name = each.value.policy_name
policy_type = "System"
role_name = each.value.name
depends_on = [alicloud_ram_role.role]
}
附錄
服務角色
AliyunCSManagedLogRole
說明:
ACK托管集群和ACK Serverless集群的日志組件使用該角色訪問您在SLS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedLogRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的日志組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedLogRolePolicy" }
AliyunCSManagedCmsRole
說明:
ACK托管集群和ACK Serverless集群的監控組件使用該角色訪問您在CMS、SLS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedCmsRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的CMS組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedCmsRolePolicy" }
AliyunCSManagedCsiRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的存儲組件使用該角色訪問您在ECS、NAS、OSS等服務中的資源。
授權代碼:
{ name = "AliyunCSManagedCsiRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的存儲插件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedCsiRolePolicy" }
AliyunCSManagedCsiPluginRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的存儲組件(新版csi-plugin組件)使用該角色訪問您在ECS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedCsiPluginRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "ACK托管集群、ACK Edge集群和ACK Serverless集群的存儲組件(新版csi-plugin組件)使用該角色訪問您在ECS服務中的資源。" policy_name = "AliyunCSManagedCsiPluginRolePolicy" }
AliyunCSManagedCsiProvisionerRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的存儲組件(新版csi-provisioner組件)使用該角色訪問您在ECS、NAS、OSS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedCsiProvisionerRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "ACK托管集群、ACK Edge集群和ACK Serverless集群的存儲組件(新版csi-provisioner組件)使用該角色訪問您在ECS、NAS、OSS服務中的資源。" policy_name = "AliyunCSManagedCsiProvisionerRolePolicy" }
AliyunCSServerlessKubernetesRole
說明:
ACK Edge集群和ACK Serverless集群使用該角色來訪問您在ECS、VPC、SLB、Private Zone等服務中的資源。
授權代碼:
{ name = "AliyunCSServerlessKubernetesRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群默認使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSServerlessKubernetesRolePolicy" }
AliyunCSKubernetesAuditRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的審計功能組件使用該角色來訪問您在SLS服務中的資源。
授權代碼:
{ name = "AliyunCSKubernetesAuditRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群審計功能使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSKubernetesAuditRolePolicy" }
AliyunCSManagedNetworkRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的網絡組件使用該角色訪問您在ECS、VPC服務中的資源。
授權代碼:
{ name = "AliyunCSManagedNetworkRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群網絡組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedNetworkRolePolicy" }
AliyunCSDefaultRole
說明:
容器服務 Kubernetes 版在管控操作中使用該角色訪問您在ECS、VPC、SLB、ROS、ESS等服務中的資源。
授權代碼:
{ name = "AliyunCSDefaultRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群操作時默認使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSDefaultRolePolicy" }
AliyunCSManagedKubernetesRole
說明:
ACK托管集群和ACK Edge集群使用該角色訪問您在ECS、VPC、SLB、ACR等服務中的資源。
授權代碼:
{ name = "AliyunCSManagedKubernetesRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群默認使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedKubernetesRolePolicy" }
AliyunCSManagedArmsRole
說明:
、ACK Edge集群和ACK Serverless集群的應用實時監控組件使用該角色訪問您在ARMS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedArmsRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群Arms插件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedArmsRolePolicy" }
AliyunCISDefaultRole
說明:
ACK容器智能運維平臺將使用該角色訪問您在ECS、VPC、SLB等服務中的資源,為您提供診斷和巡檢等服務。
授權代碼:
{ name = "AliyunCISDefaultRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "容器服務(CS)智能運維使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCISDefaultRolePolicy" }
可選角色
AliyunCSManagedAcrRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的免密組件鏡像拉取使用該角色訪問您在ACR容器鏡像服務中的資源。
授權代碼:
{ name = "AliyunCSManagedAcrRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的鏡像拉取免密插件使用該角色訪問您在ACR容器鏡像服務中的資源。" policy_name = "AliyunCSManagedAcrRolePolicy" }
AliyunCSManagedNlcRole
說明:
ACK托管集群和ACK Edge集群的節點生命周期控制器使用該角色訪問您的ECS和ACK節點池資源。
授權代碼:
{ name = "AliyunCSManagedNlcRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群托管節點池控制組件使用該角色訪問您的ECS和ACK節點池資源。" policy_name = "AliyunCSManagedNlcRolePolicy" }
AliyunCSManagedAutoScalerRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的彈性伸縮組件使用該角色訪問您在ESS和ECS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedAutoScalerRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的彈性伸縮組件使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunCSManagedAutoScalerRolePolicy" }
AliyunCSManagedSecurityRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的落盤加密和憑據管理組件使用該角色訪問您在KMS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedSecurityRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的落盤加密插件使用該角色訪問您在KMS服務中的資源。" policy_name = "AliyunCSManagedSecurityRolePolicy" }
AliyunCSManagedCostRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的成本分析組件使用該角色訪問您在賬單管理API、ECS和ECI服務中的資源。
授權代碼:
{ name = "AliyunCSManagedCostRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的成本分析組件使用該角色訪問您在賬單管理API、ECS和ECI服務中的資源。" policy_name = "AliyunCSManagedCostRolePolicy" }
AliyunCSManagedNimitzRole
說明:
ACK Edge集群的管控組件使用該角色訪問您在智能接入網關、VPC和云企業網CEN服務中的資源。
授權代碼:
{ name = "AliyunCSManagedNimitzRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "ACK靈駿集群的網絡組件使用該角色訪問您在智能計算靈駿服務中的資源。" policy_name = "AliyunCSManagedNimitzRolePolicy" }
AliyunCSManagedBackupRestoreRole
說明:
ACK托管集群、ACK Edge集群和ACK Serverless集群的備份中心服務組件使用該角色訪問您在云備份(Cloud Backup)服務和OSS服務中的資源。
授權代碼:
{ name = "AliyunCSManagedBackupRestoreRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群的備份中心組件使用該角色訪問您在云備份(Cloud Backup)服務和OSS服務中的資源。" policy_name = "AliyunCSManagedBackupRestoreRolePolicy" }
AliyunCSManagedEdgeRole
說明:
ACK Edge集群的管控組件使用該角色訪問您在智能接入網關、VPC和云企業網CEN服務中的資源。
授權代碼:
{ name = "AliyunCSManagedEdgeRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "ACK Edge集群的管控組件使用該角色訪問您在智能接入網關、VPC和云企業網CEN服務中的資源。" policy_name = "AliyunCSManagedEdgeRolePolicy" }
AliyunOOSLifecycleHook4CSRole
說明:
系統運維管理OOS使用該角色訪問您在容器服務 Kubernetes 版、ECS、PolarDB等服務中的資源。
授權代碼:
{ name = "AliyunOOSLifecycleHook4CSRole" policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}" description = "集群擴縮容節點池依賴OOS服務,OOS使用此角色來訪問您在其他云產品中的資源。" policy_name = "AliyunOOSLifecycleHook4CSRolePolicy" }
相關文檔
Terraform介紹,請參見Terraform產品介紹。
當您遇到由于網絡延遲等原因造成的 terraform init 超時,導致無法正常下載 Provider 等情況時,請參見Terraform Init 加速方案配置。
關于如何配置Terraform的身份認證信息,請參見靜配置身份認證。
ROS提供了Terraform托管服務,因此您可以直接在ROS控制臺部署Terraform模板。詳細操作,請參見創建Terraform類型資源棧。