如何检查AWS STS访问令牌是否有效

问题描述

我有一个lambda函数,该函数使用AWS STS生成临时凭证,然后通过HTTP将访问令牌发送到EC2实例中的Web API。

有没有一种方法可以验证从API接收到的访问令牌?

解决方法

调用STS GetCallerIdentity会告诉您凭据是否可用于进行API调用,并且会识别基础AWS账户和承担的角色。

例如:

aws sts get-caller-identity
{
    "UserId": "AROAABCDEFGHIJKLMNOPQ:xyz","Account": "123456781234","Arn": "arn:aws:sts::123456781234:assumed-role/somerole"
}

关于response object的注释:

  • Account是拥有/包含调用实体的账户的AWS帐号
  • UserId是主叫实体的唯一标识符。确切的值取决于进行呼叫的实体的类型。
,

AWS安全体系结构向您保证IAM生成的任何令牌都代表有效令牌,并且生成令牌的给定服务具有这样做的权限。如果您担心某些特权提升的实体生成了令牌,并且该令牌不被信任,那么您将遇到安全配置问题。您需要检查CloudWatch以查看哪个实体生成了令牌,并撤消其权限。

如@jarmod所建议,如果给定令牌有效,则该令牌有效。您只需了解其有效性即可。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...