AWS IAM:AssumeRole与GetSessionToken

时间:2018-07-10 02:38:53

标签: amazon-web-services amazon-iam aws-iam

我正在尝试生成临时凭证访问密钥和秘密密钥。我用过承担角色。描述说它生成访问密钥和秘密密钥。但是GetSessionTokenResult也可以生成访问密钥和秘密密钥。那么,假设角色的用途是什么?

@IBAction func audioSliderUpdated(_ sender: Any) {
}

更早地使用acceptRole时显示错误=>资源角色上的aws:iam :: user / admin不是sts:assumeRole aws:iam :: role / role_id 通过在role_id的受信任关系中添加aws:iam :: user / admin,就可以了。

如果我要注释掉AccessRole及其另一个称为class的类。我可以生成访问密钥和秘密密钥。使用承担角色的目的是什么?

1 个答案:

答案 0 :(得分:5)

several methods to obtain temporary credentials,具体取决于您的要求:

  • GetSessionToken根据您自己的IAM用户为您提供了一组临时凭据。这通常用于激活多重身份验证(MFA),或在您要限制访问权限的情况下(例如,授予对将数据上传/下载到S3的应用程序的访问权限,但不提供任何非授权访问权限的情况)创建一些范围缩小的凭据。 -S3访问)。新凭据最多具有与您相同的权限(并且不再拥有)。
  • AssumeRole用于获取具有完全不同的权限集的凭据。例如,您可能没有访问S3的权限,但是您可能具有承担“ S3访问”角色的权限。然后返回的凭据使您可以临时访问S3。另一个示例是提供对管理员权限的访问权限-而不是总是使用具有管理员权限的帐户,临时承担管理员角色,执行管理员活动,然后返回使用普通凭据。与始终使用管理员级别的访问相比,出错的可能性更少。

此外,AssumeRole可用于获得跨帐户访问权限。例如,帐户A中的用户可以在帐户B中承担一个角色,该角色将授予对帐户B中资源的访问权限。这无法通过GetSessionToken进行。

我总是觉得这篇文章对解释这些区别很有帮助:Understanding the API Options for Securely Delegating Access to Your AWS Account | AWS Security Blog