我正在设置对AWS控制台的SAML联合访问。但是,我们的一些用户需要永久性的API访问密钥才能与不支持STS临时凭证的第三方工具一起使用。我希望这些密钥可以自助服务,因此对运营团队没有太大的管理负担。
我在SAML请求中将目录用户名传递为awsRoleSessionName:
<AttributeDefinition id="awsRoleSessionName" xsi:type="Simple" sourceAttributeID="sAMAccountName">
<Dependency ref="myLDAP" />
<AttributeEncoder xsi:type="SAML2String" name="https://aws.amazon.com/SAML/Attributes/RoleSessionName" friendlyName="RoleSessionName" />
</AttributeDefinition>
理想情况下,我想使用这样的策略来允许用户管理与其用户名匹配的IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListAccount*",
"iam:ListUsers"
],
"Resource": "arn:aws:iam::{{account_id}}:user/*"
},
{
"Effect": "Allow",
"Action": [
"iam:*LoginProfile",
"iam:*AccessKey*",
"iam:*SSHPublicKey*",
"iam:GetAccountSummary",
"iam:GetAccountPasswordPolicy"
],
"Resource": "arn:aws:iam::{{account_id}}:user/${aws:userid}"
}
]
}
但是,“ aws:userid”变量也包含角色ID(https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse)。
可用的各种SAML属性不适用于权限策略,而只能用于信任关系。
有什么方法可以将访问密钥设置为SAML联盟用户的自助服务?