赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 弹性容器实例 ECI
  4. 操作指南
  5. 集群
  6. 使用KMS进行Secret落盘加密

使用KMS进行Secret落盘加密

  • 集群
  • 发布于 2025-04-15
  • 0 次阅读
文档编辑
文档编辑

ACK Serverless集群Pro版支持使用在阿里云密钥管理服务KMS(Key Management Service)中创建的密钥来加密Kubernetes Secret密钥,以降低敏感信息泄露的风险。本文主要介绍如何使用KMS中管理的密钥对已创建ACK Serverless集群Pro版中的Kubernetes Secret密钥数据进行落盘加密。

前提条件

条件项

说明

KMS密钥

已在密钥管理服务控制台创建KMS密钥,且密钥地域与目标ACK Serverless集群Pro版所在地域保持统一。

ACK Serverless集群Pro版支持默认密钥、软件密钥和硬件密钥,您可以按业务需求选择。关于KMS密钥管理的更多信息和相关操作,请参见密钥管理快速入门;关于KMS服务计费的详细说明,请参见产品计费。

重要

开启落盘加密功能时,请勿使用KMS的控制台或OpenAPI禁用或删除集群Secret加解密选择的密钥,否则会导致集群API Server不可用,继而无法正常获取Secret和ServiceAccount等对象,影响业务应用的正常运行。

授权

根据您使用账号类型的不同,确认已完成如下授权操作。

  • 阿里云账号:已授权容器服务账号使用AliyunCSManagedSecurityRole系统角色的权限。如果您使用的账号未授权,开启Secret落盘加密时,ACK控制台会提示您进行KMS安全系统角色授权。您可以根据控制台指引完成授权,也可以访问云资源访问授权页面完成授权。

  • RAM用户或RAM角色:

    • 已确保对该集群有RBAC的管理员或运维人员权限。具体操作,请参见使用RBAC授予集群内资源操作权限。

    • 已授予AliyunKMSCryptoAdminAccess系统权限。具体操作,请参见为RAM用户或RAM角色授权。

使用限制

当前仅支持为已创建的ACK Serverless集群Pro版开启Secret落盘加密,不支持在创建ACK Serverless集群Pro版过程中开启该功能。

Secret加密介绍

在Kubernetes集群中,通常使用Secret密钥模型存储和管理业务应用涉及的敏感信息,例如应用密码、TLS证书、Docker镜像下载凭据等敏感信息。Kubernetes会将所有的Secret密钥对象数据存储在集群对应的etcd中。关于密钥的更多信息,请参见Secrets。

在ACK Pro集群中,您可以使用在KMS中创建的密钥加密Kubernetes Secret密钥。KMS加密过程基于Kubernetes提供的KMS Encryption Provider机制,使用信封加密的方式对存储在etcd中的Kubernetes Secret密钥进行自动加密和解密。Kubernetes Secret密钥加密和解密的过程如下。

  1. 当一个业务密钥需要通过Kubernetes Secret API存储时,数据会首先被API Server生成的一个随机的数据加密密钥加密,然后该数据密钥会被指定的KMS密钥加密为一个密文密钥存储在etcd中。

  2. 解密Kubernetes Secret密钥时,系统会首先调用KMS的解密OpenAPI进行密文密钥的解密,然后使用解密后的明文密钥对Secret数据解密,并最终返回给您。

更多信息,请参见KMS Encryption Provider机制、使用KMS密钥进行信封加密。

KMS v2

从Kubernetes 1.31版本开始,ACK Pro集群优先使用社区KMS v2接口实现落盘加密,KMS v2在集群中支持管理更多的Secret实例,且拥有更好的加解密性能。了解更多关于KMS v2加解密流程,请参见KMS v2。

如何将当前集群已使用的KMS v1接口升级到KMS v2接口,请参见如何升级使用KMS v2进行Secret落盘加密?

说明

Kubernetes社区在1.27版本已经标记KMS v1为废弃状态,并在1.29版本开始默认禁用v1接口。为了保证兼容性,ACK Pro集群仍然通过设置KMS v1特性门控开启使用v1接口。

为已创建的ACK Serverless集群Pro版开启Secret落盘加密

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标ACK Serverless集群Pro版名称,在集群信息页面,单击基本信息页签,然后在基本信息区域打开Secret 落盘加密开关。

  3. 在弹出的对话框,选择已有的KMS密钥,然后单击确定。

    当集群列表页面的集群状态列由更新中变为运行中时,表明该集群Secret落盘加密的特性已开启。

    当您不需要Secret落盘加密功能时,可以在基本信息区域关闭Secret 落盘加密开关。

