首页 > 解决方案 > AWS IAM 角色能否用于在 AWS 之外运行的应用程序?

问题描述

所以我认为最简单的解决方案是我的问题是将 AWS 用于一切,但我想了解什么是可能的:

我了解 IAM 角色可以与 EC2 或 Lambda 等 AWS 服务相关联,以便在该服务中运行的应用程序/函数可以检索凭证以签署对其他 AWS 服务的 API 请求。我有一个以前在 Heroku 上运行并使用 Amazon S3 的应用程序。目前,我为此应用程序设置了一个 IAM 用户,该用户使用与 IAM 用户帐户关联的访问密钥签署对 AWS API 的请求。我认为最佳实践是使用 IAM 角色而不是用户进行应用程序源代码 AWS API 调用,但是是否可以为托管在 AWS 之外的应用程序进行设置,或者我需要将应用程序迁移到 AWS EC2为了使用 IAM 角色?

标签: amazon-web-servicesauthenticationherokuamazon-iam

解决方案


托管应用程序的位置无关紧要,但要承担 IAM 角色,您将需要 IAM 凭证(鸡和蛋)。通常,您会为您的应用程序设计一种安全的方式来检索这些基本凭据。这是在 AWS 之外运行计算的一个缺点(因为它不能自动承担 IAM 角色)。

一种选择是创建一个 IAM 用户,其唯一权限是能够承担给定的 IAM 角色。在 AWS 之外,将这些 IAM 用户凭证安全地提供给您的应用程序,并让应用程序承担 IAM 角色,理想情况下,ExternalId它本身也可以由您的应用程序安全地存储和检索。此外,您可以管理对 IAM 角色的访问,例如定义哪些委托人可以担任该角色以及在哪些条件下。


推荐阅读