云服务器内容精选

  • 使用流程 图1 轮转密码流程 流程说明如下: 定时触发器到期后,会发布定时触发事件。 函数工作流 接收到事件后,会生成新的随机密码,替换凭据模板内容中的占位符,随后将替换后的内容作为新版本存入凭据中。 应用程序定期通过调用API/SDK获取最新凭据版本。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用新密码更新目标对象(数据库、服务器等),使新密码生效,后续使用新密码对目标对象进行访问。
  • 解决方案 用户需要在KMS中创建一个用户主密钥。 用户计算文件的摘要,调用KMS的“sign”接口对摘要进行签名。用户得到摘要的签名结果。将摘要签名结果和密钥ID与文件一同传输或者存储。签名流程如图 签名流程所示。 图1 签名流程 用户需要使用文件时,先进行完整性校验,确保文件未被篡改。 用户重新计算文件的摘要,连同签名值调用KMS的“verify”接口对摘要进行验签。用户得到验签结果。如果能正常验签,则表明文件未被篡改。验签流程如图 验签流程所示。 图2 验签流程
  • 组件说明 表1 dew-provider组件 容器组件 说明 资源类型 dew-provider dew-provider负责与凭据管理服务交互,从凭据管理服务中获取指定的凭据,并挂载到业务Pod内。 DaemonSet secrets-store-csi-driver secrets-store-csi-driver负责维护两个CRD资源,即SecretProviderClass(以下简称为SPC)和SecretProviderClassPodStatus(以下简称为spcPodStatus),其中SPC用于描述用户感兴趣的凭据信息(比如指定凭据的版本、凭据的名称等),由用户创建,并在业务Pod中进行引用;spcPodStatus用于跟踪Pod与凭据的绑定关系,由csi-driver自动创建,用户无需关心。一个Pod对应一个spcPodStatus,当Pod正常启动后,会生成一个与之对应的spcPodStatus;当Pod生命周期结束时,相应的spcPodStatus也会被删除。 DaemonSet
  • 使用控制台安装插件 在CCE服务控制台,单击集群名称进入对应集群,单击左侧导航栏的“插件中心”,在右侧找到dew-provider插件,单击“安装”。 在安装插件页面,在参数配置栏进行参数配置。参数配置说明如表 参数配置表所示。 表2 参数配置表 参数 参数说明 rotation_poll_interval 轮转时间间隔。单位:分钟,即m(注意不是min)。 轮转时间间隔表示向云凭据管理服务发起请求并获取最新的凭据的周期,合理的时间间隔范围为[1m, 1440m],默认值为2m。 单击“安装”。待插件安装完成后,选择对应的集群,然后单击左侧导航栏的“插件中心”,可在“已安装插件”页签中查看相应的插件。 插件成功使用需使用已在 数据加密 服务中创建好的凭据,否则挂载失败会导致Pod无法运行。具体创建凭据操作请参见创建通用凭据。 插件安装完成后即可进行使用,具体操作步骤参见CCE密钥管理插件使用说明。
  • 应用原理 通过 统一身份认证 服务(Identity and Access Management, IAM )对弹性云服务器(Elastic Cloud Server,E CS )的委托获取临时访问密钥来保护AK&SK。 访问凭证按照时效性可分为永久凭证和临时凭证,相较于永久性访问凭证,例如用户名和密码,临时访问密钥因为有效期短且刷新频率高,所以安全性更高。因此,您可以为ECS实例授予IAM委托,使ECS实例内的应用程序可以使用临时AK&SK+SecurityToken访问C SMS ,不需要保存临时访问密钥,每次需要时动态获取,也可以缓存在内存里定时更新。
  • 简介 双用户轮换策略是指在一个凭据中更新两个用户所保存的信息。 例如:您的应用程序需要保持高可用性,如果您使用单用户轮换,那么您在修改用户密码和更新凭据内容的过程中会出现访问应用失败的情况,这样您就需要使用双用户凭据轮换策略。 您需要有一个账号例如Admin有权限创建并修改user1、user2用户的账号密码,首先您创建一个凭据创建并保存user1的账号与密码,记为user1/password1。通过新增凭据版本v2创建user2,并且保存user2的账号密码,记为user2/password2。修改user1的密码后,您会需要新增凭据版本v3,记为user1/password3。比如在您轮换创建新的凭据版本v3时,应用程序会继续使用现有的凭据版本v2获取信息。一旦凭据版本v3准备就绪,轮换会切换暂存标签,以便应用程序使用凭据版本v3获取信息。
  • 简介 单用户凭据轮换是指一个凭据中更新一个用户所保存的信息。 这是最基础的凭据轮换策略,适用于大多数日常使用场景。 例如: 访问数据库。凭据轮换时不会删除数据库连接,轮换后的新连接使用新凭据。 访问允许用户创建一个用户账户的服务,例如以电子邮件地址作为用户名。服务通常允许用户根据需要经常更改密码,但用户无法创建其他用户或更改用户名。 根据需要创建的用户,称为临时用户。 以交互方式输入密码的用户,而不是让应用程序以编程方式从凭据管理服务中检索密码。这种类型的用户不需要更改用户名和密码。
  • 使用凭据登录数据库 下文为您介绍如何创建凭据,并且通过API调用凭据来登录到您的数据库。 您首先需要确保您的账号拥有KMS Administrator或者KMS CMKFullAccess权限,详情见DEW权限管理。 图1 凭据登录流程 流程说明如下: 您首先需要在凭据管理服务中使用控制台或者API创建一个凭据,用来存储数据库的相关信息(例如:数据库地址、端口、密码)。 当您使用应用程序访问数据库时,凭据管理服务会去查询步骤1所创建的凭据存储的内容。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用这些安全的信息访问数据库。
  • 加密和解密原理 大量数据加密 图1 加密本地文件 说明如下: 用户需要在KMS中创建一个用户主密钥。 用户调用KMS的“create-datakey”接口创建数据加密密钥。用户得到一个明文的数据加密密钥和一个密文的数据加密密钥。其中密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。 用户使用明文的数据加密密钥来加密明文文件,生成密文文件。 用户将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。 大量数据解密 图2 解密本地文件 说明如下: 用户从持久化存储设备或服务中读取密文的数据加密密钥和密文文件。 用户调用KMS的“decrypt-datakey”接口,使用对应的用户主密钥(即生成密文的数据加密密钥时所使用的用户主密钥)来解密密文的数据加密密钥,取得明文的数据加密密钥。 如果对应的用户主密钥被误删除,会导致解密失败。因此,需要妥善管理好用户主密钥。 用户使用明文的数据加密密钥来解密密文文件。
  • 使用KMS加密DWS数据库流程 当选择KMS对DWS进行密钥管理时,加密密钥层次结构有三层。按层次结构顺序排列,这些密钥为主密钥(CMK)、集群加密密钥 (CEK)、数据库加密密钥 (DEK)。 主密钥用于给CEK加密,保存在KMS中。 CEK用于加密DEK,CEK明文保存在DWS集群内存中,密文保存在DWS服务中。 DEK用于加密数据库中的数据,DEK明文保存在DWS集群内存中,密文保存在DWS服务中。 密钥使用流程如下: 用户选择主密钥。 DWS随机生成CEK和DEK明文。 KMS使用用户所选的主密钥加密CEK明文并将加密后的CEK密文导入到DWS服务中。 DWS使用CEK明文加密DEK明文并将加密后的DEK密文保存到DWS服务中。 DWS将DEK明文传递到集群中并加载到集群内存中。 当该集群重启时,集群会自动通过API向DWS请求DEK明文,DWS将CEK、DEK密文加载到集群内存中,再调用KMS使用主密钥CMK来解密CEK,并加载到集群内存中,最后用CEK明文解密DEK,并加载到集群内存中,返回给集群。
  • 使用KMS加密DWS数据库(控制台) 在DWS管理控制台,单击“购买 数据仓库 集群”。 打开“加密数据库”开关。 在“高级配置”中选择“自定义”,出现“加密数据库”开关。 图1 加密数据库 表示打开“加密数据库”开关,启用数据库加密。每个区域的每个项目首次启用数据库加密时,系统会弹出一个“创建委托”的对话框,单击“是”创建委托以授权DWS访问KMS,如果单击“否”将不会启用加密功能。然后在“密钥名称”的下拉列表中选择已创建的密钥。如果没有密钥,可以登录KMS服务进行创建,详细操作请参见《数据加密服务用户指南》。 表示关闭“加密数据库”开关,不启用数据库加密。 创建委托。 打开“加密数据库”开关,如果当前未授权DWS访问KMS,则会弹出“创建委托”对话框,单击“是”,授权DWS访问KMS,当授权成功后,DWS可以获取KMS密钥用来加解密云硬盘。 当您需要使用数据库加密功能时,需要授权DWS访问KMS。如果您有授权资格,则可直接授权。如果权限不足,需先联系拥有“Security Administrator”权限的用户授权,然后再重新操作。 加密设置。 打开“加密数据库”开关,如果已经授权,会弹出“加密设置”对话框。 图2 加密设置 密钥名称是密钥的标识,您可以通过“密钥名称”下拉框选择需要使用的密钥。 根据界面提示,配置其他基本信息。详细参数说明请参见创建集群。
  • 简介 在DWS中,您可以为集群启用数据库加密,以保护静态数据。当您为集群启用加密时,该集群及其快照的数据都会得到加密处理。您可以在创建集群时启用加密。加密是集群的一项可选且不可变的设置。要从未加密的集群更改为加密集群(或反之),必须从现有集群导出数据,然后在已启用数据库加密的新集群中重新导入这些数据。 如果希望加密,可以在集群创建时启用加密。加密是DWS集群中的一项可选设置,建议您为包含敏感数据的集群启用该设置。
  • 哪些用户有权限使用DWS数据库加密 安全管理员(拥有“Security Administrator”权限)可以直接授权DWS访问KMS,使用加密功能。 普通用户(没有“Security Administrator”权限)使用加密功能时,根据该普通用户是否为当前区域或者项目内第一个使用加密特性的用户,作如下区分: 是,即该普通用户是当前区域或者项目内第一个使用加密功能的,需先联系安全管理员进行授权,然后再使用加密功能。 否,即区域或者项目内的其他用户已经使用过加密功能,该普通用户可以直接使用加密功能。 对于一个租户而言,同一个区域内只要安全管理员成功授权DWS访问KMS,则该区域内的普通用户都可以直接使用加密功能。 如果当前区域内存在多个项目,则每个项目下都需要安全管理员执行授权操作。
  • 约束条件 已通过统一身份认证服务添加华为云文档数据库服务所在区域的KMS Administrator权限。权限添加方法请参见《统一身份认证服务用户指南》的“如何管理用户组并授权?”章节。 如果用户需要使用自定义密钥加密上传对象,则需要先通过数据加密服务创建密钥。使用数据加密服务创建密钥详情请参见创建密钥。 实例创建成功后,不可修改磁盘加密状态,且无法更改密钥。存放在 对象存储服务 上的备份数据不会被加密。 华为云文档数据库服务实例创建成功后,请勿禁用或删除正在使用的密钥,否则会导致数据库不可用,数据无法恢复。 选择磁盘加密的实例,新扩容的磁盘空间依然会使用原加密密钥进行加密。
  • 约束条件 当前登录用户已通过统一身份认证服务添加华为云关系型数据库所在区域的KMS Administrator权限。权限添加方法请参见《统一身份认证服务用户指南》的“如何管理用户组并授权?”章节。 如果用户需要使用自定义密钥加密上传对象,则需要先通过数据加密服务创建密钥。使用数据加密服务创建密钥详情请参见创建密钥。 实例创建成功后,不可修改磁盘加密状态,且无法更改密钥。存放在对象存储服务上的备份数据不会被加密。 华为云关系型数据库实例创建成功后,请勿禁用或删除正在使用的密钥,否则会导致服务不可用,数据无法恢复。 选择磁盘加密的实例,新扩容的磁盘空间依然会使用原加密密钥进行加密。