Я настраиваю федеративный доступ SAML к консоли AWS. Однако некоторым нашим пользователям необходимы постоянные ключи доступа API для использования со сторонними инструментами, которые не поддерживают временные учетные данные STS. Мне бы хотелось, чтобы эти ключи были самообслуживаемыми, чтобы не было больших трудностей для администратора в команде ops.
Я передаю имя пользователя каталога в запросе 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» также содержит идентификатор роли (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse).
Различные доступные атрибуты SAML не работают с политиками разрешений, а только с доверительными отношениями.
Можно ли как-то настроить ключи доступа для самообслуживания для пользователей федерации SAML?