我想列出所有附加到IAM角色的资源。我正在编写一个程序,它将清理与任何资源(如ec2资源、lambda、任务定义等)无关的IAM角色。
import boto3
client = boto3.client('iam')
iam = boto3.resource('iam')
roles = client.list_roles()
role_name = []
Role_list = roles['Roles']
for key in Role_list:
role_name.append(key['RoleName'])
print(*role_name,sep='\n')
for name in role_name:
role = iam.Role( name )
print(name)
print(role.get_available_subresources())发布于 2020-04-01 16:54:26
没有命令可以列出正在“使用”IAM角色的所有资源。
相反,您需要检索每种资源类型的列表,然后检查分配给每种资源的IAM角色。
此外,请注意,应用程序可以通过其代码中的API调用来承担IAM角色。因此,他们正在“使用”IAM角色,但没有为应用程序指定特定的角色。
发布于 2022-02-22 21:05:28
您可以使用get_role(RoleName="MyRoleName")获取附加的资源。
iam = boto3.client('iam')
role_policy = iam.get_role(RoleName="MyRoleName")
print (role_policy)预期输出:
{
'Role': {
'Arn': 'arn:aws:iam::123456789012:role/Test-Role',
'AssumeRolePolicyDocument': '<URL-encoded-JSON>',
'CreateDate': datetime(2013, 4, 18, 5, 1, 58, 3, 108, 0),
'Path': '/',
'RoleId': 'AIDIODR4TAW7CSEXAMPLE',
'RoleName': 'Test-Role',
},
'ResponseMetadata': {
'...': '...',
},
}https://stackoverflow.com/questions/60958042
复制相似问题