Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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
Amazon web services 使用S3从移动应用程序保存图像_Amazon Web Services_Mobile_Amazon S3_Amazon Iam - Fatal编程技术网

Amazon web services 使用S3从移动应用程序保存图像

Amazon web services 使用S3从移动应用程序保存图像,amazon-web-services,mobile,amazon-s3,amazon-iam,Amazon Web Services,Mobile,Amazon S3,Amazon Iam,我正在创建一个后端服务,它将从Android应用程序获取关于创建一些服务请求的请求。这些服务请求将包含有关服务项的详细信息以及与请求相关的一些图像。我们希望使用S3直接存储来自android应用程序的图像,并通过后端服务上的API调用获取保存的图像密钥 这种方法的问题是移动应用程序访问共享存储桶的授权 如果我们将共享存储桶的访问密钥保存在应用程序中,则可以反编译此代码,并且会泄露机密 另一个选项是在后端服务上创建一个API,它将在移动应用程序需要将映像放入S3之前将授权密钥返回给移动应用程序。

我正在创建一个后端服务,它将从Android应用程序获取关于创建一些服务请求的请求。这些服务请求将包含有关服务项的详细信息以及与请求相关的一些图像。我们希望使用S3直接存储来自android应用程序的图像,并通过后端服务上的API调用获取保存的图像密钥

这种方法的问题是移动应用程序访问共享存储桶的授权

  • 如果我们将共享存储桶的访问密钥保存在应用程序中,则可以反编译此代码,并且会泄露机密
  • 另一个选项是在后端服务上创建一个API,它将在移动应用程序需要将映像放入S3之前将授权密钥返回给移动应用程序。这样我们也可以周期性地旋转秘密

以下哪种方法在安全性方面更好?还有什么我没有的方法吗?这听起来像是一种使用S3保存文件的标准访问实践,因此对于这种特定场景,必须有一些东西。

您不需要发明API来实现这一点-AWS仅为这种用例提供STS服务

要请求临时安全凭据,可以使用AWS STS API操作

要调用API,可以使用AWS SDK中的一个,该SDK可用 适用于各种编程语言和环境,包括 Java、.NET、Python、Ruby、Android和iOS。SDK负责 任务,例如对请求进行加密签名、重试 必要时请求,并处理错误响应。你也可以使用 AWS STS查询API,在AWS安全令牌中描述 服务API参考。最后,两个命令行工具支持AWS STS命令:AWS命令行界面和用于 Windows PowerShell

AWS STS API操作返回临时安全凭据 由访问密钥和会话令牌组成。访问密钥包括 访问密钥ID和密钥的名称。用户(或 用户可以使用这些凭据访问您的资源。 创建凭据时,它们与IAM关联 访问控制策略,该策略限制用户在使用 资格证书有关详细信息,请参见使用临时安全性 请求访问AWS资源的凭据


@Brennan你的意思是,从我的后端服务,我可以使用STS为移动应用程序创建临时帐户,将这些图像上传到S3。这仍然无法解决将这些凭据分发到应用程序的问题。我们需要为此创建一个API,对吗?您不创建帐户,而是请求临时凭据。STS API将为您提供这些凭据,这些凭据将在IAM角色的上下文中运行(即具有限制权限),并且只能持续很短的时间,不能再次使用。本质上,它们是时间和权限受限的访问密钥