云服务器内容精选

  • 使用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"
  • 使用流程 图1 轮转密码流程 流程说明如下: 定时触发器到期后,会发布定时触发事件。 函数工作流接收到事件后,会生成新的随机密码,替换凭据模板内容中的占位符,随后将替换后的内容作为新版本存入凭据中。 应用程序定期通过调用API/SDK获取最新凭据版本。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用新密码更新目标对象(数据库、服务器等),使新密码生效,后续使用新密码对目标对象进行访问。
  • RDS凭据使用流程 图1 产品架构 流程说明: 创建一个RDS凭据。 设置凭据名称、标签等。 配置自动轮转策略。 应用系统在使用过程中需要访问数据库时,可以向CSMS服务请求访问凭据,获取凭据值,调用API接口详情请参见查询凭据版本和凭据值。 应用系统通过访问返回的凭据值解析明文数据,获取账号和密码后,可以访问该用户对应的目标数据库。 开启自动轮转后,数据库实例所托管的密码将定时轮转更新,请确认使用该数据库实例的应用端已完成代码适配,可在数据库连接建立时,动态获取最新凭据。 不要轻易缓存凭据中的任何信息,避免账号密码轮转后失效,导致数据库连接失败。
  • 应用原理 通过统一身份认证服务(Identity and Access Management,IAM )对弹性云服务器(Elastic Cloud Server,ECS)的委托获取临时访问密钥来保护AK&SK。 访问凭证按照时效性可分为永久凭证和临时凭证,相较于永久性访问凭证,例如用户名和密码,临时访问密钥因为有效期短且刷新频率高,所以安全性更高。因此,您可以为ECS实例授予IAM委托,使ECS实例内的应用程序可以使用临时AK&SK+SecurityToken访问CSMS,不需要保存临时访问密钥,每次需要时动态获取,也可以缓存在内存里定时更新。
  • 轮换凭据和密钥 为提升系统安全性,需要对敏感凭据进行定期更新。凭据轮换时要求对目标凭据具备依赖性的应用或配置同步更新,多应用系统凭据更新容易遗漏,可能带来业务中断风险。 通过凭据管理服务,提供凭据多版本管理,应用节点通过API/SDK调用实现应用层凭据安全轮换。 解决方案说明如下: 管理员通过凭据管理控制台或API接口新增凭据版本,更新目标凭据内容。 应用节点通过调用API/SDK 获取最新凭据版本,或指定版本状态的凭据,实现全量或灰度的凭据轮换。 定期重复步骤1和步骤2实现凭据定期轮转。 加密密钥开启密钥轮换,提高存储安全性。
  • 凭据安全检索 应用程序访问数据库或其他服务时,需要提供如密码、令牌、证书、SSH 密钥、API 密钥等各种类型的凭据信息进行身份校验,通常是直接使用明文方式将上述凭据嵌入在应用程序的配置文件中。该场景存在凭据信息硬编码、明文存储易泄露和安全性较低等风险问题。 通过凭据管理服务,用户可以将代码中的硬编码替换为对API 的调用,以便用编程的方式动态查询凭据,由于该凭据中不包含敏感信息,保证凭据不被泄露。 解决方案说明如下: 应用读取配置时,调用凭据管理服务API检索读取凭据(代替硬编码和明文凭据)。
  • 凭据事件通知 用户为凭据对象订阅关联事件后,当事件为启用状态且基础事件类型在凭据对象上触发时,通过消息通知服务(SMN)对应事件通知会发送至事件指定的通知主题上。基础事件类型包括:凭据新版本创建,凭据版本过期,凭据删除,凭据轮转。配置事件通知后,用户可以通过函数工作流服务(FunctionGraph)中基于事件驱动的托管函数来自动化轮转凭据。 解决方案说明如下: 1.管理员通过凭据管理服务的事件通知控制台或者调用API接口新增事件。 2.创建或更新凭据时,关联订阅所需的事件对象。 3.用户在凭据状态发生改变时收到事件通知消息,并可在函数工作流服务(FunctionGraph)中配置函数,来实现凭据自动更新或轮转等功能。
  • 凭据管理基本功能 表1 凭据管理基本功能 功能 服务内容 凭据全生命周期管理 创建、查看、定时删除、取消删除凭据 修改凭据的加密密钥和描述信息 凭据版本管理 创建、查看凭据版本 查看凭据值 凭据版本到期设置 凭据版本状态管理 更新、查询、删除凭据版本状态 凭据标签管理 添加、搜索、编辑、删除标签 凭据事件管理 创建、查看、删除事件 修改凭据事件类型 凭据通知管理 查看变更事件类型、事件名称、凭据名称
  • 已申请权限,但是仍然没有权限操作 检查IAM和ACMS是否属于应用平台Console的同一个站点,需要在哪个站点操作ACMS,就通过该站点的应用平台Console进入IAM申请权限。 如果站点一致,则检查ACMS管理台上的自有服务和IAM里有权限的自有服务是否一致。自有服务下,必须有“服务敏感数据研发管理岗位”。 如果上述检查正确,但仍然没有权限,那么重新登录,再回到ACMS管理台,查看是否有权限。 如果重新登录后依然没有权限,在ACMS管理台,按F12,打开控制台,刷新页面,找到findUserPolicies,在响应中搜索是否存在SecurityTokenService_SDM。 如果不存在,就是没有申请权限,如果缺少SecurityTokenService_SDM,就需要申请自有服务的 ”敏感数据研发管理岗位“。 如果存在,但页面上依然报错,则找支撑人员定位,将站点名称、定位过程、findUserPolicies中的响应内容,提供给支撑人员。 父主题: 访问凭据管理服务
  • 响应示例 状态码: 200 OK { "app_id" : "9ed8b7fe84224de681e7d7a5587e76dc", "app_acl_type" : "PERMIT", "app_acl_values" : [ "192.168.0.1", "192.168.0.5-192.168.0.10", "192.168.0.100/28" ] } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:app_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.3004", "error_msg" : "App 9ed8b7fe84224de681e7d7a5587e76dc does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 app_id String APP编号 app_acl_type String 类型 PERMIT (白名单类型) DENY (黑名单类型) app_acl_values Array of strings ACL策略值,支持IP、IP范围和CIDR方式。IP范围以英文中划线分隔。 状态码: 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 错误描述
  • URI GET /v2/{project_id}/apigw/instances/{instance_id}/apps/{app_id}/app-acl 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 app_id 是 String 应用编号
  • 使用凭据登录数据库 下文为您介绍如何创建凭据,并且通过API调用凭据来登录到您的数据库。 您首先需要确保您的帐号拥有KMS Administrator或者KMS CMKFullAccess权限,详情见DEW权限管理。 图1 凭据登录流程 流程说明如下: 您首先需要在凭据管理服务中使用控制台或者API创建一个凭据,用来存储数据库的相关信息(例如:数据库地址、端口、密码)。 当您使用应用程序访问数据库时,凭据管理服务会去查询步骤1所创建的凭据存储的内容。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用这些安全的信息访问数据库。
  • 使用控制台安装插件 在CCE服务控制台,单击集群名称进入对应集群,单击左侧导航栏的“插件中心”,在右侧找到dew-provider插件,单击“安装”。 在安装插件页面,在参数配置栏进行参数配置。参数配置说明如表 参数配置表所示。 表2 参数配置表 参数 参数说明 rotation_poll_interval 轮转时间间隔。单位:分钟,即m(注意不是min)。 轮转时间间隔表示向云凭据管理服务发起请求并获取最新的凭据的周期,合理的时间间隔范围为[1m, 1440m],默认值为2m。 单击“安装”。待插件安装完成后,选择对应的集群,然后单击左侧导航栏的“插件中心”,可在“已安装插件”页签中查看相应的插件。 插件成功使用需使用已在数据加密服务中创建好的凭据,否则挂载失败会导致Pod无法运行。具体创建凭据操作请参见创建通用凭据。 插件安装完成后即可进行使用,具体操作步骤参见CCE密钥管理插件使用说明。
  • 组件说明 表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