0

我希望能够将基于时间的 api 令牌分配给非管理员 AWS 用户,从而为该用户提供对所有 AWS 服务的临时管理员权限。

我为什么要这个?因为当我在 AWS 上使用我的个人帐户进行开发时,我希望能够拥有对每项服务的管理员访问权限,但我不希望在我的 .aws/credentials 文件中有一对明文不朽的管理员凭据。因此,我希望能够担任 IAM 角色,将用户提升为管理员并使用 STS 分配基于时间的 API 令牌。

在工作中,我们通过 SAML 服务器使用联合,因此无论用户具有什么角色:开发、管理员等,都为用户提供基于时间的访问权限,但我不想为了有时间而设置所有这些 -基于 API 令牌。我已经阅读了 AWS 文档并在 #aws 中对此进行了讨论,到目前为止,我的回应是制定一个硬编码时间结束的 IAM 信任策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "*",
        "Resource": "*",
        "Condition" : {"DateLessThan": {"aws:CurrentTime" : "2017-10-30T00:00:00Z"}}
    }
]
}

但我不想每次都手动硬编码和更新此策略,而宁愿使用 STS 分配基于时间的 API 令牌。任何见解将不胜感激。

4

2 回答 2

0

STS 和 IAM 角色:

1) 在 AWS 控制台中创建您的角色。

2) 使用 AWS CLI 为您颁发使用此角色的新凭证。您可以使用命令创建批处理脚本以简化执行它。

例子:

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/xaccounts3access --role-session-name s3-access-example

该命令的输出包含可用于向 AWS 进行身份验证的访问密钥、秘密密钥和会话令牌。

临时凭证

于 2017-10-17T17:47:42.610 回答
0

您是否尝试过GetSessionToken,请参阅

样品要求:

https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetSessionToken
&DurationSeconds=3600
&SerialNumber=YourMFADeviceSerialNumber
&TokenCode=123456
&AUTHPARAMS
于 2017-10-11T15:31:57.970 回答