如果您对RAM用户的AccessKey ID和AccessKey Secret 的安全性有更高的要求,希望通过集中管理、动态调用及自动化轮转来彻底消除硬编码泄露风险,建议使用密钥管理服务(KMS)来管理 RAM 凭据。
消息收发数据链路使用KMS管理RAM凭据时,需要注意以下事项:
请求耗时:会增加一次从KMS获取RAM凭据的请求耗时。
降级处理:注意KMS服务依赖的降级处理,在KMS服务出现异常或抖动时,不影响消息收发功能。
功能介绍
在KMS托管RAM凭据后,您无需在应用程序中配置AccessKey,只需配置凭据名称,通过凭据名称获取有效的AccessKey用于调用阿里云API。同时RAM凭据也支持轮转,以降低AccessKey泄露的风险。

使用限制
只支持托管RAM用户(子账号)的AccessKey,不支持托管阿里云账号(主账号)的AccessKey。
RAM凭据轮转
轮转时访问控制RAM会先创建一个新的AccessKey,然后删除旧的AccessKey。同时KMS将新的AccessKey写入凭据值,并删除旧的AccessKey对应的凭据值。轮转支持如下两种方式:
轮转方式 | 轮转时长 | 使用场景 |
周期性自动轮转 | 约2天 | 使用该AccessKey的应用,均已将RAM凭据集成到了应用中,且应用会周期性地读取RAM凭据。 建议您设置自动轮转周期时,不超过3个月,以降低AccessKey被泄露的风险。 |
立即轮转 | 由您设置,可设置为10分钟~2天。 RAM凭据泄露时,建议您设置为30分钟,其他场景建议您设置为2天。 |
|
RAM凭据处于轮转状态时,请勿删除凭据关联的RAM用户,避免凭据轮转失败。
RAM凭据处于轮转状态时,不支持设置周期性轮转策略以及进行立即轮转。
前提条件
已购买和启用KMS实例。具体操作,请参见购买和启用KMS实例。
已在KMS实例中创建用于加密凭据的对称密钥。具体操作,请参见创建密钥。
如果您使用RAM用户(子账号)或RAM角色管理RAM凭据,请确保阿里云账号(主账号)已将系统策略AliyunKMSSecretAdminAccess和AliyunRAMReadOnlyAccess授予RAM用户或RAM角色。具体操作,请参见为RAM用户授权或为RAM角色授权。
步骤一:授予KMS管理RAM用户AccessKey的权限
使用RAM凭据需要授权KMS访问AK权限,才能使KMS能管理RAM凭据、完成RAM凭据轮转等任务。
授权步骤如下:
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击。
单击RAM凭据页签,选择实例ID后,单击创建凭据。
在RAM凭据创建页,点击请先授权KMS 访问AK 权限,跳转至云资源访问授权页。

在云资源访问授权页,点击确认授权。
警告如果您是普通RAM用户(子账号)或普通RAM角色,请将授权链接发送至RAM管理员(有资源管理权限的RAM用户或者主账号),由RAM管理员完成授权AK权限操作。

授权完毕后,系统会自动创建服务关联角色AliyunKMSManageRAMCredentialsRole,并为其授权权限策略AliyunKMSManageRAMCredentialsRolePolicy。KMS使用该角色为您管理RAM凭据,完成RAM凭据轮转等任务。
步骤二:创建RAM凭据
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击。
单击RAM凭据页签,选择实例ID后,单击创建凭据。若出现请先授权KMS 访问AK 权限提示,请先完成授权,授权步骤请参见步骤一:授予KMS管理RAM用户AccessKey的权限。
配置RAM凭据数据,配置项说明如下。配置完毕后单击确定。
配置项
说明
选择RAM用户
选择您要托管凭据的RAM用户,所选RAM用户至少需要有一个AccessKey。若没有,请先创建AccessKey,详细步骤请参考创建AccessKey。
凭据名称根据RAM用户的名称自动生成,凭据名称在当前地域内是唯一。
设置凭据值
输入对应的AccessKey Secret。
长度不超过30720字节(30KB)。
加密主密钥
选择用于加密凭据值的密钥。
重要密钥和凭据需要属于同一个KMS实例,且密钥必须为对称密钥。关于KMS支持哪些对称密钥,请参见密钥管理类型和密钥规格。
如果是RAM用户、RAM角色,需要具备使用加密主密钥执行GenerateDataKey操作的权限。
标签
凭据的标签,方便您对凭据进行分类管理。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。
说明标签键和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)、空格。
标签键不能以aliyun或acs:开头。
每个凭据最多可以设置20个标签键值对。
自动轮转
选择开启或关闭凭据的周期性自动轮转。
天数(7天~365天)
仅当开启自动轮转需要设置。
表示轮转的周期,设置后KMS将定期为您更新凭据值。
描述信息
凭据的描述信息。
凭据的策略配置。详细介绍,请参见凭据策略概述。
您可以先选择默认策略,创建凭据后根据业务需要再修改策略。
步骤三:应用程序集成RAM凭据
KMS提供了凭据客户端、KMS实例SDK、阿里云SDK、KMS Agent调用OpenAPI-GetSecretValue或KMS实例API-GetSecretValue(不推荐)接口获取RAM凭据。您可按照以下进行选择:
建议您做好错误重试机制提升业务稳定性。
KMS提供了多种认证方式,为了更高的安全性,推荐您优先使用ECS实例RAM角色或RAM角色。
接入点说明:
共享网关对应的接入点Endpoint:请参见接入点说明。
专属网关对应的接入点Endpoint:
{实例ID}.cryptoservice.kms.aliyuncs.com。
集成方式 | 使用场景说明 | 支持的网关类型 |
|
| |
应用开发语言需要为Java(Java 8及以上版本)、Go或者Python。 |
| |
应用开发语言需要为Java(Java 6及以上版本)、PHP、Go、Python、.NET(仅C#)、C++、Node.js。 |
| |
|
| |
KMS实例SDK(不推荐) | 应用开发语言需要为Java(Java 8及以上版本)、PHP、Go、Python、.NET(仅C#)。 | 专属网关 |
相关参考
更多信息,请参见管理及使用RAM凭据。