云服务器内容精选

  • 运行时引擎访问凭据管理服务功能介绍 访问凭据管理服务(Access Credential Management Service,简称ACMS,也称为Security Token Service,简称STS)为云服务业务提供了以下两个功能: 微服务之间请求认证 ACMS为每个接入的微服务,颁发了用于通信中进行认证的STS认证凭据,两个微服务之间通信时,可以使用该认证凭据,进行STS认证。 为了让微服务可以安全地获取到STS认证凭据,STS给每个接入的微服务颁发了一张身份证书,该证书中包含了微服务的名称等信息。该证书在微服务部署时,安装到微服务所在的虚拟机或容器里。微服务使用该证书,就可以到STS-Server上获取认证凭据。 两个微服务之间通信时,被调用方(Provider)需要在ACMS管理台上给调用方(Consumer)配置访问权限(Access Control List,简称ACL),开通后,Consumer就可以使用STS下发的认证凭据,用于消息的签名和加密。 敏感配置的托管和分发功能 ACMS为每个接入的微服务都分配了一个用于加密敏感数据的密钥(KEK),对服务也分配了加密敏感数据的密钥(ServiceKEK)。同一个服务下的所有微服务,ServiceKEK是相同的。 利用这两个密钥,微服务可以将一些敏感配置托管到STS,STS会使用KEK或ServiceKEK对数据进行加密,在微服务部署时,由部署平台将敏感数据密文下发到微服务部署的环境上。 微服务启动时,利用微服务身份证书,可以同时获取KEK和ServiceKEK,从而把敏感数据明文解密出来。 父主题: 配置访问凭据管理服务
  • 轮转凭据使用流程 流程说明: 创建一个轮转凭据。 设置凭据名称、标签等。 配置自动轮转策略。 应用系统在使用过程中需要访问数据库时,可以向 CS MS服务请求访问凭据,获取凭据值,调用API接口详情请参见查询凭据版本和凭据值。 应用系统通过访问返回的凭据值解析明文数据,获取账号和密码后,可以访问该用户对应的目标数据库。 开启自动轮转后,数据库实例所托管的密码将定时轮转更新,请确认使用该数据库实例的应用端已完成代码适配,可在数据库连接建立时,动态获取最新凭据。 不要轻易缓存凭据中的任何信息,避免账号密码轮转后失效,导致数据库连接失败。
  • 轮换凭据和密钥 为提升系统安全性,需要对敏感凭据进行定期更新。凭据轮换时要求对目标凭据具备依赖性的应用或配置同步更新,多应用系统凭据更新容易遗漏,可能带来业务中断风险。 通过凭据管理服务,提供凭据多版本管理,应用节点通过API/SDK调用实现应用层凭据安全轮换。 解决方案说明如下: 管理员通过凭据管理控制台或API接口新增凭据版本,更新目标凭据内容。 应用节点通过调用API/SDK 获取最新凭据版本,或指定版本状态的凭据,实现全量或灰度的凭据轮换。 定期重复1和2实现凭据定期轮转。 加密密钥开启密钥轮换,提高存储安全性。
  • 凭据安全检索 应用程序访问数据库或其他服务时,需要提供如密码、令牌、证书、SSH 密钥、API 密钥等各种类型的凭据信息进行身份校验,通常是直接使用明文方式将上述凭据嵌入在应用程序的配置文件中。该场景存在凭据信息硬编码、明文存储易泄露和安全性较低等风险问题。 通过凭据管理服务,用户可以将代码中的硬编码替换为对API 的调用,以便用编程的方式动态查询凭据,由于该凭据中不包含敏感信息,保证凭据不被泄露。 解决方案说明如下: 应用读取配置时,调用凭据管理服务API检索读取凭据(代替硬编码和明文凭据)。
  • 凭据事件通知 用户为凭据对象订阅关联事件后,当事件为启用状态且基础事件类型在凭据对象上触发时,通过 消息通知 服务( SMN )对应事件通知会发送至事件指定的通知主题上。基础事件类型包括:凭据新版本创建,凭据版本过期,凭据删除,凭据轮转。配置事件通知后,用户可以通过 函数工作流 服务(FunctionGraph)中基于事件驱动的托管函数来自动化轮转凭据。 解决方案说明如下: 1.管理员通过凭据管理服务的事件通知控制台或者调用API接口新增事件。 2.创建或更新凭据时,关联订阅所需的事件对象。 3.用户在凭据状态发生改变时收到事件通知消息,并可在函数工作流服务(FunctionGraph)中配置函数,来实现凭据自动更新或轮转等功能。
  • 凭据管理基本功能 表1 凭据管理基本功能 功能 服务内容 凭据全生命周期管理 创建、查看、定时删除、取消删除凭据 修改凭据的加密密钥和描述信息 凭据版本管理 创建、查看凭据版本 查看凭据值 凭据版本到期设置 凭据版本状态管理 更新、查询、删除凭据版本状态 凭据标签管理 添加、搜索、编辑、删除标签 凭据事件管理 创建、查看、删除事件 修改凭据事件类型 凭据通知管理 查看变更事件类型、事件名称、凭据名称
  • 已申请权限,但是仍然没有权限操作 检查 IAM 和ACMS是否属于应用平台的同一个站点,需要在哪个站点操作ACMS,就通过该站点的应用平台进入IAM申请权限。 如果站点一致,则检查ACMS上的服务和IAM里有权限的服务是否一致。当前服务下,必须有服务运维岗位权限或运维管理员权限。 如果上述检查正确,但仍然没有权限,那么重新登录,再回到ACMS,查看是否有权限。 如果重新登录后依然没有权限,在ACMS中,按F12,打开工作台,刷新页面,找到findUserPolicies,在响应中搜索是否存在SecurityTokenService_SDM。 如果不存在,就是没有申请权限,如果缺少SecurityTokenService_SDM,就需要申请服务的服务运维岗位权限或运维管理员权限 如果存在,但页面上依然报错,请联系支撑人员定位,将站点名称、定位过程、findUserPolicies中的响应内容,提供给支撑人员。 父主题: 运维中心访问凭据管理服务
  • URI GET /v2/{project_id}/apigw/instances/{instance_id}/apps/{app_id}/bound-quota 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 app_id 是 String 应用编号
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 app_quota_id String 凭据配额编号 name String 配额名称。支持汉字,英文,数字,下划线,且只能以英文和汉字开头,3-255字符 call_limits Integer 凭据配额的访问次数限制 time_unit String 限定时间单位:SECOND:秒、MINUTE:分、HOUR:时、DAY:天 time_interval Integer 配额的限定时间值 remark String 参数说明和描述 最大长度:255 reset_time String 首次配额重置时间点,不配置默认为首次调用时间计算 create_time String 创建时间 bound_app_num Integer 配额策略已绑定应用数量 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "app_quota_id" : "c900c5612dbe451bb43cbcc49cfaf2f3", "name" : "ClientQuota_demo", "call_limits" : 1000, "time_unit" : "DAY", "time_interval" : 1, "remark" : "remark", "reset_time" : "2020-09-20 00:00:00 +0000 +0000", "create_time" : "2020-09-19T07:27:47Z", "bound_app_num" : 0} 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation"} 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed"} 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method"} 状态码: 404 Not Found { "error_code" : "APIG.3002", "error_msg" : "App 98df09fb-d459-4cbf-83a7-2b55ca6f3d5d does not exist"} 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error"}
  • 使用流程 图1 轮转密码流程 流程说明如下: 定时触发器到期后,会发布定时触发事件。 函数工作流接收到事件后,会生成新的随机密码,替换凭据模板内容中的占位符,随后将替换后的内容作为新版本存入凭据中。 应用程序定期通过调用API/SDK获取最新凭据版本。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用新密码更新目标对象(数据库、服务器等),使新密码生效,后续使用新密码对目标对象进行访问。
  • 组件说明 表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密钥管理插件使用说明。
  • 使用AppCode进行API请求的简易认证 在创建API时,选择“APP认证”并且开启“支持简易认证”。 如果您修改已有API为简易认证,需要在修改完成后,将API重新发布,使简易认证模式生效。 将支持简易认证的API绑定到已创建的凭据。 发送请求时,增加请求头部参数“X-Apig-AppCode”,省略请求签名相关信息。 以Curl方式为例,增加头部参数名称:X-Apig-AppCode,参数值填已生成的AppCode。 curl -X GET "https://api.exampledemo.com/testapi" -H "content-type: application/json" -H "host: api.exampledemo.com" -H "X-Apig-AppCode: xhrJVJKABSOxc7d***********FZL4gSHEXkCMQC"