Controle o acesso aos serviços do VPC Lattice usando políticas de autenticação - Amazon VPC Lattice

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

Controle o acesso aos serviços do VPC Lattice usando políticas de autenticação

As políticas de autenticação do VPC Lattice são documentos de política do IAM que você anexa a redes ou serviços de serviços para controlar se uma entidade principal específica tem acesso a um grupo de serviços ou a um serviço específico. Você pode anexar uma política de autenticação a cada rede de serviços ou serviço ao qual você deseja controlar o acesso.

As políticas de autorização são diferentes das políticas baseadas em identidade do IAM. As políticas baseadas em identidade do IAM são anexadas usuários, grupos ou perfis do IAM e definem quais ações essas entidades podem de executar em quais recursos. As políticas de autenticação são anexadas a serviços e redes de serviços. Para que a autorização seja bem-sucedida, tanto as políticas de autenticação quanto as políticas baseadas em identidade precisam ter declarações explícitas de permissão. Para ter mais informações, consulte Funcionamento da autorização.

Você pode usar o console AWS CLI e para visualizar, adicionar, atualizar ou remover políticas de autenticação em serviços e redes de serviços. Ao usar o AWS CLI, lembre-se de que seus comandos são Região da AWS executados no configurado para seu perfil. Se você deseja executar os comandos em uma região diferente, altere a região padrão para o seu perfil ou use o parâmetro --region com o comando.

Para começar a usar as políticas de autenticação, siga o procedimento para criar uma política de autenticação que se aplique a uma rede de serviços. Para obter permissões mais restritivas que você não deseje aplicar a outros serviços, você pode, como opção, definir políticas de autenticação em serviços individuais.

As AWS CLI tarefas a seguir mostram como gerenciar o acesso a uma rede de serviços usando políticas de autenticação. Para obter instruções usando o console, consulte Redes de serviços no VPC Lattice.

Adicionar uma política de autenticação a uma rede de serviços

Siga as etapas desta seção para usar o AWS CLI para:

  • Habilitar o controle de acesso em uma rede de serviços usando o IAM.

  • Adicionar uma política de autenticação à rede de serviços. Se você não adicionar uma política de autenticação, todo o tráfego receberá um erro de acesso negado.

Para habilitar o controle de acesso e adicionar uma política de autenticação a uma nova rede de serviços
  1. Para habilitar o controle de acesso em uma rede de serviços para que ela possa usar uma política de autenticação, use o comando create-service-network com a opção --auth-type e um valor de AWS_IAM.

    aws vpc-lattice create-service-network --name Name --auth-type AWS_IAM [--tags TagSpecification]

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. Use o comando put-auth-policy, especificando o ID da rede de serviços à qual você deseja adicionar a política de autenticação e a política de autenticação que deseja adicionar.

    Por exemplo, use o comando a seguir para criar uma política de autenticação para a rede de serviços com o ID sn-0123456789abcdef0.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    Use JSON para criar uma definição de política. Para ter mais informações, consulte Elementos comuns em uma política de autorização.

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "policy": "policy", "state": "Active" }
Para habilitar o controle de acesso e adicionar uma política de autenticação a uma rede de serviços existente
  1. Para habilitar o controle de acesso em uma rede de serviços para que ela possa usar uma política de autenticação, use o comando update-service-network com a opção --auth-type e um valor de AWS_IAM.

    aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type AWS_IAM

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. Use o comando put-auth-policy, especificando o ID da rede de serviços à qual você deseja adicionar a política de autenticação e a política de autenticação que deseja adicionar.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    Use JSON para criar uma definição de política. Para ter mais informações, consulte Elementos comuns em uma política de autorização.

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "policy": "policy", "state": "Active" }

Alterar o tipo de autenticação de uma rede de serviços

Para desabilitar a política de autenticação de uma rede de serviços

Use o update-service-network comando com a --auth-type opção e um valor de NONE.

aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type NONE

Se você precisar habilitar a política de autenticação novamente posteriormente, execute esse comando com AWS_IAM especificado para a opção --auth-type.

Remover uma política de autenticação de uma rede de serviços

