限制对包中 API 网关(和 AWS Lambda)的访问
Limiting Access to API Gateway (and AWS Lambda) in a package
我们有一个与我们的客户共享的包裹。在包中,我们有一大块代码可以对我们的中央 API 网关执行 HTTP 请求标注。截至目前,我们的 API 网关已打开并接受来自各地的请求,这并不好。我想限制对使用我们软件的用户的访问。我找到的唯一解决方案是使用 IAM 并提供授权,要求我们在包中包含我们的访问密钥。我们的用户可以在他们想要的任何环境中安装我们的包,我们无法控制该环境。所以我认为一个可行的选择是创建一个具有最小访问权限的通用用户策略,以允许我们的用户调用我们的 API 网关。但是,将访问密钥放在代码中似乎不是一个好主意。另一种选择是为我们的客户提供访问密钥,但这也有开销。更安全、更易于维护的更好替代方案是什么?
当 IAM 策略不可用时,您可以使用内置 API 网关 API 关键功能。
只要您的客户端可以在任何基础设施上,而不是限于 AWS,API 网关服务提供通用的 API 密钥解决方案,允许您限制客户端流量到您的 API 网关通过强制客户端请求包含 API 键。这个 API 关键界面是他们“API Usage Plan”功能的一部分。
This document 解释了如何使用控制台设置 API 网关以强制客户端流量带有 API 密钥:
To set up API keys, do the following:
Configure API methods to require an API key.
Create or import an API key for the API in a region.
您的客户可以实施 "secret storage" 解决方案,以避免将他们的 API 密钥放入他们的源代码中。
对于您的客户来说,将他们的 API 密钥纯文本存储在他们的源代码中肯定是不明智的。相反,他们可以使用秘密存储解决方案,将 API 密钥存储在他们的代码库之外,但仍然允许他们的应用程序访问秘密。
本文介绍了安全机密存储(例如安全 API 密钥存储)的示例解决方案,该解决方案授予应用程序访问应用程序机密的权限,而无需将未加密的机密放入源代码中。它使用 Amazon KMS + Cryptex,但同样的原理也适用于其他技术:http://technologyadvice.github.io/lock-up-your-customer-accounts-give-away-the-key/
我们有一个与我们的客户共享的包裹。在包中,我们有一大块代码可以对我们的中央 API 网关执行 HTTP 请求标注。截至目前,我们的 API 网关已打开并接受来自各地的请求,这并不好。我想限制对使用我们软件的用户的访问。我找到的唯一解决方案是使用 IAM 并提供授权,要求我们在包中包含我们的访问密钥。我们的用户可以在他们想要的任何环境中安装我们的包,我们无法控制该环境。所以我认为一个可行的选择是创建一个具有最小访问权限的通用用户策略,以允许我们的用户调用我们的 API 网关。但是,将访问密钥放在代码中似乎不是一个好主意。另一种选择是为我们的客户提供访问密钥,但这也有开销。更安全、更易于维护的更好替代方案是什么?
当 IAM 策略不可用时,您可以使用内置 API 网关 API 关键功能。
只要您的客户端可以在任何基础设施上,而不是限于 AWS,API 网关服务提供通用的 API 密钥解决方案,允许您限制客户端流量到您的 API 网关通过强制客户端请求包含 API 键。这个 API 关键界面是他们“API Usage Plan”功能的一部分。
This document 解释了如何使用控制台设置 API 网关以强制客户端流量带有 API 密钥:
To set up API keys, do the following:
Configure API methods to require an API key.
Create or import an API key for the API in a region.
您的客户可以实施 "secret storage" 解决方案,以避免将他们的 API 密钥放入他们的源代码中。
对于您的客户来说,将他们的 API 密钥纯文本存储在他们的源代码中肯定是不明智的。相反,他们可以使用秘密存储解决方案,将 API 密钥存储在他们的代码库之外,但仍然允许他们的应用程序访问秘密。
本文介绍了安全机密存储(例如安全 API 密钥存储)的示例解决方案,该解决方案授予应用程序访问应用程序机密的权限,而无需将未加密的机密放入源代码中。它使用 Amazon KMS + Cryptex,但同样的原理也适用于其他技术:http://technologyadvice.github.io/lock-up-your-customer-accounts-give-away-the-key/