全部产品
Search
文档中心

云消息队列 RocketMQ 版:管理及使用RAM凭据

更新时间:Feb 03, 2026

如果您对RAM用户的AccessKey ID和AccessKey Secret 的安全性有更高的要求,希望通过集中管理、动态调用及自动化轮转来彻底消除硬编码泄露风险,建议使用密钥管理服务(KMS)来管理 RAM 凭据。

重要

消息收发数据链路使用KMS管理RAM凭据时,需要注意以下事项:

  • 请求耗时:会增加一次从KMS获取RAM凭据的请求耗时。

  • 降级处理:注意KMS服务依赖的降级处理,在KMS服务出现异常或抖动时,不影响消息收发功能。

功能介绍

在KMS托管RAM凭据后,您无需在应用程序中配置AccessKey,只需配置凭据名称,通过凭据名称获取有效的AccessKey用于调用阿里云API。同时RAM凭据也支持轮转,以降低AccessKey泄露的风险。

image.png

使用限制

只支持托管RAM用户(子账号)的AccessKey,不支持托管阿里云账号(主账号)的AccessKey。

RAM凭据轮转

轮转时访问控制RAM会先创建一个新的AccessKey,然后删除旧的AccessKey。同时KMS将新的AccessKey写入凭据值,并删除旧的AccessKey对应的凭据值。轮转支持如下两种方式:

轮转方式

轮转时长

使用场景

周期性自动轮转

约2天

使用该AccessKey的应用,均已将RAM凭据集成到了应用中,且应用会周期性地读取RAM凭据。

建议您设置自动轮转周期时,不超过3个月,以降低AccessKey被泄露的风险。

立即轮转

由您设置,可设置为10分钟~2天。

RAM凭据泄露时,建议您设置为30分钟,其他场景建议您设置为2天。

  • 当您发现RAM凭据泄露时,可以通过立即轮转凭据进行应急处理。

  • 应用程序接入RAM凭据时,通过手动触发轮转进行测试。

重要
  • RAM凭据处于轮转状态时,请勿删除凭据关联的RAM用户,避免凭据轮转失败。

  • RAM凭据处于轮转状态时,不支持设置周期性轮转策略以及进行立即轮转。

前提条件

  • 已购买和启用KMS实例。具体操作,请参见购买和启用KMS实例

  • 已在KMS实例中创建用于加密凭据的对称密钥。具体操作,请参见创建密钥

  • 如果您使用RAM用户(子账号)或RAM角色管理RAM凭据,请确保阿里云账号(主账号)已将系统策略AliyunKMSSecretAdminAccessAliyunRAMReadOnlyAccess授予RAM用户或RAM角色。具体操作,请参见为RAM用户授权为RAM角色授权

步骤一:授予KMS管理RAM用户AccessKey的权限

使用RAM凭据需要授权KMS访问AK权限,才能使KMS能管理RAM凭据、完成RAM凭据轮转等任务。

授权步骤如下:

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击RAM凭据页签,选择实例ID后,单击创建凭据

  3. 在RAM凭据创建页,点击请先授权KMS 访问AK 权限,跳转至云资源访问授权页。

    image

  4. 在云资源访问授权页,点击确认授权

    警告

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

    image

  5. 授权完毕后,系统会自动创建服务关联角色AliyunKMSManageRAMCredentialsRole,并为其授权权限策略AliyunKMSManageRAMCredentialsRolePolicy。KMS使用该角色为您管理RAM凭据,完成RAM凭据轮转等任务。

    您可以登录RAM控制台查看服务关联角色和权限策略的详细信息,具体操作,请参见查看RAM角色查看权限策略信息

步骤二:创建RAM凭据

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击资源 > 凭据管理

  2. 单击RAM凭据页签,选择实例ID后,单击创建凭据若出现请先授权KMS 访问AK 权限提示,请先完成授权,授权步骤请参见步骤一:授予KMS管理RAM用户AccessKey的权限

  3. 配置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-GetSecretValueKMS实例API-GetSecretValue(不推荐)接口获取RAM凭据。您可按照以下进行选择:

说明
  • 建议您做好错误重试机制提升业务稳定性。

  • KMS提供了多种认证方式,为了更高的安全性,推荐您优先使用ECS实例RAM角色或RAM角色。

  • 接入点说明:

    共享网关对应的接入点Endpoint:请参见接入点说明

    专属网关对应的接入点Endpoint:{实例ID}.cryptoservice.kms.aliyuncs.com

集成方式

使用场景说明

支持的网关类型

RAM凭据插件

  • 应用开发语言需要为Java(Java 8及以上版本)、Go或者Python

  • 业务应用使用该插件支持的SDK版本,详情参见支持的阿里云SDK

  • 共享网关

  • 专属网关

凭据客户端

应用开发语言需要为Java(Java 8及以上版本)、Go或者Python。

  • 共享网关

  • 专属网关

阿里云SDK

应用开发语言需要为Java(Java 6及以上版本)、PHP、Go、Python、.NET(仅C#)、C++、Node.js。

  • 专属网关(推荐)

  • 共享网关

KMS Agent

  • 适用于业务应用部署在一起,大规模应用访问KMS。

  • KMS Agent是基于标准化HTTP接口提供服务,支持任意编程语言的业务应用调用。

  • 专属网关(推荐)

  • 共享网关

KMS实例SDK(不推荐)

应用开发语言需要为Java(Java 8及以上版本)、PHP、Go、Python、.NET(仅C#)。

专属网关

相关参考

更多信息,请参见管理及使用RAM凭据