2015-10-06 58 views
1

我的应用程序需要其用户的AWS账户ID才能与他们共享AMI和其他资料。是否可以证明AWS账户ID属于某人?

我希望能够证明此用户实际上是该AWS账户ID的所有者。

有没有办法做到这一点?

+0

对于您的使用情况,是否有人证明他们*有权访问该帐户ID?细微的差别是:他们没有证明帐户的所有权,他们只是证明他们拥有该帐户内的某些权限的凭据。在很多情况下,它是相同的。这足够吗?除此之外,如果你真的需要*所有权证明*(而不是证明访问权限),我不认为有办法做到这一点...... –

+0

@brunoreis也许....你是说有一个证明某人有权访问该帐户的方式? –

回答

3

您可以通过编程的方式确定您的用户对他们提供的帐户ID访问的方法之一是要求他们在帐户中执行某些操作,以便您验证该帐户。

可能是最典型的(非常安全的)方法可以做到这一个是:

  • 要求您的用户在他们的帐户创建一个IAM角色,为跨帐户访问和然后相信你的账户ID;这个角色可能有非常有限的访问策略(甚至根本没有权限)。确保生成一个唯一的外部ID以使其更安全并要求用户使用它。此外,他们应该使用您定义的角色名称,并且应该尝试使其相当唯一以避免与用户可能已经使用的其他角色发生冲突。然后

  • 您的应用程序使用你的用户,你定义的角色的名字,你定义的外部ID提供的账号,并尝试AssumeRole在他们的帐户

如果您AssumeRole操作成功,就意味着你的用户可以创建他们声称是所有者帐户的角色。

这可能只要你可以去。


最后一点。

我见过的其他解决方案包括要求用户创建一个IAM用户,生成AK/SK,然后给AK/SK,然后在他们的账户上运行一些API调用,使用AK/SK提供,以验证。 我非常不喜欢这个解决方案,因为它比上面的安全性要低得多。

+0

你可能是对的。我希望找到一种完全避免让用户像创建角色一样的需求的方式,因为我理解IAM和角色(我认为 - 部分无论如何),但是我怀疑IAM和角色对于那些不喜欢了解IAM和角色(我认为这是大多数使用AWS的人)。 –

+0

我想我感觉到你的痛苦...但是这可能是唯一的方法:要求用户执行一个动作 - 具有外部可观察的副作用 - 只是“所有者”(或代表所有者)将能够执行。与周围的许多服务类似,要求域名所有者添加TXT记录以确认所有权...... –

相关问题