Мне нужно добавить нового пользователя AWS для использования лямбда-функции, но я не хочу, чтобы он удалял или изменял лямбда-функции, созданные другими пользователями. Если я не смогу показать ему и другие существующие лямбда-функции, это будет самое идеальное решение. Как мне настроить это в политике IAM?
Согласно Документы AWS вам понадобится политика IAM, подобная следующей. Замените соответствующие значения AWS.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PermissionToInvoke",
"Effect": "Allow",
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:AWS_REGION:AWS_ACCOUNT_ID:function:LAMBDA_FUNCTION_NAME"
}
]
}
Я видел, как их документы продолжают говорить, что вы не можете использовать разрешения на уровне ресурсов, но я считаю, что это ошибка. Вы можете увидеть окончательный ответ в записи таблицы для Invoke
в столбце «Ресурс» в Разрешения Lambda API: Справочник по действиям, ресурсам и условиям. В последнее время я также использовал эти разрешения в проектах.
В частности, Использование политик на основе идентификационных данных (политик IAM) для AWS Lambda в Шаг 4, кажется, по-прежнему подразумевает, что вы должны использовать подстановочный знак. Конечно, AWS может придерживаться мнения, что подстановочные знаки тоже работают. Я действительно думаю, что это вводит людей в заблуждение. Возможны и другие случаи.
Имена лямбда-функций теперь перечислены в документе ARN и пространства имен: docs.aws.amazon.com/general/latest/gr/….
@dmulter Извините, что я не могу четко сформулировать вопрос. Я хотел бы, чтобы каждый пользователь мог изменять только созданную им лямбда-функцию. Единственное, что я могу думать о вашем решении, это то, что мне нужно сначала создать функцию, а затем назначить ее пользователю. Я прав?
@ simonhb1990 Вы, конечно, можете добавлять в политику любые действия, которые вам нравятся, в зависимости от того, что вы хотите разрешить. Похоже, вам нужны как минимум DeleteFunction
и UpdateFunctionCode
. Вы можете увидеть, какие другие действия разрешены для каждой функции, из Разрешения Lambda API: Справочник по действиям, ресурсам и условиям, который я привел выше. Вы можете без проблем создать политику перед функцией.
На случай, если AWS анонсирует что-то новое, есть ли у вас ссылка на ресурсы AWS IAM Lambda на уровне имени функции?