首页 > 解决方案 > IAM角色是否只适用于发起通信的资源?

问题描述

我试图正确理解 IAM 角色的含义。我读得越多,我就越困惑。我也看过这个链接: https ://stackoverflow.com/questions/51201214/use-of-security-groups-vs-role/51203267#:~:text=Security%20groups%20are%20more%20about,firewall% 20that%20controls%20the%20traffic.&text=IAM%20Roles%20are%20more%20used,actions%20and%20resources%20in%20AWS

据我了解:

  1. IAM角色是否只适用于发起通信的资源?通信目标可以限制使用 NACL、安全组、子网等。但我认为并非如此 - S3 存储桶也可以附加 IAM 策略。所以我很困惑什么时候考虑 IAM 角色,什么时候不考虑。
  2. 如果某个外部资源(不在 AWS 内)想要访问 AWS 内的服务(可能是 Web 应用程序)怎么办?假设它是一个公共 Web 应用程序(无身份验证)。如果是这样,我们是否必须考虑 IAM 角色?我知道有几种方法可以部署 Web 应用程序 - 使用 AWS Amplify 或 S3 存储桶或编写自己的应用程序等。

标签: amazon-web-servicesamazon-iam

解决方案


请阅读并通读https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html,IAM一个困难的话题,需要大量练习、阅读和使用它才能完全理解它。

  1. 正如链接答案所暗示的,NACL、安全组、子网在不同级别上运行,与 IAM 无关。S3 可以有一个存储桶策略,它与您的角色必须计算是否允许操作的策略“组合”

  2. 如果您公开托管端点,您可以禁用 IAM,例如在 ApiGateway 或 CloudFront => S3 中。在内部,ApiGateway 与底层 lambda 或 CloudFront 与 S3 交互的权限再次通过 IAM 处理,但外部用户不可见


推荐阅读