Usar limites de permissões para aplicativos do AWS Lambda - AWS Lambda

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á.

Usar limites de permissões para aplicativos do AWS Lambda

Quando você cria uma aplicação no console do AWS Lambda, o Lambda aplica um limite de permissões às funções do IAM da aplicação. O limite de permissões limita o escopo da função de execução criada pelo modelo da aplicação para cada uma de suas funções e quaisquer papéis que sejam adicionados ao modelo. O limite de permissões impede que os usuários com acesso de gravação ao repositório Git do aplicativo escalem as permissões do aplicativo além do escopo de seus próprios recursos.

Os modelos de aplicação no console do Lambda incluem uma propriedade global que aplica um limiar de permissões a todas as funções que eles criam.

Globals: Function: PermissionsBoundary: !Sub 'arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/${AppId}-${AWS::Region}-PermissionsBoundary'

O limiar limita as permissões dos papéis das funções. É possível adicionar permissões ao papel de execução de uma função no modelo, mas essa permissão só será efetiva se também for permitida pelo limiar de permissões. A função que o AWS CloudFormation assume para implantar o aplicativo aplica a utilização do limiar de permissões. Essa função só tem permissão para criar e passar funções que tenham o limiar de permissões do aplicativo anexado.

Por padrão, o limiar de permissões de um aplicativo permite que as funções executem ações nos recursos do aplicativo. Por exemplo, se a aplicação incluir uma tabela do Amazon DynamoDB, o limiar permitirá acesso a qualquer ação de API que possa ser restrita para operar em tabelas específicas com permissões em nível de recurso. Você só pode usar ações que não suportam permissões em nível de recurso se elas forem especificamente permitidas no limiar. Isso inclui Amazon CloudWatch Logs e ações de AWS X-Ray API para registro e rastreamento.

exemplo limite de permissões
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "*" ], "Resource": [ "arn:aws:lambda:us-east-2:123456789012:function:my-app-getAllItemsFunction-*", "arn:aws:lambda:us-east-2:123456789012:function:my-app-getByIdFunction-*", "arn:aws:lambda:us-east-2:123456789012:function:my-app-putItemFunction-*", "arn:aws:dynamodb:us-east-1:123456789012:table/my-app-SampleTable-*" ], "Effect": "Allow", "Sid": "StackResources" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:PutLogEvents", "xray:Put*" ], "Resource": "*", "Effect": "Allow", "Sid": "StaticPermissions" }, ... ] }

Para acessar outros recursos ou ações de API, você ou um administrador deve expandir o limiar de permissões para incluir esses recursos. Você também pode precisar atualizar a função de execução ou a função de implantação de um aplicativo para permitir o uso de ações adicionais.

  • Limiar de permissões: estenda o limite de permissões da aplicação ao adicionar recursos à aplicação ou se a função de execução precisar de acesso a mais ações. No IAM, adicione recursos ao limiar para permitir o uso de ações de API que oferecem suporte a permissões em nível de recurso no tipo desse recurso. Para ações que não suportam permissões em nível de recurso, adicione-as em uma instrução que não tem escopo para nenhum recurso.

  • Função de execução: estenda a função de execução de uma função quando ela precisa usar ações adicionais. No modelo de aplicativo, adicione políticas à função de execução. A interseção de permissões no limiar e função de execução é concedida à função.

  • Função de implantação: estenda a função de implantação da aplicação quando ela precisar de permissões adicionais para criar ou configurar recursos. No IAM, adicione políticas à função de implantação do aplicativo. A função de implantação precisa das mesmas permissões de usuário que você precisa para implantar ou atualizar um aplicativo no AWS CloudFormation.

Para obter um tutorial que acompanha a adição de recursos a um aplicativo e estendendo suas permissões, consulte Criar uma aplicação com entrega contínua no console do Lambda.

Para obter mais informações sobre limites de permissões, consulte Limites de permissões para identidades do IAM no Manual do usuário do IAM.