

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

# Segurança no Amazon VPC Lattice
<a name="security"></a>

A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de data centers e arquiteturas de rede criados para atender aos requisitos das organizações mais sensíveis à segurança.

Você é responsável por manter o controle sobre o conteúdo hospedado nessa infraestrutura. O [Modelo de Responsabilidade Compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) descreve isso como segurança *da* nuvem e segurança *na* nuvem:
+ **Segurança da nuvem** — AWS é responsável por proteger a infraestrutura que executa AWS os serviços no Nuvem AWS. AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia de nossa segurança como parte dos Programas de Conformidade Programas de [AWS](https://aws.amazon.com/compliance/programs/) de . Para saber mais sobre os programas de conformidade que se aplicam ao Amazon VPC Lattice, consulte [AWS Services in Scope by Compliance Program Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/).
+ **Segurança na nuvem**: você é responsável por manter o controle sobre seu conteúdo hospedado nessa infraestrutura. Você também é responsável por outros fatores, incluindo a confidencialidade de seus dados, os requisitos da empresa e as leis e regulamentos aplicáveis. 

Esta documentação ajuda você a entender como aplicar o modelo de responsabilidade compartilhada ao usar o VPC Lattice. Os tópicos a seguir mostram como configurar o VPC Lattice para atender aos seus objetivos de segurança e de conformidade. Você também aprende a usar outros AWS serviços, que ajudam você a monitorar e proteger seu serviço VPC Lattice, redes de serviços e configurações de recursos.

**Topics**
+ [Gerencie o acesso aos serviços do VPC Lattice](access-management-overview.md)
+ [Proteção de dados no Amazon VPC Lattice](data-protection.md)
+ [Identity and Access Management para o Amazon VPC Lattice](security-iam.md)
+ [Validação de conformidade para o Amazon VPC Lattice](compliance-validation.md)
+ [Acesse o Amazon VPC Lattice usando endpoints de interface ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Resiliência no Amazon VPC Lattice](disaster-recovery-resiliency.md)
+ [Segurança da infraestrutura no Amazon VPC Lattice](infrastructure-security.md)

# Gerencie o acesso aos serviços do VPC Lattice
<a name="access-management-overview"></a>

O VPC Lattice é seguro por padrão porque você precisa ser explícito sobre quais serviços e configurações de recursos fornecer acesso e com quais. VPCs Você pode acessar os serviços por meio de uma associação de VPC ou de um endpoint VPC do tipo rede de serviços. Para cenários de várias contas, você pode usar [AWS Resource Access Manager](sharing.md)para compartilhar serviços, configurações de recursos e redes de serviços entre os limites da conta.

 O VPC Lattice fornece uma estrutura que permite implementar uma estratégia de defense-in-depth em várias camadas da rede.
+ **Primeira camada** — A associação de serviços, recursos, VPC e VPC endpoints com uma rede de serviços. Uma VPC pode estar conectada a uma rede de serviços por meio de uma associação ou por meio de um VPC endpoint. Se uma VPC não estiver conectada a uma rede de serviços, os clientes na VPC não poderão acessar as configurações de serviços e recursos associadas à rede de serviços.
+ **Segunda camada** — proteções de segurança opcionais em nível de rede para a rede de serviços, como grupos de segurança e rede. ACLs Ao usá-los, você pode permitir o acesso a grupos específicos de clientes em uma VPC em vez de a todos os clientes na VPC.
+ **Terceira camada**: política de autenticação opcional do VPC Lattice. Você pode aplicar uma política de autenticação a redes de serviços e serviços individuais. Normalmente, a política de autenticação na rede de serviços é operada pelo administrador da rede ou da nuvem, que implementa uma autorização granular. Por exemplo, permitir somente solicitações autenticadas de uma organização específica no AWS Organizations. Para uma política de autenticação no nível do serviço, normalmente o proprietário do serviço define controles refinados, que podem ser mais restritivos do que a autorização geral aplicada no nível da rede de serviço.
**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.

**Métodos de controle de acesso**
+ [Políticas de autenticação](auth-policies.md)
+ [Grupos de segurança](security-groups.md)
+ [Rede ACLs](network-acls.md)

# Controle o acesso aos serviços do VPC Lattice usando políticas de autenticação
<a name="auth-policies"></a>

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.

**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 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 obter mais informações, consulte [Funcionamento da autorização](#auth-policies-evaluation-logic).

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. Quando você adiciona, atualiza ou remove uma política de autenticação, ela pode levar alguns minutos para ficar pronta. Ao usar o AWS CLI, verifique se você está na região correta. Você pode alterar a região padrão do seu perfil ou usar o `--region` parâmetro com o comando.

**Topics**
+ [Elementos comuns em uma política de autorização](#auth-policies-common-elements)
+ [Formato de recurso para políticas de autenticação](#auth-policies-resource-format)
+ [Chaves de condição que podem ser usadas em políticas de autenticação](#auth-policies-condition-keys)
+ [Tags de recursos](#resource-tags)
+ [Tags principais](#principal-tags)
+ [Entidades principais anônimas (não autenticadas)](#anonymous-unauthenticated-principals)
+ [Exemplos de políticas de autenticação](#example-auth-policies)
+ [Funcionamento da autorização](#auth-policies-evaluation-logic)

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.

## Gerenciar o acesso a uma rede de serviços com políticas de autenticação
<a name="manage-access-to-service-networks"></a>

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](service-networks.md).

**Topics**
+ [Adicionar uma política de autenticação a uma rede de serviços](#add-service-network-auth-policy)
+ [Alterar o tipo de autenticação de uma rede de serviços](#change-service-network-auth-type)
+ [Remover uma política de autenticação de uma rede de serviços](#remove-service-network-auth-policy)

### Adicionar uma política de autenticação a uma rede de serviços
<a name="add-service-network-auth-policy"></a>

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"
   }
   ```

1. 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](#auth-policies-common-elements).

   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"
   }
   ```

1. 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](#auth-policies-common-elements).

   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
<a name="change-service-network-auth-type"></a>

**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
<a name="remove-service-network-auth-policy"></a>

**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`.

## Gerenciar o acesso a um serviço com políticas de autenticação
<a name="manage-access-to-services"></a>

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](services.md). 

**Topics**
+ [Adicionar uma política de autenticação a um serviço](#add-service-auth-policy)
+ [Alterar o tipo de autenticação de um serviço](#change-service-auth-type)
+ [Remover uma política de autenticação de um serviço](#remove-service-auth-policy)

### Adicionar uma política de autenticação a um serviço
<a name="add-service-auth-policy"></a>

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"
   }
   ```

1. 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 obter mais informações, consulte [Elementos comuns em uma política de autorização](#auth-policies-common-elements).

   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"
   }
   ```

1. 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](#auth-policies-common-elements).

   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
<a name="change-service-auth-type"></a>

**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
<a name="remove-service-auth-policy"></a>

**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 [SIGv4 solicitações autenticadas para o Amazon VPC Lattice](sigv4-authenticated-requests.md).

## Elementos comuns em uma política de autorização
<a name="auth-policies-common-elements"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) 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. 

  É necessário 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-actions-as-permissions) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator).

**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
<a name="auth-policies-resource-format"></a>

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 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/vpc-lattice/latest/ug/auth-policies.html)  | 
| gRPC |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/vpc-lattice/latest/ug/auth-policies.html)  | 

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
<a name="auth-policies-condition-keys"></a>

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)](sigv4-authenticated-requests.md) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) na *Referência de autorização de serviço*.


| Chaves de condição | Description | 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:RequestPath | Filtra o acesso pela parte do caminho do URL da solicitação | /path | Sim | Sim | 
| 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 | 

## Tags de recursos
<a name="resource-tags"></a>

Uma *tag* é um rótulo de metadados que você atribui ou AWS atribui a um AWS recurso. Cada tag da tem duas partes:
+ Uma *chave de tag* (por exemplo `CostCenter`, `Environment` ou `Project`). Chaves de tag fazem distinção entre maiúsculas e minúsculas.
+ Um campo opcional conhecido como um *valor de tag* (por exemplo, `111122223333` ou `Production`). Omitir o valor da tag é o mesmo que usar uma string vazia. Como as chaves de tags, os valores das tags diferenciam maiúsculas de minúsculas.

Para obter mais informações sobre marcação, consulte [Controle do acesso a AWS recursos usando](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) tags

Você pode usar tags em suas políticas de autenticação usando a chave de contexto de condição `aws:ResourceTag/key` AWS global.

O exemplo de política a seguir concede acesso aos serviços com a tag`Environment=Gamma`. Essa política permite que você se refira a serviços sem codificação permanente do serviço ou. ARNs IDs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowGammaAccess",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0124446789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Environment": "Gamma",
        }
      }
    }
  ]
}
```

## Tags principais
<a name="principal-tags"></a>

Você pode controlar o acesso aos seus serviços e recursos com base nas tags anexadas à identidade do chamador. O VPC Lattice oferece suporte ao controle de acesso com base em qualquer tag principal nas tags de usuário, função ou sessão usando as variáveis. `aws:PrincipalTag/context` Para obter mais informações, consulte [Controlar o acesso das entidades principais do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html#access_iam-tags_control-principals).

O exemplo de política a seguir concede acesso somente às identidades com a tag`Team=Payments`. Essa política permite que você controle o acesso sem precisar codificar uma conta IDs ou função. ARNs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowPaymentsTeam",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/Team": "Payments",
        }
      }
    }
  ]
}
```

## Entidades principais anônimas (não autenticadas)
<a name="anonymous-unauthenticated-principals"></a>

Os diretores anônimos são chamadores que não assinam suas AWS solicitações com o [Signature Version 4 (SigV4)](sigv4-authenticated-requests.md) 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
<a name="example-auth-policies"></a>

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.

------
#### [ JSON ]

****  

```
{
   "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.

------
#### [ JSON ]

****  

```
{
   "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`.

------
#### [ JSON ]

****  

```
{
   "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
<a name="auth-policies-evaluation-logic"></a>

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\]](http://docs.aws.amazon.com/pt_br/vpc-lattice/latest/ug/images/authpolicy.png)


# Controlar o tráfego no VPC Lattice usando grupos de segurança
<a name="security-groups"></a>

AWS grupos de segurança atuam como firewalls virtuais, controlando o tráfego de rede de e para as entidades às quais estão associados. Com o VPC Lattice, você pode criar grupos de segurança e atribuí-los à associação VPC que conecta uma VPC a uma rede de serviços para aplicar proteções adicionais de segurança em nível de rede para sua rede de serviços. Se você conectar uma VPC a uma rede de serviços usando um VPC endpoint, também poderá atribuir grupos de segurança ao VPC endpoint. Da mesma forma, você pode atribuir grupos de segurança aos gateways de recursos que você cria para permitir o acesso aos recursos em sua VPC.

**Topics**
+ [Listas de prefixos gerenciados](#managed-prefix-list)
+ [Regras de grupos de segurança](#security-groups-rules)
+ [Gerenciar grupos de segurança para uma associação de VPC](#service-network-security-group)

## Listas de prefixos gerenciados
<a name="managed-prefix-list"></a>

O VPC Lattice fornece listas de prefixos gerenciados que incluem os endereços IP usados para rotear o tráfego pela rede VPC Lattice quando você usa uma associação de rede de serviços para conectar sua VPC a uma rede de serviços usando uma associação VPC. Eles IPs são links privados locais IPs ou públicos não roteáveis. IPs

 É possível fazer referência à lista de prefixos gerenciados do VPC Lattice nas regras do seu grupo de segurança. Isso permite que o tráfego flua dos clientes por meio da rede de serviços do VPC Lattice e para os destinos do serviço VPC Lattice.

Por exemplo, suponha que você tenha uma instância do EC2 registrada como destino na região Oeste dos EUA (Oregon) (`us-west-2`). Você pode adicionar uma regra ao grupo de segurança da instância que permita acesso HTTPS de entrada da lista de prefixos gerenciados do VPC Lattice, para que o tráfego do VPC Lattice nessa região possa chegar na instância. Se você remover todas as outras regras de entrada do grupo de segurança, poderá impedir a chegada à instância de qualquer outro tráfego que não seja do VPC Lattice.

Os nomes das listas de prefixos gerenciados para o VPC Lattice são os seguintes:
+ com.amazonaws. *region*.vpc-lattice
+ com.amazonaws. *region*.ipv6.vpc-lattice

Para obter mais informações, consulte [listaS de prefixos gerenciados da AWS](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#available-aws-managed-prefix-lists) no *Guia do usuário da Amazon VPC*.

**Clientes Windows e macOS**  
Os endereços nas listas de prefixos do VPC Lattice são endereços locais de link e endereços públicos não roteáveis. Se você se conectar à VPC Lattice a partir desses clientes, deverá atualizar suas configurações para que ela encaminhe os endereços IP na lista de prefixos gerenciados para o endereço IP primário do cliente. Veja a seguir um exemplo de comando que atualiza a configuração do cliente Windows, onde 169.254.171.0 está um dos endereços na lista de prefixos gerenciados. 

```
C:\> route add 169.254.171.0 mask 255.255.255.0 primary-ip-address
```

Veja a seguir um exemplo de comando que atualiza a configuração do cliente macOS, onde 169.254.171.0 está um dos endereços na lista de prefixos gerenciados. 

```
sudo route -n add -net 169.254.171.0 primary-ip-address 255.255.255.0
```

Para evitar a criação de uma rota estática, recomendamos que você use um endpoint de rede de serviços em uma VPC para estabelecer conectividade. Para obter mais informações, consulte [Gerencie associações de endpoints VPC da rede de serviços](service-network-associations.md#service-network-vpc-endpoint-associations).

## Regras de grupos de segurança
<a name="security-groups-rules"></a>

Usar o VPC Lattice com ou sem grupos de segurança não afetará sua configuração de grupo de segurança da VPC existente. No entanto, você pode adicionar seus próprios grupos de segurança a qualquer momento.

**Considerações importantes**
+ As regras do grupo de segurança para clientes controlam o tráfego de saída para o VPC Lattice. 
+ As regras do grupo de segurança para alvos controlam o tráfego de entrada do VPC Lattice para os alvos, incluindo o tráfego de verificação de integridade. 
+ As regras do grupo de segurança para a associação entre a rede de serviços e a VPC controlam quais clientes podem acessar a rede de serviços do VPC Lattice.
+ As regras de grupo de segurança para o gateway de recursos controlam o tráfego de saída do gateway de recursos para os recursos.

**Regras de saída recomendadas para o tráfego que flui do gateway de recursos para um recurso de banco de dados**  
Para que o tráfego flua do gateway de recursos para os recursos, você deve criar regras de saída para as portas abertas e protocolos de escuta aceitos para os recursos.


| Destino | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| CIDR range for resource | TCP | 3306 | Permitir tráfego do gateway de recursos para bancos de dados | 

**Regras de entrada recomendadas para redes de serviço e associações de VPC**  
Para que o tráfego flua do cliente VPCs para os serviços associados à rede de serviços, você deve criar regras de entrada para as portas do listener e protocolos do listener para os serviços.


| Fonte | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| VPC CIDR | listener | listener | Permita tráfego de clientes para o VPC Lattice | 

**Regras de saída recomendadas para o fluxo de tráfego das instâncias do cliente para o VPC Lattice**  
Por padrão, os grupos de segurança permitem todo o tráfego de saída. No entanto, se você tiver regras de saída personalizadas, deverá permitir o tráfego de saída para o prefixo VPC Lattice para portas e protocolos de ouvinte para que as instâncias do cliente possam se conectar a todos os serviços associados à rede de serviços VPC Lattice. Você pode permitir esse tráfego fazendo referência ao ID da lista de prefixos do VPC Lattice.


| Destino | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | listener | listener | Permita tráfego de clientes para o VPC Lattice | 

**Regras de entrada recomendadas para o fluxo de tráfego do VPC Lattice para as instâncias de destino**  
Você não pode usar o grupo de segurança do cliente como origem para os grupos de segurança do seu destino, porque o tráfego é proveniente do VPC Lattice. Você pode fazer referência ao ID da lista de prefixos do VPC Lattice.


| Fonte | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | target | target | Permitir tráfego do VPC Lattice para os destinos | 
| ID of the VPC Lattice prefix list | health check | health check | Permitir a verificação de integridade do tráfego do VPC Lattice para os destinos | 

## Gerenciar grupos de segurança para uma associação de VPC
<a name="service-network-security-group"></a>

Você pode usar o AWS CLI para visualizar, adicionar ou atualizar grupos de segurança na VPC para atender à associação de rede. 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.

Antes de começar, confirme se você criou o grupo de segurança na mesma VPC que você deseja adicionar à rede de serviços. Para obter mais informações, consulte [Controle o tráfego para seus recursos usando grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) no Guia do *usuário da Amazon VPC*

**Para adicionar um grupo de segurança ao criar uma associação de VPC usando o console**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, em **VPC Lattice**, escolha **Redes de serviço**.

1. Selecione o nome da rede de serviços para abrir sua página de detalhes.

1. Na guia **Associações de VPC**, escolha **Criar associações de VPC** e, em seguida, escolha **Adicionar associação de VPC**.

1. Selecione uma VPC e até cinco grupos de segurança.

1. Escolha **Salvar alterações**.

**Para adicionar ou atualizar grupos de segurança para uma associação de VPC existente usando o console**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, em **VPC Lattice**, escolha **Redes de serviço**.

1. Selecione o nome da rede de serviços para abrir sua página de detalhes.

1. Na guia **Associações de VPC**, marque a caixa de seleção da associação e escolha **Ações**, **Editar grupos de segurança**.

1. Adicione e remova grupos de segurança conforme necessário.

1. Escolha **Salvar alterações**.

**Para adicionar um grupo de segurança ao criar uma associação de VPC usando o AWS CLI**  
Use o comando [create-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-service-network-vpc-association.html), especificando o ID da VPC para a associação VPC e o ID dos grupos de segurança a serem adicionados.

```
aws vpc-lattice create-service-network-vpc-association \
    --service-network-identifier sn-0123456789abcdef0 \
    --vpc-identifier vpc-1a2b3c4d \
    --security-group-ids sg-7c2270198example
```

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

```
{
  "arn": "arn",
  "createdBy": "464296918874",
  "id": "snva-0123456789abcdef0",
  "status": "CREATE_IN_PROGRESS",
  "securityGroupIds": ["sg-7c2270198example"]
}
```

**Para adicionar ou atualizar grupos de segurança para uma associação de VPC existente usando o AWS CLI**  
Use o comando [update-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/update-service-network-vpc-association.html), especificando o ID da rede de serviços e dos grupos IDs de segurança. Esses grupos de segurança substituem qualquer outro grupo de segurança anteriormente associado. Defina pelo menos um grupo de segurança ao atualizar a lista.

```
aws vpc-lattice update-service-network-vpc-association 
    --service-network-vpc-association-identifier sn-903004f88example \
    --security-group-ids sg-7c2270198example sg-903004f88example
```

**Atenção**  
Não é possível remover todos os grupos de segurança. Em vez disso, primeiro você deve excluir a associação de VPC e, em seguida, recriar a associação de VPC sem nenhum grupo de segurança. Tenha cuidado ao excluir a associação de VPC. Isso impede que o tráfego chegue aos serviços que estão nessa rede de serviços.

# Controle o tráfego para o VPC Lattice usando a rede ACLs
<a name="network-acls"></a>

Uma lista de controle de acesso (ACL) de rede permite ou não determinado tráfego de entrada ou de saída no nível da sub-rede. A ACL de rede padrão permite todo o tráfego de entrada e saída. Você pode criar uma rede personalizada ACLs para suas sub-redes para fornecer uma camada adicional de segurança. Para obter mais informações, consulte [Rede ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) no Guia do *usuário da Amazon VPC*.

**Topics**
+ [Rede ACLs para suas sub-redes de clientes](#network-acl-client-subnets)
+ [Rede ACLs para suas sub-redes de destino](#network-acl-target-subnets)

## Rede ACLs para suas sub-redes de clientes
<a name="network-acl-client-subnets"></a>

A rede ACLs para sub-redes de clientes deve permitir tráfego entre clientes e o VPC Lattice. Você pode obter os intervalos de endereços IP permitidos na [lista de prefixos gerenciados](security-groups.md#managed-prefix-list) do VPC Lattice.

Veja a seguir um exemplo de regra de entrada.


| Fonte | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | TCP | 1025-65535 | Permitir tráfego do VPC Lattice para clientes | 

Veja a seguir um exemplo de uma regra de saída.


| Destino | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | listener | listener | Permita tráfego de clientes para o VPC Lattice | 

## Rede ACLs para suas sub-redes de destino
<a name="network-acl-target-subnets"></a>

A rede das sub-redes ACLs de destino deve permitir o tráfego entre os destinos e o VPC Lattice na porta de destino e na porta de verificação de integridade. Você pode obter os intervalos de endereços IP permitidos na [lista de prefixos gerenciados](security-groups.md#managed-prefix-list) do VPC Lattice.

Veja a seguir um exemplo de regra de entrada.


| Fonte | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | target | Permitir tráfego do VPC Lattice para os destinos | 
| vpc\$1lattice\$1cidr\$1block | health check | health check | Permitir a verificação de integridade do tráfego do VPC Lattice para os destinos | 

Veja a seguir um exemplo de uma regra de saída.


| Destino | Protocolo | Intervalo de portas | Comment | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | 1024-65535 | Permitir tráfego de destinos para o VPC Lattice | 
| vpc\$1lattice\$1cidr\$1block | health check | 1024-65535 | Permitir tráfego de verificação de integridade de destinos para o VPC Lattice | 

# SIGv4 solicitações autenticadas para o Amazon VPC Lattice
<a name="sigv4-authenticated-requests"></a>

O VPC Lattice usa Signature Version 4 (SIGv4) ou Signature Version 4A (A) para autenticação do SIGv4 cliente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

**Considerações**
+ O VPC Lattice tenta autenticar qualquer solicitação assinada com ou A. SIGv4 SIGv4 Solicitações sem autenticação falharão.
+ O VPC Lattice não oferece suporte à assinatura de carga útil. Você deve enviar um cabeçalho `x-amz-content-sha256` com o valor definido como `"UNSIGNED-PAYLOAD"`.

**Topics**
+ [Python](#sigv4-authenticated-requests-python)
+ [Java](#sigv4-authenticated-requests-java-custom-interceptor)
+ [Node.js](#sigv4-authenticated-requests-nodejs)
+ [Golang](#sigv4-authenticated-requests-golang)
+ [Golang - GRPC](#sigv4-authenticated-requests-golang-grpc)

## Python
<a name="sigv4-authenticated-requests-python"></a>

Este exemplo envia as solicitações assinadas por meio de uma conexão segura com um serviço registrado na rede. Se você preferir usar [solicitações](https://requests.readthedocs.io/en/latest/), o pacote [botocore](https://github.com/boto/botocore) simplifica o processo de autenticação, mas não é estritamente obrigatório. Para obter mais informações, consulte [Credenciais](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) na documentação do Boto3.

Para instalar os `awscrt` pacotes `botocore` e, use o comando a seguir. Para obter mais informações, consulte [AWS CRT Python.](https://pypi.org/project/awscrt/)

```
pip install botocore awscrt
```

Se você executar o aplicativo cliente no Lambda, instale os módulos necessários usando [camadas do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html) ou inclua-os em seu pacote de implantação.

No exemplo a seguir, substitua os valores do espaço reservado pelos seus próprios valores.

------
#### [ SIGv4 ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4Auth(session.get_credentials(), 'vpc-lattice-svcs', 'us-west-2')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------
#### [ SIGv4A ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4AsymAuth(session.get_credentials(), 'vpc-lattice-svcs', '*')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False 
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------

## Java
<a name="sigv4-authenticated-requests-java-custom-interceptor"></a>

Este exemplo mostra como você pode realizar a assinatura de solicitações usando interceptores personalizados. Ele usa a classe de provedor de credenciais padrão do [AWS SDK for Java 2.x](https://github.com/aws/aws-sdk-java-v2), que obtém as credenciais corretas para você. Se você preferir usar um provedor de credenciais específico, você pode selecionar um no [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html). O AWS SDK para Java permite somente cargas não assinadas por HTTPS. No entanto, você pode estender o signatário para oferecer suporte a cargas úteis não assinadas por HTTP.

------
#### [ SIGv4 ]

```
package com.example;

import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4 {

    public static void main(String[] args) {
        AwsV4HttpSigner signer = AwsV4HttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <region>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4HttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4HttpSigner.REGION_NAME, args[1]));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }

    }
}
```

------
#### [ SIGv4A ]

Este exemplo requer uma dependência adicional de. `software.amazon.awssdk:http-auth-aws-crt`

```
package com.example;


import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner;
import software.amazon.awssdk.http.auth.aws.signer.RegionSet;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;
import java.util.Arrays;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4a {
    
    public static void main(String[] args) {
        AwsV4aHttpSigner signer = AwsV4aHttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <regionset>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4aHttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4aHttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4aHttpSigner.REGION_SET, RegionSet.create(String.join(" ",Arrays.copyOfRange(args, 1, args.length)))));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }
    }
}
```

------

## Node.js
<a name="sigv4-authenticated-requests-nodejs"></a>

Este exemplo usa [vinculações NodeJS aws-crt](https://github.com/awslabs/aws-crt-nodejs) para enviar uma solicitação assinada usando HTTPS.

Para instalar o pacote `aws-crt`, execute o comando a seguir.

```
npm -i aws-crt
```

Se a variável de ambiente `AWS_REGION` existir, o exemplo usará a região especificada por `AWS_REGION`. A região padrão é `us-east-1`.

------
#### [ SIGv4 ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------
#### [ SIGv4A ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4Asymmetric;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------

## Golang
<a name="sigv4-authenticated-requests-golang"></a>

Este exemplo usa os [geradores de código Smithy para Go e o AWS SDK para](https://github.com/aws/smithy-go) [a linguagem de programação Go para](https://github.com/aws/aws-sdk-go) lidar com solicitações de assinatura de solicitações. O exemplo requer uma versão Go de 1.21 ou superior.

------
#### [ SIGv4 ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
        set   bool
        value string
}
 
 
        flag.PrintDefaults()
        os.Exit(1)
}
 
func main() {
        flag.Parse()
        if !url.set || !region.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go  <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                Region: region.String(),
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------
#### [ SIGv4A ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4a"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
 
func main() {
        flag.Parse()
        if !url.set || !regionSet.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4a.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Create a slice out of the provided regionset
        rs := strings.Split(regionSet.value, ",")
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4a.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                RegionSet: rs,
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------

## Golang - GRPC
<a name="sigv4-authenticated-requests-golang-grpc"></a>

Este exemplo usa o [AWS SDK para a linguagem de programação Go](https://github.com/aws/aws-sdk-go-v2/) para lidar com a assinatura de solicitações de GRPC. Isso pode ser usado com o [servidor de eco do repositório](https://github.com/grpc/grpc-go/tree/master/examples/features/proto/echo) de código de amostra do GRPC.

```
package main

import (
    "context"
    "crypto/tls"
    "crypto/x509"

    "flag"
    "fmt"
    "log"
    "net/http"
    "net/url"
    "strings"
    "time"

    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"

    "github.com/aws/aws-sdk-go-v2/aws"
    v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
    "github.com/aws/aws-sdk-go-v2/config"

    ecpb "google.golang.org/grpc/examples/features/proto/echo"
)

const (
    headerContentSha    = "x-amz-content-sha256"
    headerSecurityToken = "x-amz-security-token"
    headerDate          = "x-amz-date"
    headerAuthorization = "authorization"
    unsignedPayload     = "UNSIGNED-PAYLOAD"
)

type SigV4GrpcSigner struct {
    service      string
    region       string
    credProvider aws.CredentialsProvider
    signer       *v4.Signer
}

func NewSigV4GrpcSigner(service string, region string, credProvider aws.CredentialsProvider) *SigV4GrpcSigner {
    signer := v4.NewSigner()
    return &SigV4GrpcSigner{
        service:      service,
        region:       region,
        credProvider: credProvider,
        signer:       signer,
    }
}

func (s *SigV4GrpcSigner) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
    ri, _ := credentials.RequestInfoFromContext(ctx)
    creds, err := s.credProvider.Retrieve(ctx)
    if err != nil {
        return nil, fmt.Errorf("failed to load credentials: %w", err)
    }

    // The URI we get here is scheme://authority/service/ - for siging we want to include the RPC name
    // But RequestInfoFromContext only has the combined /service/rpc-name - so read the URI, and
    // replace the Path with what we get from RequestInfo.
    parsed, err := url.Parse(uri[0])
    if err != nil {
        return nil, err
    }
    parsed.Path = ri.Method

    // Build a request for the signer.
    bodyReader := strings.NewReader("")
    req, err := http.NewRequest("POST", uri[0], bodyReader)
    if err != nil {
        return nil, err
    }
    date := time.Now()
    req.Header.Set(headerContentSha, unsignedPayload)
    req.Header.Set(headerDate, date.String())
    if creds.SessionToken != "" {
        req.Header.Set(headerSecurityToken, creds.SessionToken)
    }
    // The signer wants this as //authority/path
    // So get this by triming off the scheme and the colon before the first slash.
    req.URL.Opaque = strings.TrimPrefix(parsed.String(), parsed.Scheme+":")

    err = s.signer.SignHTTP(context.Background(), creds, req, unsignedPayload, s.service, s.region, date)
    if err != nil {
        return nil, fmt.Errorf("failed to sign request: %w", err)
    }

    // Pull the relevant headers out of the signer, and return them to get
    // included in the request we make.
    reqHeaders := map[string]string{
        headerContentSha:    req.Header.Get(headerContentSha),
        headerDate:          req.Header.Get(headerDate),
        headerAuthorization: req.Header.Get(headerAuthorization),
    }
    if req.Header.Get(headerSecurityToken) != "" {
        reqHeaders[headerSecurityToken] = req.Header.Get(headerSecurityToken)
    }

    return reqHeaders, nil
}

func (c *SigV4GrpcSigner) RequireTransportSecurity() bool {
    return true
}

var addr = flag.String("addr", "some-lattice-service:443", "the address to connect to")
var region = flag.String("region", "us-west-2", "region")

func callUnaryEcho(client ecpb.EchoClient, message string) {
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()
    resp, err := client.UnaryEcho(ctx, &ecpb.EchoRequest{Message: message})
    if err != nil {
        log.Fatalf("client.UnaryEcho(_) = _, %v: ", err)
    }
    fmt.Println("UnaryEcho: ", resp.Message)
}

func main() {
    flag.Parse()
    cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
    if err != nil {
        log.Fatalf("failed to load SDK configuration, %v", err)
    }

    pool, _ := x509.SystemCertPool()
    tlsConfig := &tls.Config{
        RootCAs: pool,
    }

    authority, _, _ := strings.Cut(*addr, ":") // Remove the port from the addr
    opts := []grpc.DialOption{
        grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)),

        // Lattice needs both the Authority to be set (without a port), and the SigV4 signer
        grpc.WithAuthority(authority),
        grpc.WithPerRPCCredentials(NewSigV4GrpcSigner("vpc-lattice-svcs", *region, cfg.Credentials)),
    }

    conn, err := grpc.Dial(*addr, opts...)

    if err != nil {
        log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
    rgc := ecpb.NewEchoClient(conn)

    callUnaryEcho(rgc, "hello world")
}
```

# Proteção de dados no Amazon VPC Lattice
<a name="data-protection"></a>

O [modelo de responsabilidade AWS compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica à proteção de dados no Amazon VPC Lattice. Conforme descrito neste modelo, AWS é responsável por proteger a infraestrutura global que executa todos os Nuvem AWS. Você é responsável por manter o controle sobre seu conteúdo hospedado nessa infraestrutura. Esse conteúdo inclui as tarefas de configuração e gerenciamento de segurança dos Serviços da AWS que você usa. Para obter mais informações sobre a privacidade de dados, consulte as [Perguntas Frequentes sobre Privacidade de Dados.](https://aws.amazon.com/compliance/data-privacy-faq/). Para saber mais sobre a proteção de dados na Europa, consulte a postagem do blog [AWS Shared Responsibility Model and RGPD](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS *.

## Criptografia em trânsito
<a name="encryption-transit"></a>

O VPC Lattice é um serviço totalmente gerenciado que consiste em um ambiente de gerenciamento e um plano de dados. Cada ambiente serve a um propósito distinto no serviço. O plano de controle fornece o administrativo APIs usado para criar, ler/descrever, atualizar, excluir e listar recursos (CRUDL) (por exemplo, `CreateService` e). `UpdateService` As comunicações com o plano de controle do VPC Lattice são protegidas em trânsito pelo TLS. O plano de dados é a API VPC Lattice Invoke, que fornece a interconexão entre os serviços. O TLS criptografa as comunicações com o plano de dados do VPC Lattice quando você usa HTTPS ou TLS. O conjunto de cifras e a versão do protocolo usam os padrões fornecidos pelo VPC Lattice e não são configuráveis. Para obter mais informações, consulte [Receptores HTTPS para serviços VPC Lattice](https-listeners.md).

## Criptografia em repouso
<a name="encryption-rest"></a>

Por padrão, a criptografia de dados em repouso reduz a sobrecarga operacional e a complexidade envolvidas na proteção de dados confidenciais. Ao mesmo tempo, isso permite que você crie aplicações seguras que atendam aos rigorosos requisitos regulatórios e de conformidade de criptografia.

**Topics**
+ [Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3)](#s3-managed-keys)
+ [Criptografia do lado do servidor com AWS KMS chaves armazenadas em AWS KMS (SSE-KMS)](#kms-managed-keys)

### Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3)
<a name="s3-managed-keys"></a>

Quando você usa criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3), cada objeto é criptografado com uma chave exclusiva. Como proteção adicional, criptografamos a chave em si com uma chave raiz que rotacionamos regularmente. A criptografia no lado do servidor do Amazon S3 usa uma das criptografias de bloco mais fortes disponíveis, o GCM padrão de criptografia avançada de 256 bits (AES-256), para criptografar seus dados. Sobre objetos criptografados antes do AES-GCM, o AES-CBC ainda é compatível com a descriptografia desses objetos. Para obter mais informações, consulte [Como usar criptografia no lado do servidor com chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html).

Se você habilitar a criptografia do lado do servidor com chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3) para seu bucket do S3 para registros de acesso do VPC Lattice, nós criptografamos automaticamente cada arquivo de log de acesso antes que ele seja armazenado em seu bucket do S3. Para obter mais informações, consulte [Registros enviados para o Amazon S3 no Guia CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) *do usuário da Amazon*.

### Criptografia do lado do servidor com AWS KMS chaves armazenadas em AWS KMS (SSE-KMS)
<a name="kms-managed-keys"></a>

A criptografia do lado do servidor com AWS KMS chaves (SSE-KMS) é semelhante à SSE-S3, mas com benefícios e cobranças adicionais pelo uso desse serviço. Há permissões separadas para a AWS KMS chave que fornecem proteção adicional contra o acesso não autorizado de seus objetos no Amazon S3. O SSE-KMS também fornece uma trilha de auditoria que mostra quando e por quem sua AWS KMS chave foi usada. Para obter mais informações, consulte [Utilização da criptografia no lado do servidor com o AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html).

**Topics**
+ [Criptografia e decodificação da chave privada do seu certificado](#private-key)
+ [Contexto de criptografia para o VPC Lattice](#encryption-context)
+ [Monitoramento das suas chaves de criptografia para o VPC Lattice](#monitoring-encryption-keys)

#### Criptografia e decodificação da chave privada do seu certificado
<a name="private-key"></a>

**Seu certificado ACM e sua chave privada são criptografados usando uma chave KMS AWS gerenciada que tem o alias aws/acm.** Você pode ver o ID da chave com esse alias no AWS KMS console, em **chaves AWS gerenciadas**.

O VPC Lattice não acessa diretamente seus recursos do ACM. Ele usa o Gerenciador de AWS Conexões TLS para proteger e acessar as chaves privadas do seu certificado. Quando você usa seu certificado do ACM para criar um serviço VPC Lattice, o VPC Lattice associa seu certificado ao AWS TLS Connection Manager. Isso é feito criando uma concessão em AWS KMS relação à sua chave AWS gerenciada com o prefixo **aws/acm**. Uma concessão é um instrumento de política que permite que o TLS Connection Manager usem chaves do KMS em operações de criptografia. A concessão permite que a entidade principal autorizada (TLS Connection Manager) chame as operações de concessão especificadas na chave do KMS para decifrar a chave privada do seu certificado. Em seguida, o TLS Connection Manager usará o certificado e a chave privada descriptografada (texto simples) para estabelecer uma conexão segura (sessão SSL/TLS) com clientes de serviços do VPC Lattice. Quando o certificado for desassociado de um serviço VPC Lattice, a concessão será removida.

Se você quiser remover o acesso à chave KMS, recomendamos que você substitua ou exclua o certificado do serviço usando o Console de gerenciamento da AWS ou o `update-service` comando no. AWS CLI

#### Contexto de criptografia para o VPC Lattice
<a name="encryption-context"></a>

Um [contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) é um conjunto opcional de pares de valores-chave que contêm informações contextuais sobre para que sua chave privada pode ser usada. AWS KMS vincula o contexto de criptografia aos dados criptografados e os usa como dados autenticados adicionais para oferecer suporte à criptografia autenticada.

Quando suas chaves TLS são usadas com o VPC Lattice e o TLS Connection manager, o nome do seu serviço VPC Lattice é incluído no contexto de criptografia usado para criptografar sua chave em repouso. Você pode verificar para qual serviço VPC Lattice seu certificado e sua chave privada estão sendo usados visualizando o contexto de criptografia em seus CloudTrail registros, conforme mostrado na próxima seção, ou examinando a guia **Recursos associados no console** do ACM.

Para descriptografar os dados, o mesmo contexto de criptografia é incluído na solicitação. O VPC Lattice usa o mesmo contexto de criptografia em todas as operações criptográficas do AWS KMS, onde a chave está `aws:vpc-lattice:arn` e o valor é o Amazon Resource Name (ARN) do serviço VPC Lattice.

O seguinte exemplo mostra o contexto de criptografia na saída de uma operação como `CreateGrant`:

```
"encryptionContextEquals": {
    "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
}
```

#### Monitoramento das suas chaves de criptografia para o VPC Lattice
<a name="monitoring-encryption-keys"></a>

Quando você usa uma chave AWS gerenciada com seu serviço VPC Lattice, você pode usá-la [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)para rastrear solicitações enviadas pela VPC Lattice. AWS KMS

**CreateGrant**  
Quando você adiciona seu certificado do ACM a um serviço VPC Lattice, uma solicitação `CreateGrant` é enviada em seu nome para que o TLS Connection manager possa descriptografar a chave privada associada ao seu certificado do ACM.

Você pode ver a `CreateGrant` operação como um evento em **CloudTrail**, **Histórico de eventos**, **CreateGrant**.

Veja a seguir um exemplo de registro de CloudTrail evento no histórico de eventos da `CreateGrant` operação.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::111122223333:user/Alice",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "sessionContext": {
            "sessionIssuer": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::111122223333:user/Alice",
                "accountId": "111122223333",
                "userName": "Alice"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-02-06T23:30:50Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "acm.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:18Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "acm.amazonaws.com",
    "userAgent": "acm.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "tlsconnectionmanager.amazonaws.com",
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextEquals": {
                "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
            }
        },
        "retiringPrincipal": "acm.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "requestID": "ba178361-8ab6-4bdd-9aa2-0d1a44b2974a",
    "eventID": "8d449963-1120-4d0c-9479-f76de11ce609",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

No `CreateGrant` exemplo acima, o principal beneficiário é o Gerenciador de Conexões TLS, e o contexto de criptografia tem o ARN do serviço VPC Lattice.

**ListGrants**  
Você pode usar o ID da chave do KMS e o ID da conta para chamar a API `ListGrants`. Ela fornecerá uma lista de todas as concessões para a chave do KMS especificada. Para obter mais informações, consulte [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html).

Use o `ListGrants` comando a seguir no AWS CLI para ver os detalhes de todas as concessões.

```
aws kms list-grants —key-id your-kms-key-id
```

O seguinte é um exemplo de saída.

```
{
    "Grants": [
        {
            "Operations": [
                "Decrypt"
            ], 
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
            "Name": "IssuedThroughACM", 
            "RetiringPrincipal": "acm.us-west-2.amazonaws.com", 
            "GranteePrincipal": "tlsconnectionmanager.amazonaws.com", 
            "GrantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", 
            "IssuingAccount": "arn:aws:iam::111122223333:root", 
            "CreationDate": "2023-02-06T23:30:50Z", 
            "Constraints": {
                "encryptionContextEquals": {
                  "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                  "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
                }
            }
        }
    ]
}
```

No `ListGrants` exemplo acima, o principal beneficiário é o Gerenciador de Conexões TLS e o contexto de criptografia tem o ARN do serviço VPC Lattice.

**Decrypt**  
O VPC Lattice usa o TLS Connection manager para chamar a operação `Decrypt` para descriptografar sua chave privada a fim de atender conexões TLS em seu serviço VPC Lattice. Você pode ver a `Decrypt` operação como um evento em **Histórico de **CloudTrail**eventos**, **Decrypt**.

Veja a seguir um exemplo de registro de CloudTrail evento no histórico de eventos da `Decrypt` operação.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "tlsconnectionmanager.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:23Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "tlsconnectionmanager.amazonaws.com",
    "userAgent": "tlsconnectionmanager.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "12345126-30d5-4b28-98b9-9153da559963",
    "eventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "sharedEventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "eventCategory": "Management"
}
```

