具有自定义授权者的AWS API网关安全性& AWS服务集成

时间:2017-09-05 23:47:27

标签: amazon-web-services security amazon-s3 aws-api-gateway amazon-iam

使用API​​网关代理AWS服务(如S3)时效果很好。

然而,似乎安全性是事后的想法。用于AWS Service集成的执行角色似乎在使用客户授权程序时保持打开集成服务。

API网关中的自定义授权程序返回principalId(例如userId)和IAM策略文档。如何为服务集成的执行角色构建IAM策略,这需要例如userId / principalId位于S3对象的路径中。

即。使用自定义授权器+ S3集成如何保护对象只能访问其中principalId是对象标记或路径的一部分的特定密钥空间? http://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.htmlhttp://docs.aws.amazon.com/AmazonCloudWatch/latest/events/policy-keys-cwe.html

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。以下是我用路径解决它的方法。

假设user1需要访问他们的数据,他们的空间是

domain/user1/object1
domain/user1/object2

在自定义授权程序中,您可以返回用户只能访问domain / user1 / *的策略。您可以使用所需的任何模式,并将存储组织到您想要的任何命名空间。如果要为多个用户展开名称空间,可以访问

domain/user1/*
domain/managers/*

APIGateway将负责其余部分。如果用户尝试访问除上述URL路径之外的任何内容,则用户将获得403禁止。

遵循AWS的文档并完美运行,

http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

另外,如果您需要身份验证,我会推荐CloudFront签名的URL和Cognito。