Autorização de conexão em AWS Client VPN - AWS Client VPN

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

Autorização de conexão em AWS Client VPN

Você pode configurar um manipulador de conexão de cliente para seu VPN endpoint de cliente. O manipulador permite executar a lógica que autoriza uma nova conexão, baseada em atributos de dispositivo, usuário e conexão. O manipulador de conexão do cliente é executado depois que o VPN serviço do cliente autenticou o dispositivo e o usuário.

Para configurar um manipulador de conexão do cliente para seu VPN endpoint do cliente, crie uma AWS Lambda função que use os atributos do dispositivo, do usuário e da conexão como entradas e retorne uma decisão ao VPN serviço do cliente para permitir ou negar uma nova conexão. Você especifica a função Lambda no endpoint do seu clienteVPN. Quando os dispositivos se conectam ao seu VPN endpoint do cliente, o VPN serviço do cliente invoca a função Lambda em seu nome. Somente conexões autorizadas pela função Lambda podem se conectar ao endpoint do clienteVPN.

nota

Atualmente, o único tipo de manipulador de conexão do cliente compatível é uma função Lambda.

Requisitos e considerações

Veja a seguir requisitos e considerações para o manipulador de conexão do cliente:

  • O nome da função Lambda deve começar com o prefixo AWSClientVPN-.

  • As funções Lambda qualificadas são compatíveis.

  • A função Lambda deve estar na mesma AWS região e na mesma AWS conta do endpoint do clienteVPN.

  • A função Lambda atinge o tempo limite após 30 segundos. Esse valor não pode ser alterado.

  • A função Lambda é de forma sincronizada. Ela é invocada depois da autenticação de dispositivo e usuário e antes de as regras de autorização serem avaliadas.

  • Se a função Lambda for invocada para uma nova conexão e o VPN serviço Client não obtiver uma resposta esperada da função, o VPN serviço Client negará a solicitação de conexão. Por exemplo, isso pode ocorrer se a função Lambda for limitada, atingir o tempo limite ou encontrar outros erros inesperados, ou se a resposta da função não estiver em um formato válido.

  • Recomendamos configurar a simultaneidade provisionada da função Lambda para permitir que ela seja dimensionada sem flutuações na latência.

  • Se você atualizar sua função Lambda, as conexões existentes com o VPN endpoint do cliente não serão afetadas. É possível encerrar as conexões existentes e orientar seus clientes a estabelecer novas conexões. Para obter mais informações, consulte Encerrar uma conexão de AWS Client VPN cliente.

  • Se os clientes usarem o cliente AWS fornecido para se conectar ao VPN endpoint do cliente, eles deverão usar a versão 1.2.6 ou posterior para Windows e a versão 1.2.4 ou posterior para macOS. Para obter mais informações, consulte Conecte-se usando o cliente fornecido pela AWS.

Interface do Lambda

A função Lambda usa atributos do dispositivo, atributos do usuário e atributos de conexão como entradas do serviço do cliente. VPN Em seguida, ele deve retornar ao VPN serviço do Cliente a decisão de permitir ou negar a conexão.

Esquema de solicitação

A função Lambda usa um JSON blob contendo os seguintes campos como entrada.

{ "connection-id": <connection ID>, "endpoint-id": <client VPN endpoint ID>, "common-name": <cert-common-name>, "username": <user identifier>, "platform": <OS platform>, "platform-version": <OS version>, "public-ip": <public IP address>, "client-openvpn-version": <client OpenVPN version>, "aws-client-version": <AWS client version>, "groups": <group identifier>, "schema-version": "v3" }
  • connection-id— O ID da conexão do cliente com o VPN endpoint do cliente.

  • endpoint-id— O ID do VPN endpoint do cliente.

  • common-name: o identificador do dispositivo. No certificado do cliente criado para o dispositivo, o nome comum identifica o dispositivo de forma exclusiva.

  • username: o identificador do usuário, se aplicável. Para autenticação do Active Directory, este é o nome de usuário. Para autenticação federada SAML baseada, isso éNameID. Para autenticação mútua, este campo fica vazio.

  • platform: a plataforma do sistema operacional do cliente.

  • platform-version: a versão do sistema operacional. O VPN serviço Client fornece um valor quando a --push-peer-info diretiva está presente na configuração do Open VPN Client, quando os clientes se conectam a um VPN endpoint do Client e quando o cliente está executando a plataforma Windows.

  • public-ip: o endereço IP público do dispositivo de conexão.

  • client-openvpn-version— A VPN versão aberta que o cliente está usando.

  • aws-client-version— A versão AWS do cliente.

  • groups: o identificador do grupo, se aplicável. Para autenticação do Active Directory, esta será uma lista de grupos do Active Directory. Para autenticação federada SAML baseada, essa será uma lista de grupos de provedores de identidade (IdP). Para autenticação mútua, este campo fica vazio.

  • schema-version: a versão do esquema. O padrão é v3.