Para remover uma política de autenticação de uma rede de serviços

Use o comando delete-auth-policy.

aws vpc-lattice delete-auth-policy --resource-identifier sn-0123456789abcdef0

A solicitação falhará se você remover uma política de autenticação antes de alterar o tipo de autenticação de uma rede de serviços para NONE.

As AWS CLI tarefas a seguir mostram como gerenciar o acesso a um serviço usando políticas de autenticação. Para obter instruções usando o console, consulte Serviços no VPC Lattice.

Adicionar uma política de autenticação a um serviço

Siga estas etapas para usar o AWS CLI para:

  • Habilitar o controle de acesso em um serviço usando o IAM.

  • Adicionar uma política de autenticação ao serviço. Se você não adicionar uma política de autenticação, todo o tráfego receberá um erro de acesso negado.

Para habilitar o controle de acesso e adicionar uma política de autenticação a um novo serviço
  1. Para habilitar o controle de acesso em um serviço para que ele possa usar uma política de autenticação, use o comando create-service com a opção --auth-type e um valor de AWS_IAM.

    aws vpc-lattice create-service --name Name --auth-type AWS_IAM [--tags TagSpecification]

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "arn": "arn", "authType": "AWS_IAM", "dnsEntry": { ... }, "id": "svc-0123456789abcdef0", "name": "Name", "status": "CREATE_IN_PROGRESS" }
  2. Use o comando put-auth-policy, especificando o ID do serviço ao qual você deseja adicionar a política de autenticação e a política de autenticação que deseja adicionar.

    Por exemplo, use o comando a seguir para criar uma política de autenticação para o serviço com o ID svc-0123456789abcdef0.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    Use JSON para criar uma definição de política. Para ter mais informações, consulte Elementos comuns em uma política de autorização.

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "policy": "policy", "state": "Active" }
Para habilitar o controle de acesso e adicionar uma política de autenticação a um serviço existente
  1. Para habilitar o controle de acesso em um serviço para que ele possa usar uma política de autenticação, use o comando update-service com a opção --auth-type e um valor de AWS_IAM.

    aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type AWS_IAM

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "arn": "arn", "authType": "AWS_IAM", "id": "svc-0123456789abcdef0", "name": "Name" }
  2. Use o comando put-auth-policy, especificando o ID do serviço ao qual você deseja adicionar a política de autenticação e a política de autenticação que deseja adicionar.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    Use JSON para criar uma definição de política. Para ter mais informações, consulte Elementos comuns em uma política de autorização.

    Se houver êxito, o comando gerará uma saída semelhante à seguinte.

    { "policy": "policy", "state": "Active" }

Alterar o tipo de autenticação de um serviço

Para desabilitar a política de autenticação de um serviço

Use o update-service comando com a --auth-type opção e um valor de NONE.

aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type NONE

Se você precisar habilitar a política de autenticação novamente posteriormente, execute esse comando com AWS_IAM especificado para a opção --auth-type.

Remover uma política de autenticação de um serviço

Para remover uma política de autenticação de um serviço

Use o comando delete-auth-policy.

aws vpc-lattice delete-auth-policy --resource-identifier svc-0123456789abcdef0

A solicitação falhará se você remover uma política de autenticação antes de alterar o tipo de autenticação do serviço para NONE.

Se você habilitar políticas de autenticação que exijam solicitações autenticadas para um serviço, todas as solicitações para esse serviço deverão conter uma assinatura de solicitação válida que seja calculada usando o Signature Version 4 (SigV4). Para ter mais informações, consulte Solicitações autenticadas SigV4 para o Amazon VPC Lattice.

Elementos comuns em uma política de autorização

As políticas de autorização do VPC Lattice são especificadas usando a mesma sintaxe das políticas do IAM. Para obter mais informações, consulte Políticas baseadas em identidade e em recurso no Guia do usuário do IAM.

