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
我认为这个问题是太多的东西,你应该聘请一个AWS SA您的问题。 –
这是一个解决的问题。了解其他SAAS提供商如何执行此操作,例如:https://support.cloudcheckr.com/cross-account-roles/。 – jarmod