Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Angular应用程序中处理AWS凭据_Angular_Amazon Web Services - Fatal编程技术网

在Angular应用程序中处理AWS凭据

在Angular应用程序中处理AWS凭据,angular,amazon-web-services,Angular,Amazon Web Services,我有一个Angle应用程序,它使用以下AWS凭据: awsAccessKeyId awssecretAccessKey awsBucket awsEndpointUrl awsRegion awsKey 我想将它们存储在我的应用程序的environment.ts文件中,但有人告诉我这不是一个好主意。我还能把它们存放在哪里?我考虑使用Firebase,但只允许通过API调用使用特定UID的经过身份验证的用户读取文档。不建议将此类凭据存储在环境文件中,因为通常情况下,环境文

我有一个Angle应用程序,它使用以下AWS凭据:

  awsAccessKeyId
  awssecretAccessKey
  awsBucket
  awsEndpointUrl
  awsRegion
  awsKey

我想将它们存储在我的应用程序的environment.ts文件中,但有人告诉我这不是一个好主意。我还能把它们存放在哪里?我考虑使用Firebase,但只允许通过API调用使用特定UID的经过身份验证的用户读取文档。

不建议将此类凭据存储在环境文件中,因为通常情况下,环境文件会提交到git中。
1.如果it存储库是公共的,那么您的所有凭据都可供公共(mis)使用。
2.如果存储库是私有的,那么也可能会出现这样的情况,即多人在同一个项目上工作,但只有很少人需要这些凭据,而不是所有人。
3.在您的情况下,如果您在前端获得AWS凭据,那么任何人都可以从“网络”选项卡(最简单的方法)获得这些凭据,并且可以(错误地)使用它

您应该如何/在哪里存储这些凭证取决于您的用例。不可能有一个能满足每个人需要的答案。虽然很少有好的方法:
1.将环境文件保留在存储库之外,并根据需要将其分发给开发人员。
2.如您所述,将其存储在单独的位置,并在运行时获取它们。
3.如果您有后端,那么不要在前端获取凭据,然后访问云服务,而是将凭据存储在后端,然后通过后端访问云服务。(推荐)


还有许多其他方法可以解决此问题,但它们也取决于这些项目。

不鼓励在环境文件中存储此类凭据,因为通常情况下,环境文件会提交到git中。
1.如果it存储库是公共的,那么您的所有凭据都可供公共(mis)使用。
2.如果存储库是私有的,那么也可能会出现这样的情况,即多人在同一个项目上工作,但只有很少人需要这些凭据,而不是所有人。
3.在您的情况下,如果您在前端获得AWS凭据,那么任何人都可以从“网络”选项卡(最简单的方法)获得这些凭据,并且可以(错误地)使用它

您应该如何/在哪里存储这些凭证取决于您的用例。不可能有一个能满足每个人需要的答案。虽然很少有好的方法:
1.将环境文件保留在存储库之外,并根据需要将其分发给开发人员。
2.如您所述,将其存储在单独的位置,并在运行时获取它们。
3.如果您有后端,那么不要在前端获取凭据,然后访问云服务,而是将凭据存储在后端,然后通过后端访问云服务。(推荐)


还有许多其他方法可以解决这个问题,但它们也取决于这些项目。

正如您所说,在前端javascript文件中存储AWS凭据是不安全的,因为任何可以访问您的网站的人都可以公开读取它

我建议您开发一个服务器端API,并从应用程序中调用该API。API用于与aws服务进行对话。这样,您就不必在静态网站中存储aws凭据

使用API 创建与AWS服务对话的API

用户登录 应该通过登录来保护angular,以允许用户根据身份验证服务(如Amazon Cognito)或您自己的身份验证API进行身份验证。一旦用户成功登录,身份验证服务将返回某种类型的
令牌。您可以将此令牌存储在浏览器的
本地存储中

调用您的api 调用API端点时,需要提供此令牌。API应该在允许调用继续之前验证令牌

参考:


希望这能有所帮助。

正如您所说,在前端javascript文件中存储AWS凭据是不安全的,因为任何可以访问您的网站的人都可以公开读取

我建议您开发一个服务器端API,并从应用程序中调用该API。API用于与aws服务进行对话。这样,您就不必在静态网站中存储aws凭据

使用API 创建与AWS服务对话的API

用户登录 应该通过登录来保护angular,以允许用户根据身份验证服务(如Amazon Cognito)或您自己的身份验证API进行身份验证。一旦用户成功登录,身份验证服务将返回某种类型的
令牌。您可以将此令牌存储在浏览器的
本地存储中

调用您的api 调用API端点时,需要提供此令牌。API应该在允许调用继续之前验证令牌

参考:

希望这有帮助