使用自定义授权商和AWS服务集成的AWS API网关安全性
使用API网关代理AWS服务(例如S3)效果很好。使用自定义授权商和AWS服务集成的AWS API网关安全性
然而,似乎安全是事后才想到的。用于AWS服务集成的执行角色似乎在使用客户授权人时留下了综合服务。
API网关中的自定义授权程序返回principalId
(例如userId)和IAM策略文档。如何为服务集成的执行角色构建一个IAM策略,这需要例如将userId/principalId放在S3对象的路径中。
I.e.使用自定义授权人+ S3集成如何将对象访问权限仅保留在principalId是对象标记或路径的一部分的特定密钥空间中? http://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html或http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/policy-keys-cwe.html
我遇到了同样的问题。这是我如何用路径解决它。
假设USER1需要访问他们的数据和他们的空间是
domain/user1/object1
domain/user1/object2
在自定义授权者可以返回用户可以访问策略仅域/用户1/*。您可以使用任何您想要的模式,并将存储组织到您想要的任何名称空间。如果要为多个用户扩展命名空间,则可以访问
domain/user1/*
domain/managers/*
并且APIGateway将负责其余部分。如果用户尝试访问除上述URL路径之外的任何内容,则用户将被禁止403。
其次从AWS文档和完美的作品,
http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html
另外,如果你想验证我会建议CloudFront的标识的URL和Cognito。