AWS Lambda. Можно ли ограничить роль IAM для создания функций с определенным префиксом? - PullRequest
0 голосов
/ 28 июня 2019

Я добавляю роль IAM для поставщика SaaS, у которого есть доступ только для чтения, за исключением возможности создавать функции Lambda.

Первоначально они запрашивали широкий набор разрешений для Lambda:

"Statement": [
{
  "Action": [
    "lambda:CreateFunction",
    "lambda:DeleteFunction",
    "lambda:InvokeFunction",
    "lambda:UpdateFunctionCode",
    "lambda:UpdateFunctionConfiguration"
  ],
  "Effect": "Allow",
  "Resource": "*"
},

Мне неудобно разрешать такой доступ через ресурсы, которыми они не владеют, то есть наши важные для бизнеса функции.

Когда я поднял этот вопрос у них, они сказали, что всем их функциям будет предшествовать название их компании (например, company_prefix), поэтому я подумал, что смогу сделать это:

...
"Resource": "arn:aws:lambda::<account>:function:company_prefix*"
...

Но просмотр политики в редакторе консоли наводит на мысль о проблеме: IAM Policy Editor

Разве это не сработает? Можно ли таким образом ограничить права доступа к лямбда-функции?

1 Ответ

3 голосов
/ 28 июня 2019

Да, IAM поддерживает разрешения на уровне ресурсов для Lambda.

Я протестировал вариант вашей политики для нового пользователя IAM.Для имен лямбда-функций, соответствующих шаблону, я был успешным.Для несоответствующих имен функций я получил AccessDeniedException.

Я не тестировал все перечисленные действия Lambda (просто GetFunctionConfiguration, потому что это было просто проверить), поэтому, пожалуйста, проверьте, что это делает то, что вам нужно.

Примечание: при тестировании вам необходимо набраться терпения, поскольку изменения политики IAM не всегда вступают в силу немедленно.

...