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

如何通过AWS CLI访问跨账号CloudWatch指标?GUI可行CLI失败求助

跨账号CloudWatch CLI访问问题排查方案

我来帮你梳理下这个问题——既然GUI能正常跨账号访问CloudWatch指标,那核心问题大概率出在CLI的身份验证逻辑或者命令配置上,咱们一步步排查:

1. 先确认CLI当前使用的身份是否正确

GUI能访问说明跨账号的IAM权限(角色信任策略、资源策略)是没问题的,但CLI可能默认用了主账号的本地凭证,而非你在GUI中切换的跨账号角色。

先执行这条命令确认当前CLI的身份:

aws sts get-caller-identity

对比返回的Account字段,看是不是你要访问的次级账号ID。如果是主账号ID,那就是身份没切换对。

2. 配置CLI的跨账号角色Profile

如果需要通过角色切换访问次级账号,最稳妥的方式是在CLI配置文件里设置专门的profile:

编辑~/.aws/config(Windows用户是C:\Users\<你的用户名>\.aws\config),添加如下配置:

[profile secondary-cloudwatch]
role_arn = arn:aws:iam::[你的次级账号ID]:role/[跨账号访问角色名]
source_profile = default  # 这里填你主账号的CLI profile名称(通常是default)
region = us-east-1  # 替换成你要访问的CloudWatch区域

保存后,用这个profile执行CloudWatch命令,比如:

aws cloudwatch list-metrics --profile secondary-cloudwatch

3. 检查命令的区域参数

CloudWatch是区域级服务,GUI可能自动切换到了目标区域,但CLI默认区域可能不匹配。如果profile里没指定region,记得在命令里显式添加:

aws cloudwatch get-metric-statistics --namespace "AWS/EC2" --metric-name CPUUtilization --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --start-time 2024-01-01T00:00:00Z --end-time 2024-01-02T00:00:00Z --period 3600 --statistics Average --profile secondary-cloudwatch --region ap-southeast-1

4. 排查凭证缓存问题

如果之前切换过角色,CLI可能缓存了过期的临时凭证,导致权限验证失败。可以删除CLI的缓存目录:

rm -rf ~/.aws/cli/cache  # Linux/Mac
# Windows用户执行:
# Remove-Item -Recurse -Force $env:USERPROFILE\.aws\cli\cache

之后重新执行带profile的命令,让CLI重新获取新的临时凭证。

5. 验证权限是否生效

如果还是有问题,可以用IAM模拟策略来验证当前身份是否有权限访问次级账号的CloudWatch:

aws iam simulate-principal-policy \
  --policy-source-arn [当前身份的ARN(从get-caller-identity获取)] \
  --action-names cloudwatch:GetMetricData cloudwatch:GetMetricStatistics \
  --resource-arns arn:aws:cloudwatch:[目标区域]:[次级账号ID]:metric/*

看返回结果里的EvalDecision字段,如果是allowed,说明权限没问题,问题出在命令或配置上;如果是denied,则需要检查次级账号的角色信任策略或主账号用户的权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:27:37