首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IAM角色ID获取IAM角色名称

使用IAM角色ID获取IAM角色名称
EN

Stack Overflow用户
提问于 2020-02-27 21:27:31
回答 2查看 7.7K关注 0票数 5

所有AWS IAM角色都有一个相关的角色名称和角色ID。角色ID通常不会被看到,因为AWS控制台只显示角色名称。在S3事件有一个PrincipalID值的JSON消息中,包含用于执行S3操作(例如"principalId":"AWS:AROAKJDKSDKF93HSA:123456789 )的角色的角色ID。

本文件我们看到,

每个IAM实体(用户、组或角色)都有一个定义的aws:userid变量。您将需要使用此变量在桶策略中将角色或用户指定为条件元素中的异常。假设角色的aws:userId值被定义为唯一-角色-ID:角色-会话-名称(例如,AROAEXAMPLEID:userdefinedsessionname)。

因此,我们知道,PrincipalId中的S3事件消息是一个角色ID到一个IAM角色。如何使用该角色ID获取角色名称?我已经搜索了IAM和STS库,但是我没有看到任何允许我传入角色ID和获取角色名称的API。STS GetCallerIdentity没有帮助,IAM GetRole只接受一个角色名作为输入。

任何帮助都将不胜感激。我只是在消费S3事件,从S3事件的消息json读取PrincipalID值,从PrincipalID中提取IAM角色ID,并且我需要一种使用IAM角色ID获取IAM角色名称的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-28 00:02:54

例如,使用python,您可以使用list_roles

输出将给出每个角色的角色id。只需循环它并搜索您想要的RoleId

代码语言:javascript
复制
{
    'Roles': [
        {
            'Path': 'string',
            'RoleName': 'string',
            'RoleId': 'string',
            'Arn': 'string',
            'CreateDate': datetime(2015, 1, 1),
            'AssumeRolePolicyDocument': 'string',
            'Description': 'string',
            'MaxSessionDuration': 123,
            'PermissionsBoundary': {
                'PermissionsBoundaryType': 'PermissionsBoundaryPolicy',
                'PermissionsBoundaryArn': 'string'
            },
            'Tags': [
                {
                    'Key': 'string',
                    'Value': 'string'
                },
            ],
            'RoleLastUsed': {
                'LastUsedDate': datetime(2015, 1, 1),
                'Region': 'string'
            }
        },
    ],
    'IsTruncated': True|False,
    'Marker': 'string'
}

RoleId (字符串) 标识角色的稳定和唯一字符串。有关ID的详细信息,请参阅IAM用户指南中的IAM标识符。

参考资料:角色

此外,我建议您使用Paginator

有些AWS操作返回的结果是不完整的,需要后续请求才能获得整个结果集。在先前的请求被称为分页的情况下发送后续请求以继续的过程。

参考资料:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html

票数 1
EN

Stack Overflow用户

发布于 2020-07-14 21:12:06

下面是一种通过AWS的快速方法:

代码语言:javascript
复制
aws iam list-roles --query 'Roles[?RoleId==`AROAEXAMPLEID`]'
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60441991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档