Изменение разрешений, назначенных временным учетным данным, полученным из API федеративного токена, возможно только путем изменения разрешений пользователя IAM, который его создал. Этот пользователь не должен быть пользователем root, поскольку его разрешения не могут быть изменены.
Я бы, вероятно, использовал Шаг Функции для достижения этого:
- Определите количество необходимых политик. Например, есть четыре пользователя A, B, C и D, которые будут использовать временные учетные данные. Через 1 час B и C больше не будут иметь доступа к определенным ресурсам.
- Итак, нам нужны два пользователя IAM, один для группы A и B и один для группы B & C
- Создание пользователей IAM для каждой группы пользователей, определенных для временных учетных данных
- Создать лямбда-функцию
GenerateTmpCredentials
. Эта функция будет генерировать
временные учетные данные для каждой группы пользователей с использованием соответствующих учетных данных IAM
- Создать еще одну лямбда-функцию
ChangePolicy
. Эта функция создаст новый
политика для группы пользователей, где частичный доступ должен быть отменен и назначить его
пользователь IAM соответствующей группы пользователей
- Теперь подключите его в пошаговом рабочем процессе функций (конечный автомат)
См. Шаблон конечного автомата для описанного выше рабочего процесса
{
"StartAt": "GenerateTmpCredentials",
"States": {
"GenerateTmpCredentials": {
"Type": "Task",
"Resource": "<put arn of the GenerateTmpCredentials lambda>",
"Next": "WaitOneHour"
},
"WaitOneHour": {
"Type": "Wait",
"Seconds": 3600,
"Next": "ChangePolicy"
},
"ChangePolicy": {
"Type": "Task",
"Resource": "<put arn of the ChangePolicy lambda>",
"End": true
}
}
}
Вышеупомянутый рабочий процесс сначала вызовет функцию GenerateTmpCredentials, затем подождет 1 час и после этого вызовет функцию политики ChangePolicy.
Вы можете запустить конечный автомат, используя API-шлюз или любую другую лямбду, в зависимости от ваших требований.