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
Amazon web services AWS-如何为AWS服务分离每个用户的资源_Amazon Web Services_Amazon Cognito - Fatal编程技术网

Amazon web services AWS-如何为AWS服务分离每个用户的资源

Amazon web services AWS-如何为AWS服务分离每个用户的资源,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,我正在为我的应用程序用户打开一个AWS服务(比如:AWS Rekognition) 问题是:当一个用户(例如:user1)创建资源(例如集合)时,其他用户(例如:user2,user3)也会看到由user1创建的资源 我曾尝试使用标识池,并从后端服务器为我的用户获取了令牌/标识,但情况并没有好转(我的用户仍然可以看到彼此的资源) 我应该怎么做才能让user1只接收user1的资源 我已经为这个问题挣扎了好几天,但似乎还没弄明白 关于此体系结构,有两种方法: 选项1:客户端/服务器 在此体系结构中

我正在为我的应用程序用户打开一个AWS服务(比如:AWS Rekognition)

问题是:当一个用户(例如:user1)创建资源(例如集合)时,其他用户(例如:user2,user3)也会看到由user1创建的资源

我曾尝试使用
标识池
,并从后端服务器为我的用户获取了
令牌
/
标识
,但情况并没有好转(我的用户仍然可以看到彼此的资源)

我应该怎么做才能让user1只接收user1的资源

我已经为这个问题挣扎了好几天,但似乎还没弄明白


关于此体系结构,有两种方法:

选项1:客户端/服务器

在此体系结构中,客户端应用程序(如移动设备或基于web的应用程序)调用由后端应用程序承载的API。然后,后端应用程序验证请求,并代表用户呼叫AWS

用户的应用程序从未收到AWS凭据。这是非常安全的,因为后端应用程序可以验证所有请求并应用业务逻辑

选项2:提供AWS凭证

在此体系结构中,客户端应用程序接收临时AWS凭据,使其能够直接调用AWS服务(与您描述的体系结构相匹配)

好处是该应用程序可以直接访问AWS服务,如AmazonS3。缺点是,您需要非常严格地限制授予它们的权限,以确保它们只访问所需的资源

一些服务通过允许IAM权限上的条件来简化此操作,这些条件可以限制可访问的资源,例如通过标记或其他标识符

但是,基于以下情况,亚马逊Rekognion没有此类功能:

Rekognion没有可在策略语句的条件元素中使用的特定于服务的上下文键

我认为您可以通过在IAM策略中提供
资源
字符串来限制调用,该字符串可以限制它们进行某些调用的能力(例如
DeleteFaces
),以便仅针对特定的
集合进行调用

但是,请注意,
list
调用,如
ListCollections
,要么完全允许,要么根本不允许。无法限制返回的集合列表。(这与大多数AWS服务相同,例如列出EC2实例。)


因此,在使用这种提供凭据的方法时,您应该非常小心授予应用程序的权限。

这些是您公司的“用户”员工还是应用程序的用户?这些用户是如何获得凭据以调用您的AWS帐户的?@JohnRotenstein他们是我的应用程序的用户。他们获取凭据的方式:应用程序-->我的后端服务器--(GetOpenIdTokenForDeveloperIdentity)-->AWS Cognito,它将
令牌
标识ID
返回给用户。然后从应用程序中,我请求
Rekognition
列出/添加/。。。集合/面。我的型号正确吗?AWS Cognito的位置正确吗?很抱歉,我必须问这些问题,因为我对AWSFYI完全陌生:我的应用程序是用iOS编写的,用Swift编写的,并且遵循以下指导原则:,
iOS-Swift
部分。感谢您的快速回复。选项2中的总结(也是我的方法):没有办法限制用户之间的资源(如集合)?i、 e.用户仍然可以看到不是她创建的资源?我想我可以在编程中做一些限制(即控制“谁将看到什么”),但我想首先与您确认是否无法在AWS端进行设置。AWS中的所有资源都属于创建它们的帐户。在任何AWS服务中都没有用户拥有资源的概念。拥有资源的是AWS帐户。通过IAM策略授予对创建/查看/修改/删除资源的访问限制。默认情况下,用户没有权限。他们只能做IAM政策允许他们做的事情。但是,策略因其允许的细粒度控制量而异。