我希望能够将基于时间的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令牌。任何见解都将不胜感激。
您是否尝试过GetSessionToken,请参阅此
样品请求:
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetSessionToken
&DurationSeconds=3600
&SerialNumber=YourMFADeviceSerialNumber
&TokenCode=123456
&AUTHPARAMS
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进行身份验证。
临时凭证