【问题标题】:Secure HTTP Connection to AWS Lambda (using API Gateway)与 AWS Lambda 的安全 HTTP 连接(使用 API 网关)
【发布时间】:2018-01-25 21:52:36
【问题描述】:

我需要从 Salesforce(使用 Apex)到 AWS Lambda 进行安全 HTTP 调用,并且我使用 AWS API Gateway 构建了我的第一个版本。我意识到我可以从 API Gateway (.crt) 获得客户端证书,但这看起来仅适用于 AWS 后端,并不适用于发送到 API Gateway 的 HTTP 请求。我有哪些替代方法可以建立从外部 AWS (Salesforce) 到 Lambda 函数的安全连接?

到目前为止,我已经找到了this,目前这是一个令人失望的死胡同。

【问题讨论】:

  • 您使用的是自定义域还是 AWS API Gateway 提供的默认域?默认 AWS 域已受保护 (HTTPS)。如果您需要一个安全的自定义域,我在下面发布了说明。
  • 我正在使用自定义域并使用 Route 53 映射到它,并使用了我在 ACM 上为其创建的证书。我的问题是加密从其他地方发送的 HTTP 请求,我需要能够使用证书在那里对其进行加密,因此它不会被发送
  • 您通过 HTTPS 连接发送的任何数据从离开 Salesforce 服务器到被 AWS API 网关接收到,都已加密。您需要额外的加密层吗?
  • 您不必这样做,它已经为您处理好了。每个 SSL 证书都有一个private 和一个public key。 Salesforce 和 AWS 服务器将握手,这意味着 AWS 将为 Salesforce 提供一个公钥。 Salesforce 将使用此公钥加密数据。加密后,只能通过私钥进行解密。由于只有您的 AWS 服务器将拥有 私钥,因此没有其他人可以解密数据。不是事件 Salesforce 服务器可以在没有私钥的情况下反转加密。真的很安全,银行和信用卡都依赖这个技术,你应该没问题。
  • 如果您想了解更多,请查看:robertheaton.com/2014/03/27/how-does-https-actually-work

标签: amazon-web-services http https aws-lambda aws-api-gateway


【解决方案1】:

就像您发布的链接所说,API Gateway 目前不支持 MTLS。 Other options 为您现在为通话添加安全性的是:

  1. IAM permissions 和 here。
  2. API Gateway custom authorizers。
  3. Cognito User Pools。

【讨论】:

    【解决方案2】:

    如果您需要与 API 网关关联的自定义域:

    1. 如果您尚未完成,请转到 Route53 并添加您的域(新托管区域)。
    2. 在 AWS Certificate Manager 上,为您打算在 API Gateway 终端节点中使用的自定义域导入或请求证书。
    3. 打开 API Gateway 仪表板并转到“自定义域名”。点击“创建自定义域名”,在“ACM 证书(地区)”选项中,选择您在上面第 2 项中生成/导入的证书。

    就是这样,现在您应该能够使用 API Gateway 从安全连接 (HTTPS) 触发您的 Lambda 函数。请注意,如果您这样做,API 网关将拒绝通过不安全的 HTTP 协议进行的连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 2021-04-18
      • 2019-05-02
      • 2017-02-22
      相关资源
      最近更新 更多