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)

Efetue o procedimento a seguir para criar uma regra personalizada do Lambda. Para criar uma regra personalizada do Lambda, primeiro você cria uma AWS Lambda função que contém a lógica de avaliação da regra. Em seguida, associe a função a uma regra personalizada do Lambda criada no AWS Config.

Importante

Como prática recomendada de segurança ao permitir a AWS Config permissão para invocar sua função do Lambda, recomendamos fortemente que você restrinja o acesso à política baseada em recursos do sourceARN Lambda sourceAccountId com e/ou na solicitação de invocação. Para ter mais informações, consulte Prática recomendada de segurança para a política baseada em recursos do AWS Lambda.

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

Uma função Lambda é um código personalizado para AWS Lambda o qual você carrega e é invocado por eventos que são publicados nela por uma fonte de eventos. Se a função Lambda estiver associada a uma regra Config, ela será AWS Config invocada quando o gatilho da regra ocorrer. A função do Lambda avalia as informações de configuração enviadas pelo AWS Config e retorna os resultados da avaliação. Para mais informações sobre as funções do Lambda, consulte Origens de eventos e funções no Guia do desenvolvedor do AWS Lambda .

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

Esquemas do AWS Lambda

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

  • config-rule-change-triggered— Acionado quando suas configurações AWS de recursos são alteradas.

  • 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 GitHub no, um serviço de hospedagem e compartilhamento de código baseado na web. As funções de amostra são desenvolvidas e contribuídas pela AWS comunidade. Se quiser usar uma amostra, você pode copiar seu código em uma nova AWS Lambda função. 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 AWS Lambda console em https://console.aws.amazon.com/lambda/.

  2. No AWS Management Console menu, verifique se o seletor de região está definido como uma região que suporte AWS Config regras. 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 blueprint, você pode escolher uma das funções do blueprint para AWS Config regras como ponto de partida ou pode continuar sem um blueprint 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 esquema, 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 do evento AWS Config fornecidos quando invoca sua função:

    • Para funções baseadas no config-rule-change-triggeredblueprint 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 o AWS recurso que foi alterado.

    • Para funções baseadas no config-rule-periodicblueprint 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 os dois tipos de funções, AWS Config passa parâmetros de regra no formato JSON. Você pode definir quais parâmetros de regra são informados ao criar a regra personalizada no AWS Config.

    • Por exemplo, eventos que AWS Config são publicados quando invoca sua função, consulte. Eventos de exemplo para regras AWS Config

  10. Para Função de execução, escolha Criar uma nova função com base em modelos de política da AWS .

  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.

Criando uma regra personalizada em AWS Config

Use AWS Config para criar uma regra Lambda personalizada e associar a regra a uma função Lambda.

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

  2. No AWS Management Console menu, verifique se o seletor de região está definido para a mesma região na qual você criou a AWS 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 outro qualificador. $LATEST AWS Lambda oferece suporte ao controle de versão de funções, e cada versão recebe um ARN com um qualificador. AWS Lambda usa o $LATEST qualificador para a versão mais recente.

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

    • Alterações de configuração — AWS Config invoca sua função Lambda quando 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 gatilho da sua regra incluírem alterações de configuração, especifique uma das seguintes opções para Escopo de alterações com o qual AWS Config invoca sua função Lambda:

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

    • Recursos: quando um recurso que corresponde ao tipo especificado, ou ao tipo mais o identificador, é criado, alterado ou excluído.

    • Tags: quando um recurso com a tag especificada é criado, alterado ou excluído

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

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

  11. Escolha Próximo. Em Revisar página, verifique os detalhes da função e selecione Criar função. Sua nova regra aparece na página Regras.

    A conformidade exibirá Avaliação... até AWS Config receber os resultados da avaliação de sua AWS Lambda função. 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):

    • Nenhum resultado relatado - AWS Config avaliou seus recursos de acordo com a 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.

    • Sem recursos no escopo - AWS Config não é possível avaliar seus AWS recursos registrados em relação a essa regra porque nenhum de seus recursos está dentro do escopo da regra. Você pode escolher na página AWS Config Settings 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 personalizada do Lambda com o AWS Config console, as permissões apropriadas são criadas automaticamente para você. Se você criar uma regra personalizada do Lambda com o AWS CLI, precisará dar AWS Config permissão para invocar sua função do Lambda usando o comando. aws lambda add-permission Para obter mais informações, consulte Usando políticas baseadas em recursos para (políticas de funções AWS Lambda Lambda) no Guia do desenvolvedor.AWS Lambda

Antes de dar AWS Config permissão para invocar sua função Lambda, consulte a seção a seguir. Prática recomendada de segurança para a política baseada em recursos do AWS Lambda

Prática recomendada de segurança para a política baseada em recursos do AWS Lambda

Como prática recomendada de segurança, para evitar dar permissão de invocação para que todo o nome da entidade principal do serviço (SPN) chame sua função do Lambda, recomendamos muito que você restrinja o acesso à política baseada em recursos do Lambda com sourceARN e/ou sourceAccountId na solicitação de invocação.

sourceARNÉ o ARN da AWS Config regra que está invocando a função Lambda.

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

Restringir o acesso na política baseada em recursos do Lambda ajuda a AWS Lambda garantir que você esteja acessando seus recursos somente em nome dos 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, é possível adicionar permissão baseada no sourceAccountId à política baseada em recursos com a CLI a seguir

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 ambas as permissões SourceArn e SourceAccountId com base

Depois que a regra for criada, você poderá adicionar a permissão baseada em sourceARN à política baseada em recursos com a seguinte CLI. Isso permite que somente um ARN de regra específico 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 pelo. AWS Config Isso é útil se você quiser avaliar a conformidade de tipos de recursos adicionais que AWS Config não são registrados atualmente. Para obter uma lista de tipos de recursos adicionais que você pode avaliar com regras personalizadas, consulte AWS Resource Types Reference.

nota

Ao criar um Lambda personalizado para um tipo de recurso que não é registrado por AWS Config, a regra deve ter o tipo de gatilho periódico. O tipo de gatilho de alterações de configuração não é suportado. Para ter mais informações, consulte Modo de avaliação e tipos de gatilho para AWS Config regras.

Exemplo
  1. Você deseja avaliar cofres do Amazon S3 Glacier em sua conta. Os recursos de cofre do Amazon S3 Glacier atualmente não são registrados pelo AWS Config.

  2. Você cria uma AWS 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 sua AWS Lambda função à regra.

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

  5. AWS Config retorna as avaliações e você pode ver os resultados de conformidade da sua regra.

nota

Você pode ver os detalhes da configuração na AWS Config linha do tempo e pesquisar recursos no AWS Config console em busca de recursos AWS Config compatíveis. Se você tiver configurado AWS Config para registrar todos os tipos de recursos, os recursos recém-suportados serão gravados automaticamente. Para ter mais informações, consulte Tipos de recursos compatíveis.