Regras personalizadas do Lambda (exemplo geral) - AWS Config

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

Regras personalizadas do Lambda (exemplo geral)

Faça o seguinte procedimento para criar uma regra do Lambda personalizada. Para criar uma regra personalizada do Lambda, primeiro você cria umaAWS Lambda função, que contém a lógica de avaliação da regra. Em seguida, você associa a função a uma regra personalizada do Lambda criada emAWS Config.

Importante

Como melhor prática de segurança ao permitir aAWS Config permissão para invocar sua função do Lambda, é altamente recomendável que você restrinja o acesso na política baseada em recursos do Lambda comsourceARN e/ousourceAccountId na solicitação de invocação. Para obter mais informações, consulte Prática recomendada de segurança para políticasAWS Lambda baseadas em recursos.

Criar uma função AWS Lambda para uma regra de configuração personalizada

Uma função Lambda é um código personalizado para oAWS Lambda qual você carrega e é invocada por eventos que são publicados nela por uma fonte de eventos. Se a função Lambda estiver associada a uma regra Config, aAWS Config invocará quando o gatilho da regra ocorrer. Em seguida, a função Lambda avalia as informações de configuração que são enviadasAWS Config e retorna os resultados da avaliação. Para obter mais informações sobre como as funções do Lambda, consulte a seção Fontes de funções e eventos no Manual doAWS Lambda desenvolvedor do.

Você pode usar uma linguagem de programação compatível comAWS Lambda para criar uma função Lambda para uma regra personalizada do Lambda. Para facilitar essa tarefa, você pode personalizar umAWS Lambda esquema ou reutilizar uma função de amostra do GitHub repositório deAWS Config regras.

Esquemas do AWS Lambda

O console do AWS Lambda fornece funções de exemplo, ou esquemas, que você pode personalizar ao adicionar sua própria avaliação lógica. Quando você cria uma função, você pode escolher um dos seguintes esquemas:

  • config-rule-change-triggered— Acionada quando suas configurações deAWS recursos mudam.

  • config-rule-periodic— Acionado na frequência que você escolher (por exemplo, a cada 24 horas).

AWS Config GitHub Repositório de regras

Um repositório público de exemplos de funções para regras personalizadas do Lambda está disponível no GitHub, um serviço de hospedagem e compartilhamento de código baseado na web. As funções de exemplo são desenvolvidas e recebem colaborações da comunidade AWS. Se você quiser usar um exemplo, pode copiar o código em uma nova função AWS Lambda. Para exibir o repositório, consulte https://github.com/awslabs/aws-config-rules/.

Para criar a função para sua regra personalizada
  1. Faça login no AWS Management Console e abra o console AWS Lambda em https://console.aws.amazon.com/lambda/.

  2. No menu do AWS Management Console, verifique se o seletor de região está definido para uma região que tem suporte a regras do AWS Config. Para obter a lista das regiões compatíveis, consulte Regiões e endpoints do AWS Config no Referência geral da Amazon Web Services.

  3. Escolha Create a Lambda function.

  4. Na página Usar um modelo, você pode escolher uma das funções do modelo paraAWS Config regras como ponto de partida ou pode continuar sem um modelo escolhendo Ignorar.

  5. Na página Configure triggers (Configurar triggers), selecione Next (Próximo).

  6. Na página Informações básicas, digite um nome e uma descrição.

  7. Em Runtime (Tempo de execução), escolha a linguagem de programação em que sua função foi criada.

  8. Em Code entry type (Tipo de entrada de código), selecione o tipo de entrada desejada. Se você estiver usando um blueprint, mantenha o código pré-configurado.

  9. Forneça seu código usando o método exigido pelo tipo de entrada de código que você selecionou. Se estiver usando um esquema, o código da função é fornecido no editor de código, e você pode personalizá-lo para incluir sua própria avaliação lógica. Seu código pode avaliar os dados de eventos que o AWS Config fornece quando ele chama a sua função:

    • Para funções baseadas no config-rule-change-triggeredesquema ou para funções acionadas por alterações de configuração, os dados do evento são o item de configuração ou um objeto de item de configuração superdimensionado para oAWS recurso que foi alterado.

    • Para funções baseadas no config-rule-periodicesquema ou para funções acionadas na frequência que você escolher, os dados do evento são um objeto JSON que inclui informações sobre quando a avaliação foi acionada.

    • Para ambos os tipos de funções, o AWS Config passa os parâmetros de regra no formato JSON. Você pode definir quais parâmetros de regra são passados ao criar a regra personalizada do Lambda emAWS Config.

    • Para obter eventos de exemplo que o AWS Config publica quando chama sua função, consulte Eventos de exemplo para regras AWS Config.

  10. Em Função de execução, escolha Criar nova função a partir de modelos deAWS política.

  11. Para Role name, digite um nome.

  12. Para Policy templates, selecione AWS Config Rules permission.

  13. Verifique os detalhes e escolha Criar função.

