前端直接调用AWS Lambda函数是possible/safe吗?
Is it possible/safe to call AWS Lambda function directly from frontend?
我的 Lambda 函数至少需要 12 秒才能执行,所以我无法通过 AWS API 网关公开它(因为 10 秒超时)。我在想的是 call/execute Lambda 函数直接从前端通过 AWS javascript SDK。创建仅具有执行此特定功能权限的 IAM 用户并在前端对该用户 AWS_KEY_ID 和 AWS_SECRET_KEY 进行硬编码是否安全?
是的,这是可能的。
新 AWS Service Cognito 允许您提供特定于最终用户的 AWS 凭证。您可以使用这些凭据访问不同的 aws 服务,例如 DynamoDB
或者在您的情况下 AWS Lambda
.
Is it safe to create IAM user that will have only permission to
execute this one particular function and hardcode this user AWS_KEY_ID
and AWS_SECRET_KEY in frontend?
永远不要这样做。请改用 AWS Service Cognito。
您可以使用亚马逊网关 API 从所谓的 "front end" 连接到 lambda,从亚马逊结帐 this tutorial。
您可以使用 aws API 网关和 Lambda 构建 RESTful 服务。使用蓝图 "microservice-http-endpoint" 构建您的 Lambda 函数,或手动将您的 API 端点指向已创建的 Lambda 函数。 This tutorial 解释了如何使用 API Gateway、Lambda 和 DynamoDB 构建 REST 服务。
如果您手动进行域映射和错误映射,您可能会遇到挑战,aws 提供了一个选项来从 swagger 文档构建端点。导入后,您可以手动将 Lambda 函数映射到每个端点。
我的 Lambda 函数至少需要 12 秒才能执行,所以我无法通过 AWS API 网关公开它(因为 10 秒超时)。我在想的是 call/execute Lambda 函数直接从前端通过 AWS javascript SDK。创建仅具有执行此特定功能权限的 IAM 用户并在前端对该用户 AWS_KEY_ID 和 AWS_SECRET_KEY 进行硬编码是否安全?
是的,这是可能的。
新 AWS Service Cognito 允许您提供特定于最终用户的 AWS 凭证。您可以使用这些凭据访问不同的 aws 服务,例如 DynamoDB
或者在您的情况下 AWS Lambda
.
Is it safe to create IAM user that will have only permission to execute this one particular function and hardcode this user AWS_KEY_ID and AWS_SECRET_KEY in frontend?
永远不要这样做。请改用 AWS Service Cognito。
您可以使用亚马逊网关 API 从所谓的 "front end" 连接到 lambda,从亚马逊结帐 this tutorial。
您可以使用 aws API 网关和 Lambda 构建 RESTful 服务。使用蓝图 "microservice-http-endpoint" 构建您的 Lambda 函数,或手动将您的 API 端点指向已创建的 Lambda 函数。 This tutorial 解释了如何使用 API Gateway、Lambda 和 DynamoDB 构建 REST 服务。
如果您手动进行域映射和错误映射,您可能会遇到挑战,aws 提供了一个选项来从 swagger 文档构建端点。导入后,您可以手动将 Lambda 函数映射到每个端点。