Пользователь SAML Assumed-Role не авторизован для выполнения действий
Я использую OKTA в качестве нашего провайдера идентификации, который позволяет мне определять роли, которые пользователи могут использовать при входе в консоль.
Цель: иметь роль, которая позволяет пользователю входить в консоль и управлять только своими ключами доступа (список, создание, обновление, удаление).
Эта политика должна позволять текущему пользователю управлять своими собственными ключами, но я получаю эту ошибку, когда пытаюсь сделать что-либо кроме Списка ключей доступа
User: arn:aws:sts::[ACCOUNT-NUMBER]:assumed-role/AccessKeyManagement/[Logged In Username] is not authorized to perform: iam:CreateAccessKey on resource: user [Logged In Username]
Предоставлено, если я изменю ресурс на "*"
это будет работать, но пользователь может изменить другие ключи доступа к учетной записи.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole",
"sts:DecodeAuthorizationMessage",
"iam:ListAccountAliases",
"iam:ListUsers",
"sts:GetCallerIdentity",
"iam:ListAccessKeys"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:DeleteAccessKey",
"iam:UpdateAccessKey",
"iam:CreateAccessKey"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
}
]
}
Ролевые доверительные отношения (на всякий случай, если это необходимо)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::[ACCOUNT-NUMBER]:saml-provider/OKTA"
},
"Action": [
"sts:AssumeRoleWithSAML",
"sts:AssumeRole"
],
"Condition": {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
}
}
]
}
Я в недоумении относительно того, что мне нужно сделать, чтобы разрешить "предполагаемой роли" текущего разрешения пользователя изменять ключи доступа.
1 ответ
Таким образом, с ролью IAM не связан постоянный ключ доступа, и вы получаете временные учетные данные (ключи доступа, секретный ключ и токен сеанса) при входе в консоль. Теперь "${aws:username}" преобразуется в имя пользователя IAM и не применяется к роли IAM. Таким образом, вы не можете управлять созданием ключей доступа для ролей IAM и не обязаны это делать.