# Identity and Access Management para o Amazon VPC Lattice
<a name="security-iam"></a>

As seções a seguir descrevem como você pode usar o AWS Identity and Access Management (IAM) para ajudar a proteger seus recursos do VPC Lattice, controlando quem pode realizar ações da API do VPC Lattice.

**Topics**
+ [Funcionamento do Amazon VPC Lattice com o IAM](security_iam_service-with-iam.md)
+ [Permissões da API Amazon VPC Lattice](additional-api-permissions.md)
+ [Políticas baseadas em identidade para o Amazon VPC Lattice](security_iam_id-based-policies.md)
+ [Usando funções vinculadas a serviços para Amazon VPC Lattice](using-service-linked-roles.md)
+ [AWS políticas gerenciadas para Amazon VPC Lattice](managed-policies.md)

# Funcionamento do Amazon VPC Lattice com o IAM
<a name="security_iam_service-with-iam"></a>

Antes de usar o IAM para gerenciar o acesso ao VPC Lattice, saiba quais recursos do IAM estão disponíveis para uso com o VPC Lattice.




| Recurso do IAM | Compatibilidade com o VPC Lattice | 
| --- | --- | 
|  [Políticas baseadas em identidade](#security_iam_service-with-iam-id-based-policies)  |   Sim  | 
|  [Políticas baseadas em atributos](#security_iam_service-with-iam-resource-based-policies)  |   Sim  | 
|  [Ações de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sim  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sim  | 
|  [Chaves de condição de políticas](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sim  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Não   | 
|  [ABAC (tags em políticas)](#security_iam_service-with-iam-tags)  |   Sim  | 
|  [Credenciais temporárias](#security_iam_service-with-iam-roles-tempcreds)  |   Sim  | 
|  [Perfis de serviço](#security_iam_service-with-iam-roles-service)  |   Não   | 
|  [Perfis vinculados ao serviço](#security_iam_service-with-iam-roles-service-linked)  |   Sim  | 

Para uma visão de alto nível de como o VPC Lattice e AWS outros serviços funcionam com a maioria dos recursos do IAM, [AWS consulte os serviços que funcionam com](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) *o* IAM no Guia do usuário do IAM.

## Políticas baseadas em identidade para o VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatível com políticas baseadas em identidade:** sim

As políticas baseadas em identidade são documentos de políticas de permissões JSON que podem ser anexados a uma identidade, como usuário do IAM, grupo de usuários ou perfil. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte [Referência de elemento de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

## Políticas baseadas em recursos no VPC Lattice
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Compatível com políticas baseadas em recursos:** sim

Políticas baseadas em recursos são documentos de política JSON que você anexa a um recurso em. AWS Em AWS serviços que oferecem suporte a políticas baseadas em recursos, os administradores de serviços podem usá-las para controlar o acesso a um recurso específico desse serviço. AWS Para o atributo ao qual a política está anexada, a política define quais ações uma entidade principal especificado pode executar nesse atributo e em que condições. Você deve especificar uma entidade principal em uma política baseada em recursos.

O VPC Lattice oferece suporte a *políticas de autenticação*, uma política baseada em recursos que permite controlar o acesso aos serviços em sua rede de serviços. Para obter mais informações, consulte [Controle o acesso aos serviços do VPC Lattice usando políticas de autenticação](auth-policies.md).

O VPC Lattice também oferece suporte a políticas de permissões baseadas em recursos para integração com o AWS Resource Access Manager. Você pode usar essas políticas baseadas em recursos para conceder permissão para gerenciar a conectividade com outras AWS contas ou organizações para serviços, configurações de recursos e redes de serviços. Para obter mais informações, consulte [Share your VPC Lattice entities](sharing.md).

## Ações de políticas para o VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatível com ações de políticas:** sim

Em uma declaração de política do IAM, é possível especificar qualquer ação de API de qualquer serviço que dê suporte ao IAM. Para o VPC Lattice, use o seguinte prefixo com o nome da ação de API `vpc-lattice:`. Por exemplo: `vpc-lattice:CreateService`, `vpc-lattice:CreateTargetGroup` e `vpc-lattice:PutAuthPolicy`.

Para especificar várias ações em uma única declaração, separe-as com vírgulas, da seguinte maneira:

```
"Action": [ "vpc-lattice:action1", "vpc-lattice:action2" ]
```

Também é possível especificar várias ações usando asteriscos. Por exemplo, é possível especificar todas as ações cujos nomes comecem com a palavra `Get`, da seguinte maneira:

```
"Action": "vpc-lattice:Get*"
```

Para obter uma lista completa das ações de API do VPC Lattice, consulte [Ações definidas pelo Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-actions-as-permissions) na *Referência de autorização de serviço*.

## Recursos de políticas para o VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatível com recursos de políticas:** sim

Em uma instrução de política do IAM, o elemento `Resource` especifica o objeto ou os objetos abrangidos pela instrução. Para o VPC Lattice, cada declaração de política do IAM se aplica aos recursos que você especifica usando eles. ARNs

O formato específico do nome do recurso da Amazon (ARN) dependerá do recurso. Ao fornecer um ARN, substitua o *italicized* texto pelas informações específicas do recurso. 
+ **Inscrições em log de acesso:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:accesslogsubscription/access-log-subscription-id"
  ```
+ **Receptores:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id"
  ```
+ **Gateways de recursos**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourcegateway/resource-gateway-id"
  ```
+ **Configuração de recursos**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourceconfiguration/resource-configuration-id"
  ```
+ **Regras:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id/rule/rule-id"
  ```
+ **Serviços:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id"
  ```
+ **Redes de serviços:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetwork/service-network-id"
  ```
+ **Associações a serviço de rede de serviços:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkserviceassociation/service-network-service-association-id"
  ```
+ **Associações de configuração de recursos de rede de serviços**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkresourceassociation/service-network-resource-association-id"
  ```
+ **Associações a VPC de rede de serviços:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkvpcassociation/service-network-vpc-association-id"
  ```
+ **Grupos de destino:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:targetgroup/target-group-id"
  ```

## Chaves de condição de política do VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatível com chaves de condição de política específicas de serviço:** sim

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Condition` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

*Para ver uma lista das chaves de condição do VPC Lattice, consulte Chaves de [condição do Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-policy-keys) na Referência de autorização de serviço.*

AWS suporta chaves de condição globais e chaves de condição específicas do serviço. Para obter informações sobre chaves de condição AWS globais, consulte [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

## Listas de controle de acesso (ACLs) na VPC Lattice
<a name="security_iam_service-with-iam-acls"></a>

**Suportes ACLs:** Não 

As listas de controle de acesso (ACLs) controlam quais diretores (membros da conta, usuários ou funções) têm permissões para acessar um recurso. ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

## Controle de acesso por atributos (ABAC) com o VPC Lattice
<a name="security_iam_service-with-iam-tags"></a>

**Compatível com ABAC (tags em políticas):** sim

O controle de acesso por atributo (ABAC) é uma estratégia de autorização que define permissões com base em atributos chamados de tags. Você pode anexar tags a entidades e AWS recursos do IAM e, em seguida, criar políticas ABAC para permitir operações quando a tag do diretor corresponder à tag no recurso.

Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` ou chaves de condição `aws:TagKeys`.

Se um serviço for compatível com as três chaves de condição para cada tipo de recurso, o valor será **Sim** para o serviço. Se um serviço for compatível com as três chaves de condição somente para alguns tipos de recursos, o valor será **Parcial**

Para saber mais sobre o ABAC, consulte [Definir permissões com autorização do ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) no *Guia do usuário do IAM*. Para visualizar um tutorial com etapas para configurar o ABAC, consulte [Usar controle de acesso por atributo (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) no *Guia do usuário do IAM*.

## Usar credenciais temporárias com o VPC Lattice
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatível com credenciais temporárias:** sim

As credenciais temporárias fornecem acesso de curto prazo aos AWS recursos e são criadas automaticamente quando você usa a federação ou troca de funções. AWS recomenda que você gere credenciais temporárias dinamicamente em vez de usar chaves de acesso de longo prazo. Para ter mais informações, consulte [Credenciais de segurança temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) e [Serviços da Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

## Perfis de serviço para o VPC Lattice
<a name="security_iam_service-with-iam-roles-service"></a>

**Compatível com perfis de serviço:** não 

 O perfil de serviço é um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para saber mais, consulte [Criar um perfil para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do Usuário do IAM*. 

**Atenção**  
Alterar as permissões de um perfil de serviço pode prejudicar a funcionalidade do VPC Lattice. Apenas edite os perfis de serviço quando o VPC Lattice orientar você a fazer isso.

## Perfis vinculados a serviço para o VPC Lattice
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatibilidade com perfis vinculados a serviços:** sim

 Uma função vinculada ao serviço é um tipo de função de serviço vinculada a um. AWS service (Serviço da AWS) O serviço pode assumir o perfil de executar uma ação em seu nome. As funções vinculadas ao serviço aparecem em você Conta da AWS e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não editar as permissões para perfis vinculados ao serviço. 

Para obter informações sobre como criar ou gerenciar perfis vinculadas a serviço do VPC Lattice, consulte [Usando funções vinculadas a serviços para Amazon VPC Lattice](using-service-linked-roles.md).

# Permissões da API Amazon VPC Lattice
<a name="additional-api-permissions"></a>

Você deve conceder permissão para que identidade do IAM (como usuários ou perfis) chamem as ações de API do VPC Lattice necessárias, conforme indicado em [Ações de políticas para o VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions). Além disso, para algumas ações do VPC Lattice, você deve conceder permissão às identidades do IAM para chamar ações específicas de outras. AWS APIs

## Permissões necessárias para a API
<a name="required-API-permissions"></a>

Ao chamar as seguintes ações da API, você deverá conceder permissões para que os usuários do IAM chamem as ações especificadas.

`CreateResourceConfiguration`  
+ `vpc-lattice:CreateResourceConfiguration`
+ `ec2:DescribeSubnets`
+ `rds:DescribeDBInstances`
+ `rds:DescribeDBClusters`

`CreateResourceGateway`  
+ `vpc-lattice:CreateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`

`DeleteResourceGateway`  
+ `vpc-lattice:DeleteResourceGateway`
+ `ec2:DeleteNetworkInterface`

`UpdateResourceGateway`  
+ `vpc-lattice:UpdateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:UnassignPrivateIpAddresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:ModifyNetworkInterfaceAttribute`

`CreateServiceNetworkResourceAssociation`  
+ `vpc-lattice:CreateServiceNetworkResourceAssociation`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DescribeNetworkInterfaces`

`CreateServiceNetworkVpcAssociation`  
+ `vpc-lattice:CreateServiceNetworkVpcAssociation`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSecurityGroups` (necessária somente ao fornecer grupos de segurança)

`UpdateServiceNetworkVpcAssociation`  
+ `vpc-lattice:UpdateServiceNetworkVpcAssociation`
+ `ec2:DescribeSecurityGroups` (necessária somente ao fornecer grupos de segurança)

`CreateTargetGroup`  
+ `vpc-lattice:CreateTargetGroup`
+ `ec2:DescribeVpcs`

`RegisterTargets`  
+ `vpc-lattice:RegisterTargets`
+ `ec2:DescribeInstances` (necessária somente quando `INSTANCE` for o tipo de grupo de destino)
+ `ec2:DescribeVpcs` (necessária somente quando `INSTANCE` ou `IP` for o tipo de grupo de destino)
+ `ec2:DescribeSubnets` (necessária somente quando `INSTANCE` ou `IP` for o tipo de grupo de destino)
+ `lambda:GetFunction` (necessária somente quando `LAMBDA` for o tipo de grupo de destino)
+ `lambda:AddPermission` (necessária somente se o grupo de destino ainda não tiver permissão para invocar a função do Lambda especificada)

`DeregisterTargets`  
+ `vpc-lattice:DeregisterTargets`

`CreateAccessLogSubscription`  
+ `vpc-lattice:CreateAccessLogSubscription`
+ `logs:GetLogDelivery`
+ `logs:CreateLogDelivery`

`DeleteAccessLogSubscription`  
+ `vpc-lattice:DeleteAccessLogSubscription`
+ `logs:DeleteLogDelivery`

`UpdateAccessLogSubscription`  
+ `vpc-lattice:UpdateAccessLogSubscription`
+ `logs:UpdateLogDelivery`

# Políticas baseadas em identidade para o Amazon VPC Lattice
<a name="security_iam_id-based-policies"></a>

Por padrão, os usuários e os perfis não têm permissão para criar ou modificar os recursos do VPC Lattice. Para conceder permissão aos usuários para executar ações nos recursos que eles precisam, um administrador do IAM pode criar políticas do IAM.

Para aprender a criar uma política baseada em identidade do IAM ao usar esses documentos de política em JSON de exemplo, consulte [Criar políticas do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) no *Guia do usuário do IAM*.

*Para obter detalhes sobre ações e tipos de recursos definidos pelo VPC Lattice, incluindo o formato do ARNs para cada um dos tipos de recursos, consulte [Ações, recursos e chaves de condição do Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html) na Referência de autorização de serviço.*

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Permissões adicionais necessárias para acesso total](#security_iam_id-based-policy-additional-permissions)
+ [Exemplos de políticas baseadas em identidade para o VPC Lattice](#security_iam_id-based-policy-examples)

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do VPC Lattice em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões** aos seus usuários e cargas de trabalho, use as *políticas AWS gerenciadas* que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Permissões adicionais necessárias para acesso total
<a name="security_iam_id-based-policy-additional-permissions"></a>

Para usar outros AWS serviços aos quais o VPC Lattice está integrado e todo o conjunto de recursos do VPC Lattice, você deve ter permissões adicionais específicas. Essas permissões não estão incluídas na política gerenciada pela `VPCLatticeFullAccess` devido ao risco de escalonamento de privilégios conhecido por [“confused deputy”](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html). 

Você deverá anexar a política a seguir ao seu perfil e usá-la junto com a política gerenciada pela `VPCLatticeFullAccess`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "firehose:TagDeliveryStream",
                "lambda:AddPermission",
                "s3:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutResourcePolicy"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "vpc-lattice.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery*"
        }
    ]
}
```

------

Essa política fornece as seguintes permissões adicionais:
+ `iam:AttachRolePolicy`: permite que você anexe a política gerenciada especificada ao perfil do IAM especificado. 
+ `iam:PutRolePolicy`: permite que você adicione ou atualize um documento de política em linha que esteja incorporado ao perfil do IAM especificado.
+ `s3:PutBucketPolicy`: permite que você aplique uma política de bucket a um bucket do Amazon S3.
+ `firehose:TagDeliveryStream`: permite que você adicione ou atualize tags para fluxos de entrega do Firehose.

## Exemplos de políticas baseadas em identidade para o VPC Lattice
<a name="security_iam_id-based-policy-examples"></a>

**Topics**
+ [Exemplo de política: gerenciar associações de VPC a uma rede de serviços](#security_iam_id-based-policy-examples-vpc-to-service-network-association)
+ [Exemplo de política: criar associações de serviços a uma rede de serviços](#security_iam_id-based-policy-examples-service-to-service-network-association)
+ [Exemplo de política: adicionar tags aos recursos](#security_iam_id-based-policy-examples-tag-resources)
+ [Exemplo de política: criar uma função vinculada ao serviço](#security_iam_id-based-policy-examples-service-linked-role)

### Exemplo de política: gerenciar associações de VPC a uma rede de serviços
<a name="security_iam_id-based-policy-examples-vpc-to-service-network-association"></a>

O exemplo a seguir demonstra uma política que concede aos usuários dessa política a permissão para criar, atualizar e excluir as associações de VPC a uma rede de serviços, mas somente para a VPC e a rede de serviços especificadas na condição. Para obter mais informações sobre como especificar chaves de condição, consulte [Chaves de condição de política do VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkVpcAssociation",
            "vpc-lattice:UpdateServiceNetworkVpcAssociation",
            "vpc-lattice:DeleteServiceNetworkVpcAssociation"
         ],
         "Resource": [
            "*"
         ],
         "Condition": {
            "StringEquals": { 
               "vpc-lattice:ServiceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example",
               "vpc-lattice:VpcId": "vpc-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

### Exemplo de política: criar associações de serviços a uma rede de serviços
<a name="security_iam_id-based-policy-examples-service-to-service-network-association"></a>

Se você não estiver usando chaves de condição para controlar o acesso aos recursos do VPC Lattice, poderá especificar o número ARNs de recursos no `Resource` elemento para controlar o acesso.

O exemplo a seguir demonstra uma política que limita as associações de serviços a uma rede de serviços que os usuários com essa política podem criar especificando o serviço e a rede ARNs de serviços que podem ser usados com a ação da `CreateServiceNetworkServiceAssociation` API. Para obter mais informações sobre como especificar os valores de ARN, consulte [Recursos de políticas para o VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkServiceAssociation"
         ],
         "Resource": [
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetworkserviceassociation/*",
            "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-04d5cc9b88example",
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example"
         ]
      }
   ]
}
```

------

### Exemplo de política: adicionar tags aos recursos
<a name="security_iam_id-based-policy-examples-tag-resources"></a>

O exemplo a seguir demonstra uma política que dá permissão para que usuários com essa política de permissão criem tags nos recursos do VPC Lattice. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:TagResource"
         ],
         "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:*/*"
      }
   ]
}
```

------

### Exemplo de política: criar uma função vinculada ao serviço
<a name="security_iam_id-based-policy-examples-service-linked-role"></a>

O VPC Lattice exige permissões para criar uma função vinculada ao serviço na primeira vez em que qualquer usuário cria Conta da AWS recursos do VPC Lattice. Se o perfil vinculada a serviço ainda não existir, o VPC Lattice o criará em sua conta. A função vinculada ao serviço concede permissões à VPC Lattice para que ela possa ligar para outras pessoas em seu nome. Serviços da AWS Para obter mais informações, consulte [Usando funções vinculadas a serviços para Amazon VPC Lattice](using-service-linked-roles.md).

Para que a criação automática da função seja bem-sucedida, os usuários devem ter permissões para a ação `iam:CreateServiceLinkedRole`.

```
"Action": "iam:CreateServiceLinkedRole"
```

O exemplo a seguir demonstra uma política que dá permissão para que usuários com essa política de permissão criem um perfil vinculado a serviço para o VPC Lattice.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": "iam:CreateServiceLinkedRole",
         "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice",
         "Condition": {
            "StringLike": {
               "iam:AWSServiceName":"vpc-lattice.amazonaws.com"
            }
         }
      }
   ]
}
```

------

Para obter mais informações, consulte [Permissões do perfil vinculado a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) no *Guia do usuário do IAM*.

# Usando funções vinculadas a serviços para Amazon VPC Lattice
<a name="using-service-linked-roles"></a>

O Amazon VPC Lattice usa uma função vinculada ao serviço para as permissões necessárias para ligar para outras pessoas em seu nome. Serviços da AWS Para obter mais informações, consulte [Perfis vinculados ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) no *Guia do usuário do IAM*.

O VPC Lattice usa a função vinculada ao serviço chamada. AWSServiceRoleForVpcLattice

## Permissões de perfil vinculado a serviço para o VPC Lattice
<a name="slr-permissions"></a>

A função vinculada ao serviço **AWSServiceRoleForVpcLattice** confia no seguinte serviço para assumir a função:
+ `vpc-lattice.amazonaws.com`

A política de permissões de função nomeada AWSVpcLatticeServiceRolePolicy permite que o VPC Lattice publique CloudWatch métricas no namespace. `AWS/VpcLattice` Para obter mais informações, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html)na *Referência de política AWS gerenciada*.

É necessário configurar as permissões para permitir que uma entidade do IAM (como um usuário, grupo ou perfil) crie, edite ou exclua uma função vinculada ao serviço. Para obter mais informações, consulte [Exemplo de política: criar uma função vinculada ao serviço](security_iam_id-based-policies.md#security_iam_id-based-policy-examples-service-linked-role).

## Crie uma função vinculada a serviços para o VPC Lattice
<a name="create-slr"></a>

Não é necessário criar manualmente um perfil vinculado ao serviço. Quando você cria recursos do VPC Lattice na, no ou na Console de gerenciamento da AWS API AWS CLI, o VPC Lattice cria a AWS função vinculada ao serviço para você.

Se excluir esse perfil vinculado ao serviço e precisar criá-lo novamente, será possível usar esse mesmo processo para recriar o perfil em sua conta. Quando você cria recursos do VPC Lattice, o VPC Lattice cria o perfil vinculado a serviço para você novamente.

## Editar uma função vinculada a serviços para VPC Lattice
<a name="edit-slr"></a>

É possível editar a descrição de **AWSServiceRoleForVpcLattice** usando o IAM. Para obter mais informações, consulte [Editar uma descrição de perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console) no *Guia do usuário do IAM*.

## Excluir uma função vinculada ao serviço para VPC Lattice
<a name="delete-slr"></a>

Se você não precisar mais usar o Amazon VPC Lattice, recomendamos que você exclua. **AWSServiceRoleForVpcLattice**

Você só pode excluir esse perfil vinculado a serviço após excluir todos os recursos do VPC Lattice em sua Conta da AWS.

Use o console do IAM AWS CLI, o ou a AWS API para excluir a função **AWSServiceRoleForVpcLattice**vinculada ao serviço. Para obter mais informações, consulte [Excluir uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) no *Guia do usuário do IAM*.

Depois que você excluir um perfil vinculado a serviço, o VPC Lattice criará o perfil novamente quando você criar recursos do VPC Lattice na sua Conta da AWS.

## Regiões compatíveis com perfis vinculados a serviço do VPC Lattice
<a name="slr-regions"></a>

O VPC Lattice oferece suporte a perfis vinculados a serviço em todas as regiões nas quais o serviço esteja disponível.

# AWS políticas gerenciadas para Amazon VPC Lattice
<a name="managed-policies"></a>

Uma política AWS gerenciada é uma política autônoma criada e administrada por AWS. AWS as políticas gerenciadas são projetadas para fornecer permissões para muitos casos de uso comuns, para que você possa começar a atribuir permissões a usuários, grupos e funções.

Lembre-se de que as políticas AWS gerenciadas podem não conceder permissões de privilégio mínimo para seus casos de uso específicos porque estão disponíveis para uso de todos os AWS clientes. Recomendamos que você reduza ainda mais as permissões definindo as [ políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) que são específicas para seus casos de uso.

Você não pode alterar as permissões definidas nas políticas AWS gerenciadas. Se AWS atualizar as permissões definidas em uma política AWS gerenciada, a atualização afetará todas as identidades principais (usuários, grupos e funções) às quais a política está anexada. AWS é mais provável que atualize uma política AWS gerenciada quando uma nova AWS service (Serviço da AWS) é lançada ou novas operações de API são disponibilizadas para serviços existentes.

Para saber mais, consulte [AWS Políticas gerenciadas pela ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.

## AWS política gerenciada: VPCLattice FullAccess
<a name="vpc-lattice-fullaccess-policy"></a>

Essa política concede acesso total ao Amazon VPC Lattice e acesso limitado a outros serviços dependentes. Ela inclui permissões para fazer o seguinte:
+ ACM — Recupere o SSL/TLS ARN do certificado para nomes de domínio personalizados.
+ CloudWatch — Visualize registros de acesso e dados de monitoramento.
+ CloudWatch Registros — configure e envie registros de acesso para o CloudWatch Logs.
+ Amazon EC2 — Configure interfaces de rede e recupere informações sobre instâncias do EC2 e. VPCs Isso é usado para criar configurações de recursos, gateways de recursos e grupos de destino, configurar associações de entidades do VPC Lattice e registrar destinos.
+ Elastic Load Balancing: recupere informações sobre um Application Load Balancer para registrá-lo como destino.
+ Firehose — Recupere informações sobre fluxos de entrega usados para armazenar registros de acesso.
+ Lambda: recupere informações sobre uma função do Lambda para registrá-la como destino.
+ Amazon RDS — Recupere informações sobre clusters e instâncias do RDS.
+ Amazon S3: recupere informações sobre buckets do S3 usados para armazenar logs de acesso.

Para visualizar as permissões para esta política, consulte [VPCLatticeFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeFullAccess.html) na *Referência de políticas gerenciadas pela AWS *.

Para usar outros AWS serviços aos quais o VPC Lattice está integrado e todo o conjunto de recursos do VPC Lattice, você deve ter permissões adicionais específicas. Essas permissões não estão incluídas na política gerenciada pela `VPCLatticeFullAccess` devido ao risco de escalonamento de privilégios conhecido por [“confused deputy”](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html). Para obter mais informações, consulte [Permissões adicionais necessárias para acesso total](security_iam_id-based-policies.md#security_iam_id-based-policy-additional-permissions).

## AWS política gerenciada: VPCLattice ReadOnlyAccess
<a name="vpc-lattice-read-onlyaccess-policy"></a>

Essa política concede acesso somente leitura ao Amazon VPC Lattice e acesso limitado a outros serviços dependentes. Ela inclui permissões para fazer o seguinte:
+ ACM — Recupere o SSL/TLS ARN do certificado para nomes de domínio personalizados.
+ CloudWatch — Visualize registros de acesso e dados de monitoramento.
+ CloudWatch Registros — Visualize as informações de entrega de registros para assinaturas de registros de acesso.
+ Amazon EC2 — Recupere informações sobre instâncias do EC2 e crie grupos-alvo e VPCs registre alvos.
+ Elastic Load Balancing: recupere informações sobre um Application Load Balancer.
+ Firehose — Recupere informações sobre fluxos de entrega para entrega de registros de acesso.
+ Lambda: veja informações sobre uma função do Lambda.
+ Amazon RDS — Recupere informações sobre clusters e instâncias do RDS.
+ Amazon S3: recupere informações sobre buckets do S3 para entrega de logs de acesso.

Para visualizar as permissões para esta política, consulte [VPCLatticeReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeReadOnlyAccess.html) na *Referência de políticas gerenciadas pela AWS *.

## AWS política gerenciada: VPCLattice ServicesInvokeAccess
<a name="vpc-lattice-services-invoke-access-policy"></a>

Essa política fornece acesso à invocação de serviços do Amazon VPC Lattice.

Para visualizar as permissões para esta política, consulte [VPCLatticeServicesInvokeAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeServicesInvokeAccess.html) na *Referência de políticas gerenciadas pela AWS *.

## AWS política gerenciada: AWSVpc LatticeServiceRolePolicy
<a name="service-linked-role-policy"></a>

Essa política é anexada a uma função vinculada ao serviço chamada **AWSServiceRoleForVpcLattice**para permitir que a VPC Lattice execute ações em seu nome. Não é possível anexar essa política a suas entidades do IAM. Para obter mais informações, consulte [Usando funções vinculadas a serviços para Amazon VPC Lattice](using-service-linked-roles.md).

Para visualizar as permissões para esta política, consulte [AWSVpcLatticeServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html) na *Referência de políticas gerenciadas pela AWS *.

## Atualizações do VPC Lattice nas políticas gerenciadas AWS
<a name="policy-updates"></a>

Veja detalhes sobre as atualizações das políticas AWS gerenciadas do VPC Lattice desde que esse serviço começou a rastrear essas alterações. Para obter alertas automáticos sobre alterações feitas nesta página, inscreva-se no feed RSS do Guia do usuário do VPC Lattice.


| Alteração | Descrição | Data | 
| --- | --- | --- | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | O VPC Lattice adiciona permissões somente de leitura para descrever clusters e instâncias do Amazon RDS. | 1.º de dezembro de 2024 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | O VPC Lattice adiciona permissões somente de leitura para descrever clusters e instâncias do Amazon RDS. | 1.º de dezembro de 2024 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | O VPC Lattice adiciona permissões para permitir que o VPC Lattice crie uma interface de rede gerenciada pelo solicitante. | 1.º de dezembro de 2024 | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | O VPC Lattice adiciona uma nova política para conceder permissões de acesso total ao Amazon VPC Lattice e acesso limitado a outros serviços dependentes. | 31 de março de 2023 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | O VPC Lattice adiciona uma nova política para conceder permissões de acesso somente leitura ao Amazon VPC Lattice e acesso limitado a outros serviços dependentes. | 31 de março de 2023 | 
| [VPCLatticeServicesInvokeAccess](#vpc-lattice-services-invoke-access-policy) | O VPC Lattice adiciona uma nova política para conceder acesso para invocar serviços do Amazon VPC Lattice. | 31 de março de 2023 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | O VPC Lattice adiciona permissões à sua função vinculada ao serviço para permitir que o VPC Lattice publique métricas no namespace. CloudWatch AWS/VpcLattice A AWSVpcLatticeServiceRolePolicy política inclui permissão para chamar a ação CloudWatch [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html)da API. Para obter mais informações, consulte [Usando funções vinculadas a serviços para Amazon VPC Lattice](using-service-linked-roles.md). | 5 de dezembro de 2022 | 
|  O VPC Lattice começou a monitorar alterações  |  A VPC Lattice começou a monitorar as mudanças em suas AWS políticas gerenciadas.  | 5 de dezembro de 2022 | 

# Validação de conformidade para o Amazon VPC Lattice
<a name="compliance-validation"></a>

Auditores terceirizados avaliam a segurança e a conformidade do Amazon VPC Lattice como parte de vários programas de AWS conformidade. 

Para saber se um AWS service (Serviço da AWS) está dentro do escopo de programas de conformidade específicos, consulte [Serviços da AWS Escopo por Programa de Conformidade Serviços da AWS](https://aws.amazon.com/compliance/services-in-scope/) e escolha o programa de conformidade em que você está interessado. Para obter informações gerais, consulte Programas de [AWS conformidade Programas AWS](https://aws.amazon.com/compliance/programs/) de .

Você pode baixar relatórios de auditoria de terceiros usando AWS Artifact. Para obter mais informações, consulte [Baixar relatórios em AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Sua responsabilidade de conformidade ao usar Serviços da AWS é determinada pela confidencialidade de seus dados, pelos objetivos de conformidade de sua empresa e pelas leis e regulamentações aplicáveis. Para obter mais informações sobre sua responsabilidade de conformidade ao usar Serviços da AWS, consulte a [Documentação AWS de segurança](https://docs.aws.amazon.com/security/).

# Acesse o Amazon VPC Lattice usando endpoints de interface ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

É possível estabelecer uma conexão privada entre a VPC e o Amazon VPC Lattice criando uma *endpoint da VPC de interface*. Os endpoints de interface são alimentados por [AWS PrivateLink](https://aws.amazon.com/privatelink/)uma tecnologia que permite acessar de forma privada o VPC Lattice APIs sem um gateway de internet, dispositivo NAT, conexão VPN ou conexão. Direct Connect As instâncias na sua VPC não precisam de endereços IP públicos para se comunicar com a VPC Lattice. APIs 

Cada endpoint de interface é representado por uma ou mais [interfaces de rede](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) em suas sub-redes.

## Considerações sobre endpoints da VPC de interface
<a name="vpc-endpoint-considerations"></a>

[https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)

O VPC Lattice oferece suporte à realização de chamadas para todas as ações de API da sua VPC. 

## Como criar um endpoint da VPC de interface para o VPC Lattice
<a name="vpc-endpoint-create"></a>

Você pode criar um VPC endpoint para o serviço VPC Lattice usando o console Amazon VPC ou o (). AWS Command Line Interface AWS CLI*Para obter mais informações, consulte [Criar uma interface VPC endpoint no Guia](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html).AWS PrivateLink *

Crie um endpoint da VPC para o VPC Lattice usando o seguinte nome de serviço: 

`com.amazonaws.region.vpc-lattice`

Se você habilitar o DNS privado para o endpoint, poderá fazer solicitações de API para o VPC Lattice usando seu nome de DNS padrão para a região, por exemplo, `vpc-lattice.us-east-1.amazonaws.com`.

# Resiliência no Amazon VPC Lattice
<a name="disaster-recovery-resiliency"></a>

A infraestrutura AWS global é construída em torno Regiões da AWS de zonas de disponibilidade. 

Regiões da AWS fornecem várias zonas de disponibilidade fisicamente separadas e isoladas, conectadas a redes de baixa latência, alta taxa de transferência e alta redundância. 

Com as zonas de disponibilidade, é possível projetar e operar aplicações e bancos de dados que automaticamente executam o failover entre as zonas sem interrupção. As zonas de disponibilidade são altamente disponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data center tradicionais. 

Para obter mais informações sobre zonas de disponibilidade Regiões da AWS e zonas de disponibilidade, consulte [Infraestrutura AWS global](https://aws.amazon.com/about-aws/global-infrastructure/).

# Segurança da infraestrutura no Amazon VPC Lattice
<a name="infrastructure-security"></a>

Como um serviço gerenciado, o Amazon VPC Lattice é protegido pela segurança de rede AWS global. Para obter informações sobre serviços AWS de segurança e como AWS proteger a infraestrutura, consulte [AWS Cloud Security](https://aws.amazon.com/security/). Para projetar seu AWS ambiente usando as melhores práticas de segurança de infraestrutura, consulte [Proteção](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) de infraestrutura no *Security Pillar AWS Well‐Architected* Framework.

Você usa chamadas de API AWS publicadas para acessar o VPC Lattice pela rede. Os clientes devem oferecer compatibilidade com:
+ Transport Layer Security (TLS). Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Conjuntos de criptografia com perfect forward secrecy (PFS) como DHE (Ephemeral Diffie-Hellman) ou ECDHE (Ephemeral Elliptic Curve Diffie-Hellman). A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos.