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