2017-10-20 44 views
-1

我们正在建立一个SAAS网站。某些功能要求我们用户的AWS服务通过我们的网站进行操作。 用户可能会也可能不会选择这些功能,但如果他们愿意,他们应该能够授予我们某些权限。我们的网站拥有自己的认证机制。从我们的网站集成AWS,服务

问:

1)哪些行业在这些情况下做AWS整合的最佳做法?

2)我们在aws.amazon.com上反驳了这些文章。我们何时使用'IAM用户的角色'与'角色的身份联合选项'?

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html

3)“授予的IAM角色”使用AWS,对我们的产品使用AWS服务之前的步骤是通过我们认为是用户体验的缺点。这是不可避免的吗?

感谢, 斯利拉姆

+2

我认为这个问题是太多的东西,你应该聘请一个AWS SA您的问题。 –

+1

这是一个解决的问题。了解其他SAAS提供商如何执行此操作,例如:https://support.cloudcheckr.com/cross-account-roles/。 – jarmod

回答

0

1 - 从你的用户,你需要操作你的SAAS什么唯一的请求访问。它降低了您被攻破和您的客户受到影响的风险。例如,如果您只需要只读访问EC2,则只请求只读访问。

要运营您的客户AWS账户,您不仅需要创建用户和角色。要进行API调用,客户必须生成一个访问密钥和密钥供您使用。那就是你的网站将用它代表他们与AWS通信。这基本上只是一个私钥,所以就安全最佳实践而言,您需要像处理任何非常敏感的资源一样对待它。在s3中存储这样的凭据是一个选项和/或DynamoDB。

2 - 为联邦 作用为当有人登录到使用从外部AWS(SAML/SSO)的外部身份提供凭证AWS。你不需要这个;客户不会登录到您的AWS账户,也不会登录他们的账户。您需要的角色是可选的。您的客户可以创建角色,为其添加权限,然后将角色附加到用户并将该用户授予您。他们也可以直接创建用户并将权限直接授予用户,但角色方法是更好的做法。 您真正需要了解的是您需要访问哪些AWS资源以及您想如何处理这些资源。从那里,有一个该资源所需的权限列表。您必须向您的客户发送关于如何 创建用户的指示, 创建角色,附加所需的权限 ,然后生成供您使用的API密钥。

3 - 角色是没有必要的,其可选的。您需要的是您的客户创建一个角色,为您需要访问的每个AWS服务授予权限,然后为您授予访问权限,然后生成密钥供您在API调用中使用。但总体而言,用户体验仍然相同。如果您的目标客户是常规的AWS客户,这对他们来说很容易,但我怀疑经常的AWS客户需要其他人来管理他们的账户。

如果你采取最干净的方法,角色分配是不可避免的。

更新

见JamieStarke下面的评论。为您的客户提供更简单的方法,更安全的做法是让他们为您的AWS账户分配角色,因此不需要密钥交换。如果您不使用AWS作为您的核心基础架构,则可以打开一个帐户,并让他们将角色分配给该帐户。无论采用哪种方法,都不需要与您和客户交换凭证。

http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

+1

*“要操作您的客户AWS账户,您不仅需要创建用户和角色,还需要更多。”*请证明这一点,并声明。只有一个角色应该是必要的。当你想在其主持下工作时,你就会假设它。 –

+0

@ Michael-sqlbot我已经在下面的句子中做了。 –

+1

我倾向于同意迈克尔这一点。我在业界看到的最佳做法不是使用长期凭证生成另一个访问密钥,而是让客户创建一个您认为的跨账户访问角色,从而为您提供该角色的权限。我处理任何凭据,让我可以访问角色,客户可以决定该角色可以执行的操作。 –