gpt4 book ai didi

amazon-web-services - 保护 AWS JS SDK Api 调用

转载 作者:行者123 更新时间:2023-12-04 08:04:08 24 4
gpt4 key购买 nike

我有一个网站,我使用 AWS S3 JS sdk 从 S3 服务器存储桶上传/删除图像。
目前我只在 JS 文件中以原始格式传递凭据,这是不安全的。 AWS 建议使用 Web 身份联合技术来确保其安全。

我读过他们,并有一些疑问。

1:这种技术是否意味着,我网站的每个用户将使用它来上传图片,都需要验证他们的登录信息?

2 : 也有一种叫做预登录 URL 的东西。这也让我们隐藏了凭据。

但是我对实现我的目标到底应该遵循什么感到困惑,

我不想在 js 文件中向最终用户显示我的凭据。此外,我不希望我的最终用户对自己进行任何形式的身份验证。

有可能吗?

最佳答案

您确实应该使用一些身份联合来以某种方式验证您的用户并为您的用户获取临时访问 key / secret key 。

AWS 有一项服务可以帮助您实现这一点:AWS Cognito ( http://aws.amazon.com/cognito/ )
Cognito Identity 是一种身份联合服务,可让您在著名的 Web 身份服务(例如 Facebook、Google、Amazon、任何 OpenID Connect 服务(SalesForce...)或您自己的身份验证后端)上对您的用户进行身份验证。一旦用户在其中一项服务中通过身份验证,Cognito 将用联合 token 交换 AWS 访问 key 和 secret key 。这些访问 key 的范围将仅限于您在 Cognito 角色中定义的任何权限,并有时间限制(默认为 15 分钟)

这篇博文介绍了如何将 AWS Cognito Identity 与您自己的后端身份验证服务结合使用。它为 Java 和 .Net 提供了服务器端示例代码:http://mobile.awsblog.com/post/TxBVEDL5Z8JKAC/Use-Amazon-Cognito-in-your-website-for-simple-AWS-authentication

AWS Cognito Identity 还允许您与未经身份验证的用户合作,即在用户通过身份验证之前为其接收访问 key / secret key 。

AWS Cognito 将为您的用户维护一个唯一的身份 ID,无论他们将使用什么身份验证方法(即同一个人在 Google 上进行一次身份验证,在 Facebook 上进行一次身份验证,并且将具有相同的身份 ID)

https://identity-demo.aws-emea.info是一个演示用户身份验证和身份联合的网站。该网站实现了多种联合技术:服务器端 Web 身份联合(选项卡 #1)、客户端(JavaScript)Web 身份联合(选项卡 #2)和客户端(JavaSCript)AWS Cognito 身份验证(选项卡 #3)

回答您的第二个问题:S3 签名 URL:这些 URL 允许从/向 S3 下载/上传内容。它们通常由应用服务器生成并嵌入到网页中。 S3 签名 URL 不需要对您的用户进行身份验证,也不需要每个用户拥有一个 key 。您可以选择使用用户特定 key 还是应用通用 key 来生成您的 S3 签名 URL。所有 AWS 开发工具包都有帮助您生成预签名 URL 的方法。

如果您要求不对用户进行身份验证,您有两种选择。使用带有 AWS Cognito 的未经身份验证的用户或使用 S3 预签名 URL。然后必须在服务器端生成签名,使用服务器端 key (如果您的应用程序服务器在 Amazon EC2 上运行,则使用 E​​C2 角色)

关于amazon-web-services - 保护 AWS JS SDK Api 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26782055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com