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

VPCAs políticas de autenticação do Lattice são documentos de IAM política que você anexa a redes ou serviços de serviços para controlar se um principal especificado 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.

nota

A política de autenticação na rede de serviços não se aplica às configurações de recursos na rede de serviços.

As políticas de autenticação são diferentes das políticas baseadas em IAM identidade. IAMpolíticas baseadas em identidade são anexadas a IAM usuários, grupos ou funções e definem quais ações essas identidades podem realizar 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 obter 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 em 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:

  • Ative o controle de acesso em uma rede de serviços usandoIAM.

  • 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 obter 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 obter 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 em VPC Lattice.

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

Siga estas etapas para usar o AWS CLI para:

  • Ative o controle de acesso em um serviço usandoIAM.

  • 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 IDsvc-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 obter 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 obter 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 obter mais informações, consulte SIGv4solicitações autenticadas para o Amazon VPC Lattice.

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

VPCAs políticas de autenticação do Lattice são especificadas usando a mesma sintaxe das políticas. IAM Para obter mais informações, consulte Políticas baseadas em identidade e políticas baseadas em recursos no Guia do usuário. 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 autenticação, o principal é a IAM entidade que recebe essa permissão. O principal é autenticado como uma IAM entidade 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.

    É necessário especificar um 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 AWS JSON da política: Principal no Guia IAM do Usuário.

  • 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ê ativa o controle de acesso em um serviço ou rede de serviços usandoIAM, os diretores não têm permissão para fazer solicitações ao serviço ou à rede de serviços.

  • Ações — A API ação específica para a qual você está concedendo ou negando permissão. VPC O Lattice suporta ações que usam o vpc-lattice-svcs prefixo. 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 Amazon VPC Lattice Services na Referência de autorização de serviço.

Ao criar e gerenciar políticas de autenticação, talvez você queira usar o IAMPolicy Generator.

Requisito

A política em não JSON 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.

Protocolo Exemplos
HTTP
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/rates"

  • "Resource": "*/rates"

  • "Resource": "*/*"

g RPC
  • "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 Amazon Resource Name (ARN) para<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 IAM do usuário.

A tabela a seguir lista as chaves de condição do VPC Lattice. Para obter mais informações, consulte Chaves de condição para Amazon VPC Lattice Services na Referência de autorização de serviç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 na solicitação URL quux: [corge, grault] Sim Não
vpc-lattice-svcs:ServiceNetworkArn Filtra o ARN acesso pela rede de serviços do serviço que está recebendo a solicitação arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0 Sim Sim
vpc-lattice-svcs:ServiceArn Filtra o ARN acesso pelo serviço que está recebendo a solicitação arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0 Sim Sim
vpc-lattice-svcs:SourceVpc Filtra o acesso pelo VPC qual a solicitação é feita vpc-1a2b3c4d Sim Sim
vpc-lattice-svcs:SourceVpcOwnerAccount Filtra o acesso pela conta proprietária da solicitação a partir da VPC 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 um VPC que está conectado à 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 us-west-2 Região e contêm uma conta fictícia. IDs

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 o acesso a um serviço por meio de uma IAM função específica

O exemplo de política de autenticação a seguir concede permissões a qualquer solicitação autenticada que usa a IAM função rates-client para fazer HTTP GET solicitações no serviço especificado no Resource elemento. 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 diretores autenticados em um determinado VPC

O exemplo de política de autenticação a seguir só permite solicitações autenticadas de entidades principais em VPC cujo VPC ID é. 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 do 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 deve autorizar ou negar a solicitação. Ele avalia todas as políticas IAM baseadas em identidade e políticas de autenticação 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:

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

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

    • Verificar se o solicitante (como um IAM usuário ou uma função) tem permissões para realizar 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