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

使用Boto3调用Cost Explorer的GetCostAndUsage接口遇权限拒绝问题

解决Cost Explorer API调用的AccessDeniedException问题

你遇到的问题核心在于:当前配置的IAM权限只适用于AWS管理控制台,而Cost Explorer的API操作需要单独的权限授权,二者并不通用。

问题根源

你给用户授予的aws-portal:ViewUsage和aws-portal:ViewBilling权限,仅允许用户在AWS网页控制台中查看账单和使用数据,不覆盖Cost Explorer API的ce:GetCostAndUsage操作。API类的操作需要专门的ce前缀权限。

解决方案

你需要更新IAM用户(或关联角色)的权限策略,补上Cost Explorer API的访问权限,有两种常见实现方式:

  1. 添加细粒度自定义权限
    修改IAM权限策略,加入以下语句:

    {
        "Effect": "Allow",
        "Action": "ce:GetCostAndUsage",
        "Resource": "*"
    }
    

    注:Cost Explorer属于账户级操作,资源字段指定为*即可。

  2. 使用AWS托管策略(更便捷)
    直接为用户附加AWS预定义的托管策略AmazonCostExplorerReadOnlyAccess,这个策略包含了所有Cost Explorer只读操作的权限,涵盖ce:GetCostAndUsage,适合需要完整访问Cost Explorer数据的场景。

验证修改

更新权限后,你可以补充必要参数重新测试代码(Cost Explorer API调用需要指定时间范围等必填参数):

import boto3
client = boto3.client('ce')
response = client.get_cost_and_usage(
    TimePeriod={
        'Start': '2024-01-01',
        'End': '2024-02-01'
    },
    Granularity='MONTHLY',
    Metrics=['BlendedCost']
)
print(response)

此时应该能正常获取成本数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:33:58