仅将AWS s3上传安全保护给高级用户?

时间:2016-08-26 13:59:15

标签: security amazon-web-services amazon-s3 amazon-cognito

我正在尝试构建一个具有“高级”功能的应用程序,以将文件上传到s3。

现在用户使用OAuth / Cognito登录。有一个dynamoDB表,其中包含基于其cognito id的用户数据。该dynamodb用户数据指定用户是否是高级用户。

我有一个API网关端点绑定到lambda函数,该函数创建预先签名的s3上传URL。

在退回预先签名​​的网址之前,如何确保呼叫API网关的用户已登录并且是高级用户?

2 个答案:

答案 0 :(得分:0)

创建Lambda custom authorizer,在将请求授权给API网关端点之前验证用户是否为“高级”用户。此功能将在授权访问之前在DynamoDB中查找用户。

答案 1 :(得分:0)

看起来您正在使用Cognito Federated Identities,您可以从API网关后面的Lambda函数访问Cognito Identity Id,并在您的发电机表中进行查找。

要访问Cognito Identity Id,您必须在API的API网关“集成请求”页面上“调用调用者凭据”。

设置完成后,如果您使用Cognito的凭据调用API,则lambda上下文将包含一个新的“identity”结构,其中包含“cognitoIdentityId”和“cognitoIdentityPoolId”

相关问题