As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
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 AWS Identity and Access Management (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, restrinja os recursos que um usuário pode modificar especificando o nome do recurso da Amazon (ARN) 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 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 da AWS 123456789012
invoque uma função denominada my-function
na região da AWS Oeste dos EUA (Oregon).
exemplo invocar 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:
.
Seções
Condições de políticas
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 de 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 possa conceder acesso de invocação em uma política baseada em recursos de uma função. A política a seguir permite que um usuário conceda permissão para que tópicos do Amazon Simple Notification Service (Amazon SNS) invoquem uma função chamada test
.
exemplo gerenciar permissões de política de 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 para serviços da AWS. na Referência a autorizações de serviços.
Nomes de recursos de função
Você referencia uma função Lambda em uma instrução de política usando um nome do recurso da Amazon (ARN). O formato de um ARN de função depende se você estiver referenciando toda a função (não qualificado), a versão de uma função ou um alias (qualificado).
Ao fazer chamadas de API do Lambda, os usuários podem especificar uma versão ou alias passando um ARN de versão ou um ARN de alias no parâmtro GetFunction do FunctionName
ou definindo um valor no parâmetro GetFunction do Qualifier
. O Lambda toma decisões de autorização comparando o elemento de recurso na política do IAM com o FunctionName
e Qualifier
transmitido nas chamadas de API. Se houver incompatibilidade, o Lambda negará a solicitação.
Para permitir ou negar uma ação em sua função, é necessário usar os tipos de ARN de função corretos na declaração de política para obter os resultados esperados. Por exemplo, se sua política referenciar o ARN não qualificado, o Lambda aceitará solicitações que referenciam o ARN não qualificado, mas negará solicitações que referenciam um ARN qualificado.
nota
Você não pode usar um caractere curinga (*) para encontrar o valor correspondente ao ID da conta. Para obter mais informações sobre a sintaxe aceita, consulte Referência a políticas JSON do IAM, no Guia do usuário do IAM.
exemplo permitir invocação de um ARN não qualificado
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction"
} ] }
Se sua política referenciar um ARN qualificado específico, o Lambda aceitará solicitações que referenciam esse ARN, mas negará solicitações que referenciam o ARN não qualificado ou outro ARN qualificado, por exemplo, myFunction:2
.
exemplo permitir invocação de um ARN qualificado específico
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1"
} ] }
Se sua política referenciar qualquer ARN qualificado usando :*
, o Lambda aceitará qualquer ARN qualificado, mas negará solicitações que referenciem o ARN não qualificado.
exemplo permitir invocação de qualquer ARN qualificado
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*"
} ] }
Se sua política referenciar qualquer ARN usando *
, o Lambda aceitará qualquer ARN qualificado ou não qualificado.
exemplo permitir invocação de qualquer ARN qualificado ou não qualificado
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction*"
} ] }
Ações de função
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. Ações que não oferecem suporte a restrições de recursos apenas podem ser concedidas a todos os recursos (*
).
Ações de função | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ação | Recurso | Condição | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função Versão da função Alias da função |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Permissão: |
Função Versão da função Alias da função |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteFunctionCodeSigningConfig |
Função |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função Alias da função |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteFunctionEventInvokeConfig |
Função |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteProvisionedConcurrencyConfig |
Alias da função Versão da função |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nenhum |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Função |
|
Ações de mapeamento da fonte de eventos
Para mapeamentos de origens de eventos, você pode restringir permissões para excluir e atualizar a uma origem 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.
Ações de mapeamento da fonte de eventos | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ação | Recurso | Condição | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mapeamento de origem do evento |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nenhum |
Ações de camada
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.
nota
A ação GetLayerVersion também abrange GetLayerVersionByArn. O Lambda não oferece suporte paraGetLayerVersionByArn
como uma ação do IAM.
Ações de camada | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ação | Recurso | Condição | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versão da camada |
Nenhum | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Camada |
Nenhum | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nenhum |