AWS Lambda
Guia do desenvolvedor

Recursos e condições para ações do Lambda

Você pode restringir o escopo das permissões de um usuário especificando recursos e condições em uma política do IAM. Cada ação de API oferece suporte a uma combinação de tipos de condição e recurso que varia de acordo com o comportamento da ação.

Cada instrução de política do IAM concede permissão a uma ação realizada em um recurso. Quando a ação não atua em um recurso indicado, ou quando você concede permissão para executar a ação em todos os recursos, o valor do recurso na política é um curinga (*). Para muitas ações de API, restrinja os recursos que um usuário pode modificar especificando o Amazon Resource Name (ARN – Nome de recurso da Amazon) de um recurso ou um padrão de ARN correspondente a vários recursos.

Para restringir as permissões por recurso especifique o recurso por ARN.

Formato do ARN de recurso do Lambda

  • Função – arn:aws:lambda:us-west-2:123456789012:function:my-function

  • Versão da função – arn:aws:lambda:us-west-2:123456789012:function:my-function:1

  • Alias da função – arn:aws:lambda:us-west-2:123456789012:function:my-function:TEST

  • Mapeamento da fonte do evento – arn:aws:lambda:us-west-2:123456789012:event-source-mapping:fa123456-14a1-4fd2-9fec-83de64ad683de6d47

  • Camada – arn:aws:lambda:us-west-2:123456789012:layer:my-layer

  • Versão da camada – arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1

Por exemplo, a política a seguir permite que um usuário na conta 123456789012 invoque uma função chamada my-function na região Oeste dos EUA (Oregon).

exemplo Invocar uma política de função

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function" } ] }

Trata-se de um caso especial em que o identificador da ação (lambda:InvokeFunction) é diferente da operação da API (Invoke). Para outras ações, o identificador da ação é o nome da operação com o prefixo lambda:.

As condições são um elemento opcional da política que aplica lógica adicional para determinar se uma ação é permitida. Além de condições comuns compatíveis com todas as ações, o Lambda define os tipos de condição que você pode usar para restringir os valores dos parâmetros adicionais em algumas ações.

Por exemplo, a condição lambda:Principal permite restringir o serviço ou a conta para que um usuário pode conceder acesso de invocação em uma política baseada em recursos da função. A política a seguir permite que um usuário conceda permissão para que tópicos do SNS invoquem uma função chamada test.

exemplo Gerenciar permissões de política da função

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageFunctionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:test:*", "Condition": { "StringEquals": { "lambda:Principal": "sns.amazonaws.com" } } } ] }

A condição requer que o principal seja o Amazon SNS e não outro serviço ou outra conta. O padrão do recurso exige que o nome da função seja test e inclua um número de versão ou alias. Por exemplo, test:v1.

Para obter mais informações sobre recursos e condições do Lambda e outros serviços da AWS, consulte Ações, recursos e chaves de condição no Guia do usuário do IAM.

Funções

As ações que operam em uma função podem ser restritas a uma função específica pelo ARN da função, da versão ou do alias, conforme descrito na tabela a seguir. As ações que não oferecem suporte a restrições de recurso só podem ser concedidas a todos os recursos (*).

Funções

Ação Recurso Condição

AddPermission

RemovePermission

Função

Versão da função

Alias da função

lambda:Principal

Invoke

Permissão: lambda:InvokeFunction

Função

Versão da função

Alias da função

Nenhum

CreateFunction

UpdateFunctionConfiguration

Função

lambda:Layer

CreateAlias

DeleteAlias

DeleteFunction

DeleteFunctionConcurrency

GetAlias

GetFunction

GetFunctionConfiguration

GetPolicy

ListAliases

ListVersionsByFunction

PublishVersion

PutFunctionConcurrency

UpdateAlias

UpdateFunctionCode

Função

Nenhum

GetAccountSettings

ListFunctions

ListTags

TagResource

UntagResource

*

Nenhum

Mapeamentos da fonte do evento

Para mapeamentos da fonte do evento, permissões para excluir e atualizar podem ser restritas a uma fonte de evento específica. A condição lambda:FunctionArn permite restringir quais funções um usuário pode configurar uma fonte de evento para invocar.

Para essas ações, o recurso é o mapeamento da fonte do evento, portanto, o Lambda fornece uma condição que permite restringir permissões com base na função que o mapeamento da fonte do evento invoca.

Mapeamentos da fonte do evento

Ação Recurso Condição

DeleteEventSourceMapping

UpdateEventSourceMapping

Mapeamento de origem do evento

lambda:FunctionArn

CreateEventSourceMapping

*

lambda:FunctionArn

GetEventSourceMapping

ListEventSourceMappings

*

Nenhum

Camadas

Ações de camadas permitem restringir as camadas que um usuário pode gerenciar ou usar com uma função. Ações relacionadas a permissões e uso de camadas atuam em uma versão de uma camada, enquanto PublishLayerVersion atua no nome de uma camada. Use ambos com curingas para restringir as camadas com as quais um usuário pode trabalhar por nome.