更新时间:2026-09-22 GMT+08:00
创建网关后调用报错:委托缺少CSMS/KMS相关action权限
问题描述
在调用网关过程中,返回报错缺少相关action策略,完整报错信息如下:
{
"jsonrpc": "2.0",
"id": 0,
"error": {
"code": -32603,
"message": "send error: http upstream error: http request failed: outbound authentication failure: get api key failed, status code: 403 Forbidden, body: ErrorResponse { error_code: \"AgentIdentityTokenVault.1007\", error_msg: \"User: sts::xxx:assumed-agency:AgentArtsGatewayAgency/xxx is not authorized to perform: csms:secret:getVersion on resource: csms:regionId:xxx:secretName:apikeycredentialprovider-a452e54f because no identity-based policy allows the csms:secret:getVersion action.\" }"
}
} 原因分析
网关实际运行在Agent的沙箱环境中,当网关需要访问其他云服务时,需要在创建网关时选择相关的委托(Agency),缺少相应权限时会报此错误。主要原因如下:
- 入站和出站身份认证:网关调用涉及入站和出站身份认证,该模块通过调用AgentIdentity实现。因此,创建网关时选择的委托中需要包含Identity调用相关策略,所需权限请参考创建委托并授权。
- 密钥凭据权限:csms:secret:getVersion和kms:cmk:decryptDataKey涉及密钥凭据权限,需自行补充。如果在调用场景中需要其他action,也可以自行加入。
解决方案
方案一:为已有委托补充CSMS权限
如果在网关创建时已选择AgentArtsGatewayAgency委托,可通过以下步骤补充授权:
- 进入统一身份认证服务 IAM,选择“委托”。
- 在委托列表选择AgentArtsGatewayAgency委托,单击操作列的“授权”。

- 在策略列表中搜索“CSMS”,选择CSMSReadOnlyPolicy策略(该策略包含csms:secret:getVersion和kms:cmk:decryptDataKey权限)。

- 单击“确定”完成授权。
方案二:创建自定义身份策略并关联委托
- 进入统一身份认证服务 IAM,选择“身份策略”。
- 单击“创建自定义身份策略”。

- 参考下图配置所需的action权限(如csms:secret:getVersion、kms:cmk:decryptDataKey等),然后单击“确定”。
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "csms:secret:getVersion", "kms:cmk:decryptDataKey" ] } ] }
- 在左侧菜单栏选择“委托”,在委托列表选择AgentArtsGatewayAgency委托,单击操作列的“授权”。
- 在策略列表中,选择3中创建的自定义策略。

- 单击“确定”完成授权后,即可在“基本信息 > 授权记录”中查看。

父主题: 常见问题