为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用临时凭证访问 IAM 资源

如何使用临时凭证访问 IAM 资源

慕慕森 2023-03-08 15:59:23
我正在尝试使用 assume role thing 从不同的 AWS 账户 B 访问 AWS 账户 A 的 IAM 资源。我在两个 AWS 账户(受托人账户和受信任账户)中都承担了角色权限策略设置。假设角色名称是 dummyRole 存在于 AWS A 中,它具有创建用户权限和创建访问密钥权限,我被允许从 AWS B 承担 dummyRole。我正在尝试通过假设来自 AWS 账户 A 的 dummyRole 在 AWS 账户 A 中创建一个 IAM 用户。我被困在一个地方,一旦我们使用临时凭证进入 AWS A,需要做什么才能获得 IAM 的可见性功能。这是我尝试但观察到的代码片段AttributeError: 'IAM' object has no attribute 'User'import boto3import os, sysrole_arn = 'arn:aws:iam::A:role/dummyRole'client = boto3.client('sts')response = client.assume_role(RoleArn=role_arn, RoleSessionName='createCrossAccountUser')local_creds = response.get('Credentials')print (local_creds)access_key = local_creds.get('AccessKeyId', '')secret_key = local_creds.get('SecretAccessKey', '')session_token = local_creds.get('SessionToken', '')iam_resource = boto3.client('iam', aws_access_key_id=access_key, aws_secret_access_key=secret_key,                                    aws_session_token=session_token)print (iam_resource)iam_resource.User('dummyUserForSubaccount')
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

只需使用boto3.resource更新以下行


iam_resource = boto3.resource('iam', aws_access_key_id=access_key, aws_secret_access_key=secret_key,

                                aws_session_token=session_token)

每当你遇到这样的错误


AttributeError:“<AWS-Service> ”对象没有属性“ <attribute-name> ”


始终检查该服务的 boto3 文档。根据你的情况


对于客户端对象

对于资源对象


根据文档,User() 方法可用于资源而不是客户端。所有 AWS 服务都必须遵循相同的逻辑。


您也可以像这样创建用户。只需用这个替换你代码的最后一行。


iam_resource.create_user(UserName='dummyUserForSubaccount')


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号