

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

# Assine imagens no Amazon ECR
<a name="image-signing"></a>

O Amazon ECR se integra AWS Signer para fornecer duas maneiras de você assinar suas imagens de contêiner: *assinatura gerenciada* (automática, recomendada) e *assinatura manual* (do lado do cliente). Você pode armazenar as imagens do contêiner e as assinaturas em seus repositórios privados.

## Escolha um método de assinatura
<a name="image-signing-choose-method"></a>

O Amazon ECR oferece suporte a dois métodos para assinar imagens de contêineres:

**Assinatura gerenciada** (recomendada)  
A assinatura gerenciada gera automaticamente assinaturas criptográficas quando as imagens são enviadas para o Amazon ECR. Esse método simplifica a configuração. A assinatura gerenciada é a abordagem recomendada para a maioria dos usuários. Para obter mais informações, consulte [Assinatura gerenciada](managed-signing.md).

**Assinatura manual**  
A assinatura manual usa a CLI AWS Signer e o plug-in do Notation para assinar imagens antes de enviá-las para o Amazon ECR. Esse método fornece mais controle sobre o processo de assinatura e é útil quando você precisa assinar imagens fora do fluxo de trabalho push ou exige um controle refinado sobre as operações de assinatura. Para obter mais informações, consulte [Assinatura manual](image-signing-manual.md).

## Considerações
<a name="image-signing-considerations"></a>

O seguinte deve ser considerado ao usar a assinatura de imagens do Amazon ECR:
+ As assinaturas armazenadas em seu repositório contam para a cota do serviço do número máximo de imagens por repositório. Cada assinatura conta como 1 artefato em relação às imagens por cota de repositório. Para obter mais informações, consulte [Cotas de serviço do Amazon ECR](service-quotas.md).
+ Quando artefatos de referência estão presentes em um repositório, as políticas de ciclo de vida do Amazon ECR limparão automaticamente esses artefatos em até 24 horas após a exclusão da imagem em questão.

# Assinatura gerenciada
<a name="managed-signing"></a>

A assinatura gerenciada do Amazon ECR assina automaticamente suas imagens de contêiner gerando assinaturas criptográficas usando o [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) quando as imagens são enviadas para o Amazon ECR. Isso elimina a necessidade de instalar e configurar ferramentas do lado do cliente e permite que você controle centralmente a assinatura como uma configuração de registro.

## Pré-requisitos
<a name="managed-signing-prerequisites"></a>

Para configurar a assinatura gerenciada, você cria uma configuração de assinatura com o Amazon ECR que faz referência a um ou mais perfis de assinatura de signatários e, opcionalmente, filtros de repositório que restringem quais repositórios devem ter suas imagens assinadas. Depois de configurada, a assinatura gerenciada do Amazon ECR assina automaticamente as imagens à medida que elas são enviadas usando a identidade da entidade que está enviando a imagem.