Criar uma regra personalizada no AWS Config

UseAWS Config para criar uma regra personalizada do Lambda e associar a regra a uma função do Lambda.

Para criar uma regra personalizada
  1. Abra o console do AWS Config em https://console.aws.amazon.com/config/.

  2. NoAWS Management Console menu, verifique se o seletor de região está definido para a mesma região em que você criou aAWS Lambda função para sua regra personalizada do Lambda.

  3. Na página Rules (Regras), selecione Add rule (Adicionar regra).

  4. Na página Especificar tipo de regra, escolha Criar regra personalizada.

  5. Na página Configure rule (Configurar regra), digite um nome e descrição.

  6. Em AWS Lambda function ARN, especifique o ARN que o AWS Lambda atribuiu à sua função.

    nota

    O ARN que você especificou nesta etapa não deve incluir o qualifier $LATEST. Você pode especificar um ARN sem um qualificador de versão ou com qualquer qualificador, exceto $LATEST. O AWS Lambda oferece suporte ao versionamento de funções, e a cada versão recebe um ARN com um qualificador. O AWS Lambda usa o qualificador $LATEST para a versão mais recente.

  7. Para Trigger type (Tipo de trigger), selecione uma ou ambas as opções abaixo:

    • Mudanças de configuração —AWS Config invoca sua função Lambda quando ela detecta uma alteração na configuração.

    • Periódico —AWS Config invoca sua função Lambda na frequência que você escolher (por exemplo, a cada 24 horas).

  8. Se os tipos de acionador para sua regra incluírem alterações de configuração, especifique uma das seguintes opções para o escopo das alterações com o qualAWS Config invoca sua função Lambda:

    • Todas as alterações — Quando qualquer recurso registrado porAWS Config é criado, alterado ou excluído.

    • Recursos — Quando qualquer recurso que corresponda ao tipo especificado, ou ao tipo mais identificador, é criado, alterado ou excluído.

    • Tags — Quando qualquer recurso com a tag especificada é criado, alterado ou excluído

  9. Se os tipos de acionador para sua regra incluírem Periódico, especifique a frequência com a qualAWS Config invoca sua função Lambda.

  10. Na seção Parâmetros, especifique todos os parâmetros da regra que suaAWS Lambda função avalia e o valor desejado.

  11. Escolha Próximo. Na página Revisar e criar, verifique os detalhes sobre sua regra e escolha Adicionar função de regra. Sua nova regra é exibida na página Regras.

    Compliance (Compatibilidade) exibirá Evaluating... (Em avaliação) até que o AWS Config receba os resultados de avaliação da sua função do AWS Lambda. Se a regra e a função estiverem funcionando como esperado, um resumo dos resultados será exibido depois de alguns minutos. Você pode atualizar os resultados com o botão de atualizar.

    Se a regra ou a função não funcionar como esperado, você pode consultar uma das opções abaixo para Compliance (Compatibilidade):

    • No results reported (Nenhum resultado relatado) – o AWS Config avaliou seus recursos em relação à regra. A regra não se aplicou aos recursos da AWS em seu escopo, os recursos especificados foram excluídos, ou os resultados da avaliação foram excluídos. Para obter resultados de avaliação, atualize a regra, mude seu escopo ou selecione Re-evaluate (Reavaliar).

      Essa mensagem também podem aparecer se a regra não relatar resultados de avaliação.

    • No resources in scope (Nenhum recursos no escopo) – o AWS Config não pôde avaliar seus recursos da AWS registrados em relação à regra porque nenhum dos recursos estão dentro do escopo da regra. Você pode escolher na página AWS ConfigSettings quais recursos o registrará.

    • Evaluations failed (Falha nas avaliações) – para obter informações que possam ajudar a determinar o problema, selecione o nome da regra para abrir sua página de detalhes e ver a mensagem de erro.

