使用 Iam 角色与 STS 的应用程序

Bad*_*dde 7 amazon-web-services amazon-iam aws-sts

我是 AWS 新手,试图理解这些概念,IAM 角色和 STS 之间有什么区别,何时使用应用程序中的哪个服务。任何人都可以解释一下吗

Ole*_*oha 9

简单来说,IAM 角色是一个文档,定义谁(您的应用程序、AWS 服务等)可以在哪些条件(服务特定条件列表,可选)下使用什么(API 调用列表)。角色由IAM 服务管理。

STS 是用于获取临时凭证的AWS服务。如果您想担任角色,您可以通过 STS 服务请求这些凭据。如果您的应用程序有权担任角色,IAM 服务将授予您该角色允许的权限(API 调用列表),并且STS 服务将返回您的凭据。

现在,考虑到上面的解释,“何时使用哪个”并不是一个完全正确的问题。但我理解你的想法是从哪里来的,我认为更好的问题是:“何时使用 STS 服务承担角色,何时不使用”。

根据经验,答案是,如果您的应用程序在 AWS(EC2、Elastic Beanstalk、Lambda 等)上运行,则直接使用角色,即将角色附加到实例。如果您的应用程序使用任何语言的 AWS SDK,它都会无缝地选择它。

如果您想在完全不同的帐户中执行某些操作,则例外。那么您需要直接使用STS服务来承担不同账户的角色。

如果您的负载在 AWS 外部运行,请使用 STS。

  • @BadriGadde 总而言之,您需要了解您**总是**调用 STS 来承担角色。以防万一当您在 EC2 上运行应用程序时,AWS SDK 会在后台为您执行此操作。如果您在 AWS 外部运行或跨账户运行,则需要明确执行此操作。 (2认同)