首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过AWS CLI查找服务器上正在使用的角色

通过AWS CLI查找服务器上正在使用的角色
EN

Stack Overflow用户
提问于 2017-11-16 01:29:04
回答 3查看 21.4K关注 0票数 27

我在一个附加了IAM角色的EC2实例上,希望能够验证我是否确实在AWS CLI中使用此角色。

我想象着能够调用这样的东西(但在CLI文档中找不到任何类似的东西):

代码语言:javascript
复制
$ aws get-current-role-details

此功能是否存在?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-29 17:18:37

使用AWS STS command get-caller-identity

返回有关IAM标识的详细信息,该标识的凭据用于调用接口。

代码语言:javascript
复制
$ aws sts get-caller-identity
{
    "UserId": "AIDAxxx",
    "Account": "xxx",
    "Arn": "arn:aws:iam::xxx:user/Tyrone321"
}

然后,您可以获取角色名称,并使用内联策略的iam list-role-policies和附加托管策略的iam-list-attached-role-policies查询IAM的角色详细信息(感谢@Dimitry K的标注)。

代码语言:javascript
复制
$ aws iam list-attached-role-policies --role-name Tyrone321
{
  "AttachedPolicies": [
  {
    "PolicyName": "SomePolicy",
    "PolicyArn": "arn:aws:iam::aws:policy/xxx"
  },
  {
    "PolicyName": "AnotherPolicy",
    "PolicyArn": "arn:aws:iam::aws:policy/xxx"
  } ]
}

要获取实际的IAM权限,请使用aws iam get-policy获取默认的策略版本ID,然后使用版本ID的aws iam get-policy-version来检索实际的策略语句。如果IAM主体是用户,则命令为aws iam list-attached-user-policiesaws iam get-user-policy。有关详细信息,请参阅AWS IAM CLI reference

票数 52
EN

Stack Overflow用户

发布于 2019-05-08 21:54:22

有一种更简单、更优雅的方法来获取当前角色的详细信息。

$ curl http://169.254.169.254/latest/meta-data/iam/info

代码语言:javascript
复制
{
  "Code" : "Success",
  "LastUpdated" : "2019-05-08T13:15:52Z",
  "InstanceProfileArn" : "arn:aws:iam::xxxxxxxxxxxx:instance-profile/rolename",
  "InstanceProfileId" : "AIPAIFNV5UU4JJLAXXXXX"
}

在InstanceProfileArn中,您可以看到您的角色名称

票数 17
EN

Stack Overflow用户

发布于 2017-11-16 02:20:40

不幸的是,没有一种简单的方法来获取这些信息。您需要通过以下路径到达该位置:

步骤1.从实例元数据中获取当前EC2实例ID。

代码语言:javascript
复制
curl -s http://169.254.169.254/latest/meta-data/instance-id

您可能还需要当前区域。

代码语言:javascript
复制
curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/\(.*\)[a-z]/\1/'

步骤2.获取您的EC2实例附带的IAM实例配置文件的ID。

代码语言:javascript
复制
aws ec2 describe-instances \
    --region us-east-1 \
    --instance-id i-12345678 \
    --query 'Reservations[0].Instances[0].IamInstanceProfile.Id'

请记住根据需要替换EC2实例ID和地域。

步骤3.获取IAM实例配置文件角色。

代码语言:javascript
复制
aws iam list-instance-profiles \
    --query "InstanceProfiles[?InstanceProfileId=='ABCDEFG'].Roles"

请记住替换IAM实例配置文件ID。

备注:

  • 一个IAM实例配置文件可能有多个与之关联的IAM角色。通常只有一个,但也可以有更多。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47313778

复制
相关文章

相似问题

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