我有一个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"
}
关于响应对象的说明:
Account
是拥有/包含调用实体的帐户的AWS帐号- CCD_ 2是主叫实体的唯一标识符。确切的值取决于进行调用的实体的类型
AWS安全体系结构确保IAM生成的任何令牌都代表有效令牌,并且生成该令牌的给定服务具有这样做的权限。如果您担心某个具有提升权限的实体生成了令牌,并且该令牌不可信,则您存在安全配置问题。您需要检查CloudWatch以查看生成令牌的实体,并撤销其权限。
正如@jarmod所建议的,如果给定的令牌有效,那么它就是有效的。关于它的有效性,你只能知道这些。