Esquema de resposta

A função Lambda deve retornar os campos a seguir.

{ "allow": boolean, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3" }
  • allow: obrigatório. Um booleano (true | false) que indica se deseja permitir ou negar a nova conexão.

  • error-msg-on-denied-connection: obrigatório. Uma série de até 255 caracteres que pode ser usada para fornecer etapas e diretrizes para os clientes se a conexão for negada pela função Lambda. No caso de falhas durante a execução da função Lambda (por exemplo, durante a limitação), a seguinte mensagem padrão será apresentada para os clientes.

    Error establishing connection. Please contact your administrator.
  • posture-compliance-statuses: obrigatório. Se você usa a função Lambda para avaliação da postura, esta é uma lista de status para o dispositivo de conexão. Você define os nomes de status de acordo com as categorias de avaliação da postura dos dispositivos, por exemplo, compliant, quarantined unknown e assim por diante. Os nomes podem ter até 255 caracteres. É possível especificar até 10 status.

  • schema-version: obrigatório. A versão do esquema. O padrão é v3.

Você pode usar a mesma função Lambda para vários VPN endpoints do cliente na mesma região.

Para obter mais informações sobre como criar uma função Lambda, consulte a seção Conceitos básicos do AWS Lambda no Guia do desenvolvedor do AWS Lambda .

Use o manipulador de conexão do cliente para avaliação da postura

Você pode usar o manipulador de conexão do cliente para integrar seu VPN endpoint do cliente à sua solução de gerenciamento de dispositivos existente para avaliar a conformidade da postura dos dispositivos de conexão. Para que a função Lambda funcione como um manipulador de autorização de dispositivos, use a autenticação mútua para o endpoint do seu cliente. VPN Crie um certificado de cliente e uma chave exclusivos para cada cliente (dispositivo) que se conectará ao VPN endpoint do cliente. A função Lambda pode usar o nome comum exclusivo para o certificado do cliente (que é passado pelo VPN serviço do cliente) para identificar o dispositivo e obter seu status de conformidade de postura na sua solução de gerenciamento de dispositivos. É possível usar a autenticação mútua combinada com a autenticação baseada em usuário.

Como alternativa, você pode realizar uma avaliação de postura básica na própria função Lambda. Por exemplo, você pode avaliar os platform-version campos platform e que são passados para a função Lambda pelo serviço de clienteVPN.

nota

Embora o manipulador de conexão possa ser usado para impor uma versão mínima do AWS Client VPN aplicativo, o campo aws-client-version no manipulador de conexão só é aplicável ao AWS Client VPN aplicativo e está sendo preenchido a partir de variáveis de ambiente no dispositivo do usuário.

Ativar o manipulador de conexão do cliente

Para habilitar o manipulador de conexão do cliente, crie ou modifique um VPN endpoint do cliente e especifique o Amazon Resource Name (ARN) da função Lambda. Para ter mais informações, consulte Crie um AWS Client VPN endpoint e Modificar um AWS Client VPN endpoint.

Função vinculada ao serviço

AWS Client VPN cria automaticamente uma função vinculada ao serviço em sua conta chamada. AWSServiceRoleForClientVPNConnections A função tem permissões para invocar a função Lambda quando uma conexão é feita com o endpoint do VPN cliente. Para obter mais informações, consulte Usando funções vinculadas a serviços para AWS Client VPN.

Monitore falhas na autorização de conexão

Você pode visualizar o status de autorização de conexão das conexões com o VPN endpoint do cliente. Para obter mais informações, consulte Exibir conexões de AWS Client VPN clientes.

Quando o manipulador de conexão do cliente é usado para avaliação da postura, você também pode visualizar os status de conformidade da postura dos dispositivos que se conectam ao seu VPN endpoint do cliente nos registros de conexão. Para obter mais informações, consulte Registro de conexão para um AWS Client VPN endpoint.

Caso um dispositivo falhe na autorização da conexão, o campo connection-attempt-failure-reason nos logs de conexão apresentará um dos seguintes motivos de falha:

  • client-connect-failed: a função Lambda impediu que a conexão fosse estabelecida.

  • client-connect-handler-timed-out: a função Lambda atingiu o tempo limite.

  • client-connect-handler-other-execution-error: a função Lambda encontrou um erro inesperado.

  • client-connect-handler-throttled: a função Lambda foi limitada.

  • client-connect-handler-invalid-response: a função Lambda retornou uma resposta inválida.

  • client-connect-handler-service-error: houve um erro no serviço durante a tentativa de conexão.