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

AWS如何通过boto3为非组织存量账号开启IAM用户及角色的账单访问权限

非组织账号通过boto3开启IAM身份访问Billing and Cost Management权限步骤

前置说明

非组织独立账号默认禁止所有IAM身份访问账单与成本管理相关接口/控制台,必须先通过根账号开启全局IAM访问账单开关,再为对应IAM用户/角色绑定权限策略,两个步骤缺一不可。开关开启后仅拥有对应账单权限的IAM身份可访问相关资源,不会直接放开所有IAM身份的访问权限。

步骤1:开启全局IAM账单访问开关

调用boto3的account客户端的put_iam_access_to_billing接口完成配置,注意该操作仅支持根账号或被根账号授权的特殊身份调用:

import boto3

# 此处必须传入根账号的身份凭证(AKSK/临时凭证等),普通IAM身份默认无权限执行该操作
account_client = boto3.client('account')
response = account_client.put_iam_access_to_billing(
    IamAccessToBilling='ACTIVE'
)
# 返回200即为开启成功
print(response['ResponseMetadata']['HTTPStatusCode'])

如果后续需要关闭该开关,仅需将参数值改为INACTIVE即可。

步骤2:为目标IAM用户/角色绑定账单访问权限

你可以直接使用AWS托管的账单策略,也可以根据业务需要自定义最小权限策略,两种场景的示例如下:

  • 给IAM用户绑定全量账单访问托管权限
import boto3

iam_client = boto3.client('iam')
response = iam_client.attach_user_policy(
    UserName='替换为目标IAM用户名',
    PolicyArn='arn:aws:iam::aws:policy/job-function/Billing'
)
  • 给IAM角色绑定自定义只读成本查询权限
import json
import boto3

iam_client = boto3.client('iam')
# 1. 创建自定义最小权限策略,仅允许查询成本和账单基础数据
custom_policy = {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ce:GetCostAndUsage",
                "ce:GetCostForecast",
                "billing:Get*"
            ],
            "Resource": "*"
        }
    ]
}
policy_resp = iam_client.create_policy(
    PolicyName='CustomBillingReadOnlyAccess',
    PolicyDocument=json.dumps(custom_policy),
    Description='自定义账单只读访问权限'
)
# 2. 将策略绑定到目标IAM角色
iam_client.attach_role_policy(
    RoleName='替换为目标IAM角色名',
    PolicyArn=policy_resp['Policy']['Arn']
)

验证配置是否生效

使用目标IAM身份的凭证调用成本查询接口,正常返回数据即为配置成功:

import boto3

ce_client = boto3.client('ce')
resp = ce_client.get_cost_and_usage(
    TimePeriod={'Start': '2024-01-01', 'End': '2024-01-31'},
    Granularity='MONTHLY',
    Metrics=['UnblendedCost']
)
print(resp['ResultsByTime'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:36:02