ACK托管集群默认会创建一个所有节点共享的默认Worker RAM角色。当您通过Worker RAM角色为特定的应用授权时,权限将会共享给集群内所有的节点,可能会存在非预期的权限扩散的风险。您可以在创建节点池时为其指定一个自定义的Worker RAM角色,通过为不同的节点池分配特定的角色,降低在集群所有节点中共用一个Worker RAM角色可能存在的风险。
前提条件
步骤一:创建RAM角色
您可以通过控制台、OpenAPI或Terraform等方式创建一个Worker RAM角色。
RAM角色的名称不能以KubernetesMasterRole-或KubernetesWorkerRole-开头。
RAM角色的受信服务必须是云服务器。
通过控制台创建RAM角色
通过OpenAPI或Terraform创建RAM角色
如果您需要通过OpenAPI或Terraform创建RAM角色,在创建角色时,请确保指定的角色信任策略已配置如下策略。如需修改RAM角色信任策略,请参见修改RAM角色的信任策略。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"ecs.aliyuncs.com"
]
}
}
],
"Version": "1"
}
通过OpenAPI创建RAM角色。具体操作,请参见CreateRole - 创建角色。
通过Terraform创建RAM角色。具体操作,请参见使用Terraform创建角色并绑定自定义权限策略。
步骤二:为新建节点池指定Woker RAM角色
您可以在创建集群或创建节点池时使用自定义的Worker RAM角色。已有节点池的Worker RAM角色不支持修改。
在容器服务管理控制台创建集群或创建节点池时,您可以在节点池的高级选项配置中,将Worker RAM 角色选择为步骤一:创建RAM角色所创建的角色,为新建节点池指定一个自定义Woker RAM角色。具体操作,请参见创建集群时节点池高级选项、创建节点池时高级配置。
相关操作
创建RAM角色后,该RAM角色默认没有任何权限。
如需通过OpenAPI创建自定义策略并授权。具体操作,请参见CreatePolicy - 创建一个权限策略、AttachPolicyToRole - 为指定角色添加权限。
如需通过Terraform创建自定义策略并授权。具体操作,请参见使用Terraform创建角色并绑定自定义权限策略。
当Worker RAM角色不再需要某些权限时,请及时将这些权限移除。具体操作,请参见为RAM角色移除权限。