首页 文章

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

提问于
浏览
0

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

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

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

在返回预先签名的URL之前,如何确保调用API网关的个人已登录并且是高级用户?

2 回答

  • 0

    创建Lambda custom authorizer,在将请求授权给API网关 endpoints 之前验证用户是否为"premium"用户 . 此功能将在授权访问之前在DynamoDB中查找用户 .

  • 0

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

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

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

相关问题