Antes de configurar a assinatura gerenciada, você deve ter o seguinte:
+ **Um perfil de assinatura de signatário — Crie pelo menos um perfil** de [assinatura](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profiles.html) de signatário. Um perfil de assinatura é um recurso exclusivo do AWS signatário que você pode usar para realizar operações de assinatura no Amazon ECR. Os perfis de assinatura permitem que você assine e verifique artefatos de código, como imagens de contêineres e pacotes de AWS Lambda implantação. Cada perfil de assinatura designa a plataforma de assinatura a ser assinada, um ID da plataforma e outras informações específicas da plataforma. Por exemplo, um ARN de perfil de assinatura se parece com isso:. `arn:partition:signer:region:account-id:/signing-profiles/profile-name`
+ **Permissões do IAM** — O diretor do IAM que envia a imagem deve ter as permissões do IAM necessárias para acessar o perfil de assinatura relevante do Signer e o repositório ECR relevante. Você precisa modificar a política baseada em identidade do IAM principal para incluir permissões tanto para as operações do repositório ECR quanto para as operações de assinatura do Signer. O exemplo de política a seguir mostra as permissões necessárias:

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
   {
       "Sid":"UploadSignaturePermissions",
       "Effect":"Allow",
       "Action":[
           "ecr:CompleteLayerUpload",
           "ecr:UploadLayerPart",
           "ecr:InitiateLayerUpload",
           "ecr:BatchCheckLayerAvailability",
           "ecr:PutImage"
       ],
       "Resource":"arn:aws:ecr:region:account-id:repository/repository-name"
   },
   {
       "Sid": "SignPermissions",
       "Effect": "Allow",
       "Action": [
           "signer:SignPayload"
       ],
       "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name"
   }
   ]
}
```

Com a assinatura gerenciada do Amazon ECR, você pode criar várias regras de assinatura (até 10 por registro) para criar limites de segurança mais fortes. Por exemplo, você pode executar vários pipelines de compilação e querer limitar quais repositórios cada pipeline pode assinar. Em cada regra, você configura um perfil de assinatura e especifica filtros de nome de repositório. Quando uma nova imagem é enviada, o Amazon ECR corresponde à regra de assinatura e ao perfil de assinatura que podem assinar a imagem. Se houver várias correspondências, o Amazon ECR gera várias assinaturas.

**nota**  
Se você verificar as assinaturas manualmente, ainda precisará instalar a CLI do Notation.

**nota**  
A assinatura gerenciada do Amazon ECR está disponível em todas as AWS regiões onde a assinatura de imagens de contêineres com o AWS Signer está disponível.

## Introdução
<a name="managed-signing-getting-started"></a>

Siga estas etapas para configurar a assinatura gerenciada. Você fornece ao Amazon ECR uma referência a um perfil de assinatura do signatário e, opcionalmente, filtros que restringem quais repositórios devem ter suas imagens assinadas.

------
#### [ Console de gerenciamento da AWS ]

Use as etapas a seguir para configurar a assinatura gerenciada usando Console de gerenciamento da AWS o.

1. Abra o [console do Amazon ECR.](https://console.aws.amazon.com/ecr/private-registry/repositories) No painel de navegação esquerdo, selecione **Registro privado**, **Recursos e configurações**, **Assinatura gerenciada**.

1. Na página **Regras de assinatura**, selecione **Criar regra**.

1. Na página **Perfil de assinatura**, em **Selecionar um perfil de AWS signatário, escolha Criar novo perfil** **de AWS signatário**, insira um **nome de perfil** e, opcionalmente, altere o período de validade da **assinatura**. Depois, selecione **Próximo**.

1. Na página **Filtros**, em **Selecionar repositórios**, insira um filtro de **nome de repositório**. Depois, selecione **Próximo**.

1. Na página **Revisar e criar**, verifique o **perfil do AWS signatário** e **os filtros de nome do repositório** que você inseriu. Se tudo estiver correto, selecione **Salvar**.

------
#### [ AWS CLI ]

Use os AWS CLI comandos a seguir para configurar a assinatura gerenciada.
+ **Crie uma regra de assinatura**

  Crie uma configuração de assinatura com o ARN do seu perfil de assinatura. Crie um arquivo JSON com o seguinte conteúdo:

  ```
  {
      "rules": [ 
          { 
              "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name",
              "repositoryFilters": [ 
                  { 
                      "filter": "test*",
                      "filterType": "WILDCARD_MATCH"
                  }
              ]
          }
      ]
  }
  ```

  Em seguida, execute o seguinte comando:

  ```
  aws ecr --region region \
      put-signing-configuration \
      --signing-configuration file://signing-config.json
  ```

  Você deve ver a resposta da API contendo a configuração de assinatura.
+ **Veja sua configuração de assinatura**

  Recupere sua configuração de assinatura:

  ```
  aws ecr --region region \
      get-signing-configuration
  ```

  Você deve ver a resposta da API contendo a configuração de assinatura.
+ **Verifique o status de assinatura da imagem**

  Envie uma imagem para o seu repositório. Por exemplo:

  ```
  docker pull ubuntu
  
  IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name"
  IMAGE_TAG="${IMAGE_NAME}:test-1"
  
  docker tag ubuntu $IMAGE_TAG
  docker push $IMAGE_TAG
  ```

  Depois de pressionar, use sua tag de imagem para verificar o status da assinatura:

  ```
  aws ecr --region region \
      describe-image-signing-status \
      --repository-name repository-name \
      --image-id imageTag=test-1
  ```

  Se o nome do repositório corresponder ao filtro do repositório definido na configuração de assinatura, você deverá ver o status da assinatura na resposta da API. Se o status for bem-sucedido, você deverá ver uma assinatura enviada ao seu repositório.
+ **Exclua sua configuração de assinatura**

  Exclua sua configuração de assinatura:

  ```
  aws ecr --region region \
      delete-signing-configuration
  ```

  Você deve ver a resposta da API contendo a configuração de assinatura excluída.

------

## Considerações
<a name="managed-signing-considerations"></a>

As seguintes limitações e recursos se aplicam à assinatura gerenciada:
+ A **assinatura entre regiões não é suportada** — os perfis de assinatura devem estar na mesma região do seu registro do Amazon ECR. Você não pode usar um perfil de assinatura de uma região para assinar imagens em um registro localizado em uma região diferente.
+ A **assinatura entre contas é suportada** — Os perfis de assinatura podem estar em contas diferentes das do seu registro do Amazon ECR. Isso permite que as organizações gerenciem centralmente os perfis de assinatura e, ao mesmo tempo, permite que desenvolvedores de outras contas os usem. Para obter mais informações, consulte [Configurar a assinatura entre contas para o Signer](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profile-cross-account.html) no Guia do *AWS Signer desenvolvedor*.
+ **As assinaturas não podem ser assinadas** — Você não pode assinar as assinaturas por si só. Somente imagens de contêiner podem ser assinadas.

# Verificação de assinatura
<a name="image-signing-verification"></a>

Depois de assinar as imagens do contêiner, você pode verificar as assinaturas para garantir que as imagens não tenham sido adulteradas e venham de uma fonte confiável. O Amazon ECR oferece suporte a vários métodos de verificação de assinaturas:

## Verificação gerenciada com o Amazon EKS
<a name="image-signing-verification-managed"></a>

O Amazon EKS fornece integração nativa para verificação automática de assinaturas. Quando você configura a verificação de assinatura em seus clusters do Amazon EKS, o serviço verifica automaticamente as assinaturas das imagens antes de permitir que os contêineres sejam executados. Para obter mais informações sobre como configurar a verificação de assinatura, consulte [Validar assinaturas de imagens de contêineres durante a implantação no Guia](https://docs.aws.amazon.com/eks/latest/userguide/image-verification.html) do usuário do *Amazon EKS*.

## Controlador de admissão Lambda para Amazon ECS
<a name="image-signing-verification-lambda"></a>

O Amazon ECS fornece ganchos do ciclo de vida do serviço que permitem que você execute uma lógica personalizada durante as implantações do serviço. Esses ganchos podem acionar AWS Lambda funções em pontos específicos do processo de implantação, permitindo que você valide assinaturas de imagens de contêineres antes de permitir o início dos serviços. Para obter mais informações, consulte [Verificar assinaturas de imagens de contêineres para o Amazon ECS](https://docs.aws.amazon.com/signer/latest/developerguide/ecs-verification.html) no Guia do *AWS Signer desenvolvedor*.

## Verificação manual com Notation CLI
<a name="image-signing-verification-manual"></a>

Você pode verificar as assinaturas manualmente usando a CLI do Notation. Esse método exige que você instale e configure o Notation CLI em sua máquina local ou em seu ambiente de verificação. *Para obter instruções detalhadas sobre como verificar uma imagem usando o Notation CLI, consulte [Verificar uma imagem localmente após fazer login](https://docs.aws.amazon.com/signer/latest/developerguide/image-verification.html) no Guia do desenvolvedor.AWS Signer *

## Configurar a autenticação para o cliente Notation
<a name="image-signing-authentication"></a>

Se você usa a assinatura manual ou verifica assinaturas manualmente usando a CLI do Notation, você deve configurar o cliente do Notation para que ele possa se autenticar no Amazon ECR. Se o Docker estiver instalado no mesmo host em que você instalou o cliente do Notation, o Notation reutilizará o mesmo método de autenticação usado para o cliente do Docker. O Docker `login` e `logout` os comandos permitirão que o Notation `sign` e `verify` os comandos usem essas mesmas credenciais, e você não precisará autenticar separadamente o Notation. Para obter mais informações sobre como configurar o cliente do Notation para autenticação, consulte [Authenticate with OCI-compliant registries](https://notaryproject.dev/docs/user-guides/how-to/registry-authentication/) na documentação do projeto Notary.

Se você não estiver usando o Docker ou outra ferramenta que use as credenciais do Docker, recomendamos que use o auxiliar de credenciais do Docker doo Amazon ECR como repositório de credenciais. Para obter mais informações sobre como instalar e configurar o auxiliar de credenciais do Amazon ECR, consulte [Amazon ECR Docker Credential Helper](https://github.com/awslabs/amazon-ecr-credential-helper).

# Assinatura manual
<a name="image-signing-manual"></a>

A assinatura manual usa a CLI AWS Signer e o plug-in do Notation para assinar imagens antes de enviá-las para o Amazon ECR. Esse método fornece mais controle sobre o processo de assinatura e é útil quando você precisa assinar imagens fora do fluxo de trabalho push ou exige um controle refinado sobre as operações de assinatura.

*Para obter instruções detalhadas sobre como assinar imagens de contêiner usando a CLI AWS Signer do Notation, [consulte Assinar imagens de contêiner no](https://docs.aws.amazon.com/signer/latest/developerguide/container-workflow.html) Signer e os tópicos relacionados no AWS Signer Guia do desenvolvedor.*

## Pré-requisitos
<a name="image-signing-prerequisites"></a>

Antes de começar, certifique-se de que os seguintes pré-requisitos sejam atendidos.
+ Instale e configure a versão mais recente do AWS CLI. Para obter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) no *Guia do usuário do AWS Command Line Interface *.
+ Instale a CLI do Notation e o plug-in para AWS Signer o Notation. Para obter mais informações, consulte [Pré-requisitos para assinar imagens de contêiner](https://docs.aws.amazon.com/signer/latest/developerguide/image-signing-prerequisites.html) no *Guia do desenvolvedor do AWS Signer *.
+ Tenha uma imagem de contêiner armazenada em um repositório privado do Amazon ECR para assinar. Para obter mais informações, consulte [Enviar por push uma imagem para um repositório privado do Amazon ECR](image-push.md).