A política de autorização contém os seguintes elementos:

  • Entidade principal: a pessoa ou aplicação que tem permissão de acesso a ações e recursos na instrução. Em uma política de autorização, a entidade principal é a entidade do IAM que será a destinatária dessa permissão. A entidade principal é autenticada como uma entidade do IAM para fazer solicitações a um recurso específico ou grupo de recursos, como no caso de serviços em uma rede de serviços.

    Você deve especificar uma entidade principal em uma política baseada em recursos. Os diretores podem incluir contas, usuários, funções, usuários federados ou AWS serviços. Para obter mais informações, consulte Elementos de política JSON da AWS : entidade principal no Guia do usuário do IAM.

  • Efeito: o efeito resultante quando a entidade principal especificada solicita a ação específica. Pode ser Allow ou Deny. Por padrão, quando você habilita o controle de acesso em um serviço ou rede de serviços usando o IAM, as entidades principais não têm permissão para fazer solicitações ao serviço ou à rede de serviços.

  • Ações — A ação específica da API para a qual você está concedendo ou negando permissão. O VPC Lattice oferece suporte a ações que usam o prefixo. vpc-lattice-svcs Para obter mais informações, consulte Ações definidas pelo Amazon VPC Lattice Services na Referência de autorização de serviço.

  • Recursos: os serviços afetados pela ação.

  • Condição: as condições são opcionais. Você pode usá-los para controlar quando sua política está em vigor. Para obter mais informações, consulte Chaves de condição para serviços do Amazon VPC Lattice na Referência de autorização de serviço.

Conforme cria e gerencia políticas de autenticação, talvez você queira usar o Gerador de políticas do IAM.

Requisito

A política em JSON não deve conter novas linhas ou linhas em branco.

Formato de recurso para políticas de autenticação

Você pode restringir o acesso a recursos específicos criando uma política de autenticação que use um esquema correspondente com um padrão <serviceARN>/<path> e codifique o elemento Resource conforme mostrado nos exemplos a seguir.

Exemplos de recursos para políticas de autenticação
Protocolo Exemplos
HTTP
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/rates"

  • "Resource": "*/rates"

  • "Resource": "*/*"

