当前位置: 首页 > 知识库问答 >
问题:

通过Cloudfront对API网关的IAM身份验证是否可行?

徐焱
2023-03-14

是否可以通过CloudFront对API网关endpoint使用IAM角色身份验证?

下面是一个基本用例:

    null

选项:200

岗位:403

{“消息”:“我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。\n\n此请求的规范字符串应为\n'POST\n/test/create\naccept:application/json\ncontent-type:application/json\nhost:****.execute-api.ap-****-2.amazonaws.com\nx-amz-date:20170328T044253Z\n\n accept;content-type;host;x-amz-date\NA57656A9DEF890D9DE2B637789F7E5917F4B2823765AE0122087 D08F89A97380'\N\n字符串到符号应为\N'AWS4-HMAC-SHA256\N20170328T044253Z\N20170328/AP-SOUTHEAST-2/EXECUTE-API/AWS4_REQUESTE\NCAE7FD6B4CABD593AD2EC6CE7091C94DC8CBA306E81DA95D567873EEA8F981A5'\N”}

规范字符串中的主机是API网关的...

共有1个答案

蓟雪峰
2023-03-14

正如注释中所指出的,由于主机头的更改,您将遇到困难。理论上,假设CloudFront没有以任何其他方式更改有效负载,那么用API Gatewayexceute-api域作为host的值来签署请求理论上应该可以工作。

 类似资料:
  • 我想通过Spring Cloud介绍Zuul作为一个API网关在少数服务前面。 我关心的问题: > 网关将位于许多服务的前面 某些服务可能公开不需要身份验证的endpoint null

  • 我们想使用Jitsi REST API创建一个会议。我们的Jitsi实例已经受到Prosody的保护:只有某些用户可以主持会议(他们必须使用用户和密码凭据进行身份验证才能主持会议室)。现在,在他们这么做之后,计划是通过创建一个来宾密码来保护房间,聊天伙伴/来宾需要输入该密码才能加入会议。这个过程需要通过REST API实现自动化:我们希望通过REST API创建会议,并传递一个需要来宾输入的密码。

  • (我曾在SO上回顾过类似的问题,但没有一个建议对我有效) 我有一个API服务,运行在Google App Engine上(在Google云平台上)。我需要通过谷歌管理目录API的身份验证,以便我可以在我们的GSuite域上创建组。 我最初尝试了隐式授权,遵循指南,以手动获取和提供服务帐户凭据,但我认为这可能仅限于在Google App Engine上运行的应用程序之间的通信。我的理解是,在App

  • 每次我搜索AWS API网关的通过SSL的相互身份验证时,我只能找到AWS API网关和后端服务之间的MTL。但我希望用MTLS(客户端身份验证)来保护我的AWS API网关endpoint本身。 例如,我有一个通过AWS API网关代理的备份服务QueryCustomer。现在我可以在API网关上设置SSL证书,但它通常是单向SSL。我想要实现的是一个带有客户端身份验证的MTLS,其中来自AWS

  • 问题内容: 问题: 我们有一个基于Spring MVC的RESTful API,其中包含敏感信息。该API应该是安全的,但是不希望随每个请求一起发送用户凭证(用户/密码组合)。根据REST准则(和内部业务要求),服务器必须保持无状态。该API将由另一台服务器以mashup方式使用。 要求: 客户端使用凭据向(不受保护的URL)发出请求;服务器返回一个安全令牌,该令牌包含足够的信息供服务器验证未来的

  • 目前用户名总是匿名的。设置调用方主体的正确方法是什么?我在拦截器里做这个吗?还是在豆子本身?我的目标是基本上能够调用一个方法loginUserWithEJBOnJboss(String user,String pass),该方法使用在jboss中配置的登录方法并正确设置主体。 我在这里不知所措,谷歌什么也没找到。也许我只是在寻找错误的单词。