Como gerenciar permissões com a função AWS Lambda

Como gerenciar permissões com a função AWS Lambda
“Quando uma função lambda é criada, uma função de IAM padrão é criada e anexada a ela. Este papel de IAM é chamado de função de execução e tem permissões limitadas para colocar os logs Lambda nos logs do CloudWatch. Além disso, nenhum outro serviço da AWS tem permissão para invocar a função Lambda por padrão. Para gerenciar essas permissões, você precisa atualizar a função do IAM ou a política baseada em recursos.

A função do IAM permite que a função Lambda acesse outros serviços da AWS na conta da AWS. Por outro lado, a política baseada em recursos é anexada à função Lambda para permitir que outros serviços da AWS dentro da mesma ou de contas diferentes acessem a função Lambda. Neste blog, veremos como podemos gerenciar as permissões Lambda, aplicando o IAM e as políticas baseadas em recursos.”

Gerenciando permissões usando o papel do IAM

Por padrão, a função do IAM anexada à função Lambda tem acesso apenas para colocar os logs nos logs do CloudWatch. Você sempre pode atualizar a função de execução para adicionar mais permissões a ele. Se você deseja acessar o balde S3 ou deseja executar alguma ação em um objeto S3 Bucket, você precisa do Bucket S3 e do Acesso ao Nível de Objeto S3 na função de execução Lambda. Nesta seção do blog, atualizaremos as permissões de função do IAM para permitir que Lambda interaja com o balde S3.

Primeiro de tudo, navegue até o console da AWS Lambda e clique na função Lambda que você deseja atualizar a função de execução para. Clique no configuração guia no console da função lambda. Depois do painel lateral esquerdo, selecione o Permissões guia, e mostrará a função de execução de Lambda lá.

Na função do IAM, você pode adicionar uma política gerenciada pelo AWS ou gerenciada pelo cliente, ou pode adicionar uma política embutida para conceder à função Lambda as permissões necessárias para interagir com outros serviços da AWS.

Gerenciando permissão usando a política baseada em recursos

As políticas baseadas em recursos para a função Lambda fornecem permissões para outros serviços da AWS na mesma conta da AWS ou AWS para acessar a função Lambda. Por padrão, não há política baseada em recursos automaticamente anexada à função Lambda, para que nenhum serviço da AWS possa acessar a função Lambda. Você pode adicionar e remover as políticas baseadas em recursos a qualquer momento à sua função Lambda. Neste blog, adicionaremos uma política baseada em recursos à função Lambda, que permite ao S3 invocar a função Lambda.

Para adicionar uma política baseada em recursos à função Lambda, primeiro, clique na função Lambda e vá para o permissões guia da função lambda.

No permissões guia, role para baixo e você encontrará uma seção para políticas baseadas em recursos. Clique no Adicione permissões botão no Declarações de políticas baseadas em recursos Seção do console para adicionar uma nova política baseada em recursos à função Lambda.

Na política baseada em recursos, existem três tipos de recursos que você pode conceder permissão para a função Lambda.

  • Conceder permissão aos serviços da AWS
  • Conceder permissão a outra conta da AWS
  • Concessão de permissões para invocar a função lambda via URL

Para esta demonstração, configuraremos um balde S3 da mesma conta para invocar a função Lambda sempre que um novo objeto S3 for carregado. Para esta configuração, selecione o Serviço da AWS e então selecione o S3 como serviço. Digite o ID da conta da AWS no qual o balde S3 existe, eu.e., seu próprio ID da conta AWS. Depois de fornecer o ID da conta, forneça o ARN do balde S3, que terá permissão para invocar a função Lambda e depois selecionar Lambda: InvokeFunction por mais ação que vamos invocar a função lambda do balde S3.

Depois de adicionar todas essas informações, clique no botão Salvar para adicionar a política baseada em recursos à função Lambda. Você também pode dar uma olhada no formato JSON da política baseada em recursos anexada à função Lambda.

Da seção de política baseada em recursos no permissões guia, clique na política recém-criada baseada em recursos e exibirá a política no formato JSON.

Removendo a política baseada em recursos

Você pode remover a política baseada em recursos quando não precisar permitir que outros serviços da AWS acessem a função Lambda. Manter a política baseada em recursos anexada a uma função Lambda pode ser prejudicial à medida que concede a outros serviços da AWS acesso à função Lambda.

Para remover a política baseada em recursos, vá para o declarações baseadas em recursos seção do permissões aba. Selecione a política baseada em recursos que você deseja remover e clique em Excluir botão, e ele excluirá a política baseada em recursos da função Lambda.

Ele solicitará confirmação antes de remover a política baseada em recursos e você poderá confirmar a exclusão clicando no excluir botão.

Conclusão

Neste blog, estudamos como gerenciar a permissão com a função da AWS Lambda. Existem dois tipos de permissões que podem ser atribuídas a Lambda; Uma é as permissões baseadas em papéis Lambda IAM que permitem que a AWS Lambda acesse outros serviços da AWS, e o outro são permissões baseadas em recursos que permitem que outros serviços acessem a função Lambda. Neste blog, estudamos a diferença entre os dois tipos de políticas e vimos como poderíamos atualizar as duas políticas para conceder permissões.