gRPC
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/GetRates"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/*"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/*"

Use o seguinte formato de recurso de nome do recurso da Amazon (ARN) para o <serviceARN>:

arn:aws:vpc-lattice:region:account-id:service/service-id

Por exemplo: .

"Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0"

Chaves de condição que podem ser usadas em políticas de autenticação

O acesso pode ser controlado adicionalmente com chaves de condição no elemento Condição das políticas de autenticação. Essas chaves de condição estão presentes para avaliação, dependendo do protocolo e se a solicitação está assinada com Signature Version 4 (SigV4) ou anônima. As chaves de condição fazem distinção entre maiúsculas e minúsculas.

AWS fornece chaves de condição globais que você pode usar para controlar o acesso, como aws:PrincipalOrgID aws:SourceIp e. Para ver uma lista das chaves de condição AWS globais, consulte as chaves de contexto de condição AWS global no Guia do usuário do IAM.

A tabela a seguir lista as chaves de condição do VPC Lattice. Para obter mais informações, consulte Chaves de condição para serviços do Amazon VPC Lattice na Referência de autorização de serviço.

Chaves de condição para políticas de autenticação
Chaves de condição Descrição Exemplo Disponível para chamador anônimo (não autenticado)? Disponível para gRPC?
vpc-lattice-svcs:Port Filtra o acesso por porta do serviço para a qual a solicitação é feita 80 Sim Sim
vpc-lattice-svcs:RequestMethod Filtra o acesso pelo método da solicitação GET Sim Sempre POST
vpc-lattice-svcs:RequestHeader/header-name: value Filtra o acesso por um par nome-valor de cabeçalho nos cabeçalhos da solicitação content-type: application/json Sim Sim
vpc-lattice-svcs:RequestQueryString/key-name: value Filtra o acesso pelos pares de chave-valor da string de consulta no URL de solicitação quux: [corge, grault] Sim Não
vpc-lattice-svcs:ServiceNetworkArn Filtra o acesso pelo ARN da rede de serviços do serviço que recebe a solicitação arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0 Sim Sim
vpc-lattice-svcs:ServiceArn Filtra o acesso pelo ARN do serviço que recebe a solicitação arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0 Sim Sim
vpc-lattice-svcs:SourceVpc Filtra o acesso pela VPC de onde a solicitação é feita vpc-1a2b3c4d Sim Sim
vpc-lattice-svcs:SourceVpcOwnerAccount Filtra o acesso pela conta proprietária da VPC da qual a solicitação é feita 123456789012 Sim Sim

Entidades principais anônimas (não autenticadas)

Os diretores anônimos são chamadores que não assinam suas AWS solicitações com o Signature Version 4 (SigV4) e estão dentro de uma VPC conectada à rede de serviços. Essas entidades principais anônimas podem fazer solicitações não autenticadas a serviços na rede de serviços se isso for permitido por uma política de autenticação.

Exemplos de políticas de autenticação

Veja a seguir exemplos de políticas de autenticação que exigem que as solicitações sejam feitas por entidades principais autenticadas.

Todos os exemplos usam a região us-west-2 e contêm IDs de conta fictícios.

Exemplo 1: Restringir o acesso aos serviços por uma AWS organização específica

O exemplo de política de autenticação a seguir concede permissões a qualquer solicitação autenticada para acessar quaisquer serviços na rede de serviços à qual a política se aplique. No entanto, a solicitação deve ser originada de diretores que pertençam à AWS organização especificada na condição.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": [ "o-123456example" ] } } } ] }
Exemplo 2: restringir acesso a um serviço por um perfil do IAM específico

O exemplo de política de autenticação a seguir concede permissões a qualquer solicitação autenticada que use o perfil do IAM rates-client para fazer solicitações HTTP GET no serviço especificado no elemento Resource. O recurso no elemento Resource é igual ao serviço ao qual a política está vinculada.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/rates-client" ] }, "Action": "vpc-lattice-svcs:Invoke", "Resource": [ "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*" ], "Condition": { "StringEquals": { "vpc-lattice-svcs:RequestMethod": "GET" } } } ] }
Exemplo 3: restringir o acesso aos serviços por entidades principais autenticadas em uma VPC específica

O exemplo de política de autenticação a seguir só permite solicitações autenticadas de entidades principais na VPC cujo ID de VPC seja vpc-1a2b3c4d.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalType": "Anonymous" }, "StringEquals": { "vpc-lattice-svcs:SourceVpc": "vpc-1a2b3c4d" } } } ] }

Funcionamento da autorização

Quando um serviço VPC Lattice recebe uma solicitação, o código de AWS fiscalização avalia todas as políticas de permissões relevantes em conjunto para determinar se autoriza ou nega a solicitação. Ele avalia todas as políticas baseadas em identidade e políticas de autenticação do IAM que são aplicáveis no contexto da solicitação durante a autorização. Por padrão, todas as solicitações serão implicitamente negadas quando o tipo de autenticação for AWS_IAM. Uma permissão explícita de todas as políticas relevantes substitui o padrão.

A autorização inclui:

  • Coletar todas as políticas relevantes do IAM baseadas em identidade e políticas de autenticação.

  • Avaliação do conjunto de políticas resultante:

    • Verificar se o solicitante (como um perfil ou usuário do IAM) tem permissões para executar a operação na conta à qual o solicitante pertence. Se não houver uma declaração de permissão explícita, AWS não autoriza a solicitação.

    • Verificar se a solicitação é permitida pela política de autenticação da rede de serviços. Se uma política de autenticação estiver habilitada, mas não houver uma declaração de permissão explícita, AWS não autoriza a solicitação. Se houver uma instrução explícita de permissão, ou se o tipo de autenticação for NONE, o código continuará.

    • Verificar se a solicitação é permitida pela política de autenticação para o serviço. Se uma política de autenticação estiver habilitada, mas não houver uma declaração de permissão explícita, AWS não autoriza a solicitação. Se houver uma declaração explícita de permissão, ou se o tipo de autenticação for NONE, o código de imposição retornará uma decisão final de Permitir.

    • Uma negação explícita em qualquer política substitui todas as permissões.

O diagrama mostra o fluxo de trabalho de autorização. Quando uma solicitação é feita, as políticas relevantes permitem ou negam o acesso da solicitação a um determinado serviço.

Fluxo de trabalho de autorização