You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用list-account-aliases返回空数组,如何获取AWS账户别名?

解决AWS账户别名查询返回空数组的问题

问题现状

  • 持有有效AWS会话凭证,调用list-account-aliases接口返回空数组,但AWS访问门户中明确显示账户别名为“Production”
  • 已通过get-caller-identity确认当前凭证对应的账户ID与目标“Production”账户ID完全匹配
  • 业务场景需要展示账户别名供用户确认,仅显示账户ID不够友好

核心原因

AWS的ListAccountAliases接口需要明确的IAM权限授权:即使凭证能通过STS验证身份,若当前IAM实体(用户/角色)未被授予iam:ListAccountAliases权限,接口会返回空数组(而非权限错误,这是AWS的安全设计,避免泄露账户是否设置别名的信息)。

解决方案

  1. 添加IAM权限
    为当前使用的IAM用户或角色附加包含iam:ListAccountAliases权限的策略,示例策略如下:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "iam:ListAccountAliases",
                "Resource": "*"
            }
        ]
    }
    
  2. 验证权限生效
    权限更新后重新调用接口,即可正常获取到账户别名。
  3. 代码无需修改
    你的现有代码逻辑完全正确,问题出在权限配置而非代码实现。

用户提供的代码

var sessionCreds = new SessionAWSCredentials(KeyId.Text, AccessKey.Text, SessionToken.Text);
using var stsClient = new AmazonSecurityTokenServiceClient(sessionCreds);
using var iamClient = new AmazonIdentityManagementServiceClient(sessionCreds);

var identity = await stsClient.GetCallerIdentityAsync(new GetCallerIdentityRequest());
var aliases = await iamClient.ListAccountAliasesAsync(); // empty array in response

内容的提问来源于stack exchange,提问作者Bigsby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:46:03