如何通过Lambda读取AWS组织中账号的标签信息
在Lambda中读取AWS组织账号标签的解决方案
可以通过Lambda读取账号标签,你提到的ListTagsForResource API完全可行——虽然boto3 1.9.42版本的文档未直接列出对应方法,但该版本的boto3 Organizations客户端已经支持这个API调用,只是文档存在同步滞后的情况。
具体实现步骤:
- 对
list_all_accounts返回的每个账号,调用boto3中的list_tags_for_resource方法(boto3遵循蛇形命名规则,对应API的驼峰命名ListTagsForResource) - 调用时直接传入账号ID作为
ResourceId参数即可(无需完整ARN,测试验证过该方式有效)
示例代码片段:
import boto3 def lambda_handler(event, context): org_client = boto3.client('organizations') # 获取组织内所有账号 accounts = org_client.list_all_accounts()['Accounts'] # 为每个账号追加标签信息 for account in accounts: account_tags = org_client.list_tags_for_resource(ResourceId=account['Id']) account['Tags'] = account_tags['Tags'] return accounts
权限配置注意事项:
需要为Lambda的IAM角色添加organizations:ListTagsForResource权限,示例权限策略语句如下:
{ "Effect": "Allow", "Action": "organizations:ListTagsForResource", "Resource": "*" }
补充说明:AWS SDK的方法命名遵循固定规则,即把API的驼峰命名转换为蛇形命名,所以即使旧版文档未列出,也可以按此规则推导调用方法。
内容的提问来源于stack exchange,提问作者imported
相关产品推荐
相关产品推荐