nota

Quando você cria uma regra do Lambda personalizada com oAWS Config console, as permissões apropriadas são criadas automaticamente. Se você criar uma regra personalizada do Lambda com oAWS CLI, precisará darAWS Config permissão para invocar sua função do Lambda usando oaws lambda add-permission comando. Para obter mais informações, consulte Uso de políticas baseadas em recursos paraAWS Lambda (políticas de função Lambda) no Manual doAWS Lambda desenvolvedor do.

Antes de darAWS Config permissão para invocar a função do Lambda, consulte a seguinte seçãoPrática recomendada de segurança para políticasAWS Lambda baseadas em recursos.

Prática recomendada de segurança para políticasAWS Lambda baseadas em recursos

Como melhor prática de segurança, para evitar dar permissão de invocação para que todo o nome principal do serviço (SPN) chame sua função do Lambda, é altamente recomendável que você restrinja o acesso na política baseada em recursos do Lambda comsourceARN e/ousourceAccountId na solicitação de invocação.

OsourceARN é o ARN daAWS Config regra que está invocando a função Lambda.

OsourceAccountId é o ID da conta do usuário que criou a regra.

Restringir oAWS Lambda esteja acessando seus recursos somente em nome de usuários e cenários esperados.

Para adicionar permissão baseada em SPN, você precisa usar a seguinte CLI

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com

Para adicionar permissão SourceAccountId baseada

Antes de a regra ser criada, você pode adicionar permissãosourceAccountId baseada na política baseada em recursos com a seguinte CLI da.

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID

Para adicionar SourceArn permissões SourceAccountId baseadas

Depois que a regra for criada, você poderá adicionar permissãosourceARN baseada à política baseada em recursos com a seguinte CLI. Isso permite que somente uma regra específica ARN invoque a função do Lambda.

aws lambda add-permission --function-name rule lambda function name --action lambda:InvokeFunction --statement-id config --principal config.amazonaws.com --source-account your account ID --source-arn ARN of the created config rule

Avaliar tipos de recursos adicionais

Você pode criar regras personalizadas do Lambda para executar avaliações de tipos de recursos ainda não registrados peloAWS Config. Isso é útil se você quiser avaliar a conformidade de tipos de recursos adicionais que atualmenteAWS Config não são registrados. Para obter uma lista de tipos de recursos adicionais que você pode avaliar com as regras personalizadas do Lambda, consulte Referência de tipos deAWS recursos.

nota

A lista no Guia doAWS CloudFormation usuário pode conter tipos de recursos adicionados recentemente que ainda não estão disponíveis para criar regras personalizadas do Lambda emAWS Config. AWS Configadiciona suporte a tipos de recursos em intervalos regulares.

Exemplo
  1. Você quer avaliar os cofres do Amazon S3 Glacier em sua conta. Atualmente, os recursos do cofre do Amazon S3 Glacier não são registrados peloAWS Config.

  2. Você cria umaAWS Lambda função que avalia se os cofres do Amazon S3 Glacier estão em conformidade com os requisitos da sua conta.

  3. Você cria uma regra personalizada do Lambda chamada evaluate-glacier-vaultse, em seguida, atribui suaAWS Lambda função à regra.

  4. AWS Configinvoca sua função Lambda e, em seguida, avalia os cofres do Amazon S3 Glacier em relação à sua regra.

  5. O AWS Config retorna as avaliações e você pode visualizar os resultados de compatibilidade para a sua regra.

nota

Você pode exibir os detalhes de configuração no cronograma do AWS Config e pesquisar no console do AWS Config os recursos que tenham AWS Configsuporte. Se você configurou o AWS Config para registrar todos os tipos de recursos, os recursos recentes com suporte serão automaticamente registrados. Para obter mais informações, consulte Tipos de recursos compatíveis.