使用自动轮转密钥开启Secret落盘加密

您可以使用KMS自动轮转密钥功能进行Secret的落盘加密。当密钥发生自动轮转时,存量的Secret仍旧使用轮转前的密钥版本进行加密,新增的Secret将使用轮转后的新密钥版本进行加密。关于自动轮转密钥具体操作,请参见密钥轮转。

如需确保存量的Secret也使用新的密钥版本进行加密,请在密钥发生自动轮转后,执行以下命令强制使用新的密钥版本重新加密所有的存量Secret。

kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - encryption-key-rotation-time="$(date -u +'%Y-%m-%dT%H:%M:%S%z')"

常见问题

如何升级使用KMS v2进行Secret落盘加密?

如使用KMS v2进行Secret落盘加密,请确保您的ACK Pro集群为1.31或以上版本。

  • 如果您的集群之前未开启Secret落盘加密功能,请参考为ACK Pro集群开启Secret落盘加密为集群开启加密功能。开启后,集群中的Secret实例在落盘和读取流程中会自动使用KMS v2接口进行加解密。

  • 如果您的集群已开启Secret落盘加密功能,您可以在业务低峰时通过以下任一方式轮转落盘密钥的加密方式。

    • 方式一:执行kubectl get secrets --all-namespaces -o json | kubectl replace -f - 命令,该命令会通过KMS v2接口的加密方式轮转所有已落盘Secrets实例的加密方式。

    • 方式二:登录容器服务管理控制台,在集群信息页面的基本信息页签找到Secret 落盘加密并关闭。关闭流程会触发集群所有落盘Secrets实例的轮转。等待一段时间后,参考为ACK Pro集群开启Secret落盘加密为集群重新开启加密功能,开启成功后,集群中的所有Secrets实例会使用KMS v2接口落盘加密。

开启Secret落盘加密后,通过kubectl命令获取到的Secret是加密后的密文吗?

不是。Secret落盘加密功能所加密的是etcd中存储的原始数据,即开启Secret落盘加密后,etcd中存储的Secret数据将是加密后的密文数据。但客户端通过API Server提供的Secret API获取到的Secret数据仍旧是原始的明文数据。

如何禁止RAM用户或RAM角色在已创建的ACK Pro集群中开启或关闭Secret落盘加密功能

您可以通过为RAM用户或RAM角色授予如下拒绝操作的RAM权限策略,禁止该RAM用户或RAM角色在已创建的ACK Pro集群中开启或关闭Secret落盘加密功能。具体操作,请参见使用RAM授予集群及云资源访问权限。

  {
      "Action": [
          "cs:UpdateKMSEncryption"
      ],
      "Effect": "Deny",
      "Resource": [
          "*"
      ]
  }

相关文章

集群概述 2025-04-15 17:15

ACK Serverless集群Pro版在ACK Serverless集群基础版的基础上,针对企业大规模生产环境进一步增强了可靠性、安全性,并且提供可赔付SLA。

创建集群 2025-04-15 17:15

ACK Serverless集群是阿里云推出的无需购买节点即可部署工作负载的Kubernetes容器服务。ACK Serverless集群的秒级伸缩能力、根据应用配置的CPU和内存资源量按需、按量付费能力,降低业务的计算成本,尤其是有明显波峰波谷的业务。

通过OpenAPI创建集群 2025-04-15 17:15

调用CreateCluster创建一个新的ACK Serverless集群实例。

通过CLI创建集群 2025-04-15 17:15

阿里云CLI是基于阿里云开放API建立的管理工具。您可以通过该工具调用阿里云开放API来管理阿里云产品。 前提条件 在使用阿里云CLI之前,您需要配置调用阿里云资源所需的凭证信息、地域、语言等。更多信息,请参见<

自动升级集群 2025-04-15 17:15

启用ACK Serverless集群的自动升级功能后,您可以使集群保持周期性的自动升级,降低版本运维压力。配置自动升级策略后,系统会提前生成集群升级计划,在维护窗口期内触发前置检查并升级集群的控制面,让您更专注于容器应用开发。 使用限制

热迁移集群基础版至Pro版 2025-04-15 17:15

为了能够让存量的ACK Serverless集群基础版用户享受到ACK Serverless集群Pro版的功能和特性,容器服务平台推出了标准版到Pro版的集群热迁移功能,帮助您动态地迁移ACK Serverless集群基础版至

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号