You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
FSX 访问方式
加密 TOS 存储卷
复制全文
下载 pdf
加密 TOS 存储卷
TOS 存储卷支持数据加密,适用于需要加密存储数据或者合规性要求的应用场景。本文介绍如何配置 TOS 存储卷数据加密。
背景信息
当您通过 FSX 客户端使用 TOS 存储卷时,支持服务端加密 SSE(Server-Side Encryption)功能,在写入或读取数据时进行加密和解密。
  • 写入数据时,系统会将写入 TOS 存储卷的数据自动进行加密,有效保证存储在服务端数据的安全。
  • 读取数据时,系统会将服务端加密的数据自动解密,保证体验上与未加密时完全一致。
说明
TOS 存储卷提供了多种加密方式,容器服务支持 SSE-TOS 和 SSE-KMS 加密方式。详情请参见 服务端加密概述
前提条件
  • 请首先阅读 通过 FSX 客户端使用 TOS 静态存储卷,了解在集群中基于 FSX 客户端使用 TOS 静态卷的配置方法和注意事项。本文仅重点介绍配置 TOS 存储卷加密的注意事项和配置流程,其他通用内容不再重复介绍。
  • 已创建 TOS 存储桶,开启 服务端加密,并选择加密方式( SSE-TOS 或 SSE-KMS)。详情请参见 创建存储桶
  • 如需使用 KMS 实现加密,需要提前完成以下操作:
使用限制
  • 挂载参数仅对新挂载的存储卷生效,对已挂载的存储卷不生效因此,已创建的 PV 不支持修改加密方式。
  • 当前仅支持 AES-256 加密算法,暂不支持 SM4 加密算法。
  • 当选择 KMS 加密(SSE-KMS)时,数据读取或写入需要额外的 KMS 操作权限。权限说明和示例代码如下:
  • 写入并加密数据时,需要具备kms:GenerateDataKey权限。
  • 读取加密数据时,需要具备kms:Decrypt权限。
  • {
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "tos:Get*",
    "tos:ListBucket",
    "tos:Put*",
    "tos:Head*",
    "tos:DeleteObject",
    "tos:AbortMultipartUpload"
    "kms:GenerateDataKey"
    "kms:Decrypt"
    ],
    "Resource": [
    "*"
    ]
    }
    ]
    }
说明
使用 IAM 用户挂载存储桶并执行相应操作时,权限说明请参见 挂载存储桶所需要的权限
操作步骤
通过控制台配置
  1. 在左侧导航栏中,选择 集群。单击目标集群名称,进入集群管理页面。
  1. 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷
  1. 单击 创建存储卷,创建 FSX 访问类型的 TOS 存储卷。
  • 配置项
    说明
    服务端加密
    勾选 启用,开启 TOS 存储卷的服务端加密功能。
    加密方式
    配置存储卷加密方式,完成挂载后,写入的数据默认会使用该服务端加密方式。取值:
    • SSE-TOS:使用 SSE-TOS 加密方式,并采用 AES256 加密算法。
    • SSE-KMS:使用 SSE-KMS 加密方式,并采用 AES256 加密算法。
    密钥 TRN
    加密方式 选择 SSE-KMS 时,选择 KMS 主密钥的 TRN,用于指定 SSE-KMS 加密目标对象使用的主密钥。
    注意
    请确保 KMS 中的密钥存在并处于启用状态。当密钥被禁用或删除时,由于权限缺失,会导致向存储卷写入或读取数据失败(Input/output error)。
说明
更多配置步骤和参数说明,请参见 通过 FSX 客户端使用 TOS 静态存储卷
  1. 配置完成后,您还需要创建 PVC 并在工作负载中挂载。更多配置步骤和参数说明,请参见 通过 FSX 客户端使用 TOS 静态存储卷
通过 kubectl 命令行配置
  1. 创建 PV 的 Yaml 文件vke-tos-fsx-static-pv.yaml
  • SSE-TOS 加密方式
    SSE-KMS 加密方式
    支持使用mountOptions挂载参数配置加密方式,使用 SSE-TOS 加密方式时,示例代码如下:
    apiVersion: v1
    kind: PersistentVolume
    metadata:
    name: vke-tos-fsx-static-pv
    spec:
    accessModes:
    - ReadWriteMany
    capacity:
    storage: 20Gi
    csi:
    driver: fsx.csi.volcengine.com
    volumeAttributes:
    type: TOS
    server: doc-tos-demo.tos-cn-shanghai.ivolces.com
    region: cn-shanghai
    bucket: doc-tos-demo
    path: /
    subpath: /
    secretName: tos-fsx-key
    secretNamespace: default
    volumeHandle: vke-tos-fsx-static-pv
    persistentVolumeReclaimPolicy: Delete
    mountOptions: # TOS 存储卷挂载参数
    - tos_sse=AES256 # 使用 SSE-TOS 加密方式,并采用 AES256 加密算法
  • 挂载参数说明,如下表所示。
  • 参数
    说明
    tos_sse
    设置目标对象的加密方式,完成挂载后,写入的数据默认会使用该服务端加密方式。取值:
    • AES256:使用 SSE-TOS 加密方式,并采用 AES256 加密算法。
    • kms:使用 SSE-KMS 加密方式,并采用 AES256 加密算法。
    关于 SSE-TOS、 SSE-KMS 加密方式详细说明,请参见 服务端加密概述
    注意
    使用 SSE-TOS 或 SSE-KMS 服务端加密时,暂不支持 SM4 加密算法。
    tos_sse_kms_key_id
    KMS 主密钥的 TRN,用于指定 SSE-KMS 加密目标对象使用的主密钥。格式为trn:kms:<region>:<accountID>:keyrings/<keyring>/keys/<key>,其中region为密钥所属 Region ID,accountID为密钥所属账号的 ID,keyring为密钥环别名,key为主密钥别名。
    注意
    • 您可以登录 KMS 控制台,在 用户主密钥 页面单击目标密钥环,在 密钥环详情 页面,目标密钥的 密钥 TRN 及别名 列获取密钥 TRN。
    • 请确保 KMS 中的密钥存在并处于启用状态。当密钥被禁用或删除时,由于权限缺失,会导致向存储卷写入或读取数据失败(Input/output error)。
  1. 执行以下命令,创建 PV。
  • kubectl create -f vke-tos-fsx-static-pv.yaml
  1. 配置完成后,您还需要创建 PVC 并在工作负载中挂载。更多配置步骤和参数说明,请参见 通过 FSX 客户端使用 TOS 静态存储卷
结果验证
创建工作负载并挂载存储卷后,您可以通过以下方式验证对象存储的挂载、持久化存储和加解密。
  1. 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。
  • kubectl exec vke-static-tos-fsx-deploy-5f55*** -- df | grep tmp
  • 预期返回结果如下。
  • /dev/vdc 20466256 24 20449848 1% /tmp
  1. 查看 Pod 中的挂载路径,即查看存储卷中的数据。
  • kubectl exec vke-static-tos-fsx-deploy-5f55*** -- ls /tmp
  • 预期返回结果如下。
  • lost+found
  1. 登录 对象存储控制台。向指定路径中上传文件。详情请参见 上传文件
  1. 查看上传文件详情,确认其加密方式符合预期。
  1. 再次查看 Pod 下的存储卷挂载路径。
  • kubectl exec vke-static-tos-fsx-deploy-5f55*** -- ls /tmp
  • 预期返回如下,可以查看上传的文件,实现了数据卷的挂载、持久化存储和加解密。
  • lost+found
    test.sh
最近更新时间:2026.03.04 20:01:41
这个页面对您有帮助吗?
有用
有用
无用
无用