

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

# Monitoramento do Amazon ECR
<a name="monitoring"></a>

Você pode monitorar o uso da API do Amazon ECR com a Amazon CloudWatch, que coleta e processa dados brutos do Amazon ECR em métricas legíveis e quase em tempo real. Essas estatísticas são registradas por um período de duas semanas para que você possa acessar as informações do histórico e obter uma perspectiva melhor sobre o uso da API. Os dados métricos do Amazon ECR são enviados automaticamente CloudWatch em períodos de um minuto. Para obter mais informações sobre CloudWatch, consulte o [Guia CloudWatch do usuário da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

O Amazon ECR fornece métricas com base no uso de API para ações de autorização, envio de imagem e extração de imagem.

O monitoramento é uma parte importante da manutenção da confiabilidade, disponibilidade e desempenho do Amazon ECR e de suas AWS soluções. Recomendamos que você colete dados de monitoramento dos recursos que compõem sua AWS solução para poder depurar com mais facilidade uma falha de vários pontos, caso ocorra. No entanto, antes de começar a monitorar o Amazon ECR, é necessário criar um plano de monitoramento que inclua respostas às seguintes perguntas:
+ Quais são seus objetivos de monitoramento?
+ Quais recursos você vai monitorar?
+ Com que frequência você vai monitorar esses recursos?
+ Quais ferramentas de monitoramento você usará?
+ Quem realizará o monitoramento das tarefas?
+ Quem deve ser notificado quando algo der errado?

A próxima etapa é estabelecer uma linha de base de performance normal do Amazon ECR no seu ambiente, medindo o performance em vários momentos e em diferentes condições de carga. À medida que você monitorar o Amazon ECR, armazene dados de monitoramento históricos para compará-los com os novos dados de performance, identificar padrões de performance normais e anomalias de performance, além de elaborar métodos para resolver problemas.

**Topics**
+ [Visualizar as Service Quotas e definir alarmes](monitoring-quotas-alarms.md)
+ [Métricas de uso do Amazon ECR](monitoring-usage.md)
+ [Relatórios de uso do Amazon ECR](usage-reports.md)
+ [Métricas do repositório do Amazon ECR](ecr-repository-metrics.md)
+ [Eventos do Amazon ECR e EventBridge](ecr-eventbridge.md)
+ [Registrando ações do Amazon ECR com AWS CloudTrail](logging-using-cloudtrail.md)

# Visualizar as Service Quotas e definir alarmes
<a name="monitoring-quotas-alarms"></a>

Você pode usar o CloudWatch console para visualizar suas cotas de serviço e ver como seu uso atual se compara às cotas de serviço. Também é possível definir alarmes para que você seja notificado ao se aproximar de uma cota.

**Como visualizar uma cota de serviço e opcionalmente definir um alarme**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, selecione **Métricas**.

1. Na guia **Todas as métricas**, escolha **Uso** e depois **Por recurso da AWS **.

   A lista das métricas de uso da cota de serviço é exibida.

1. Marque a caixa de seleção ao lado de uma das métricas.

   O gráfico mostra seu uso atual desse AWS recurso.

1. Para adicionar a cota de serviço ao gráfico, faça o seguinte:

   1. Escolha a guia **Graphed metrics (Métricas em gráfico)**.

   1. Selecione **Math expression (Expressão matemática)**, **Start with an empty expression (Começar com uma expressão vazia)**. Depois, na nova linha, em **Details (Detalhes)**, insira **SERVICE\$1QUOTA(m1)**.

      Uma nova linha é adicionada ao gráfico, exibindo a cota de serviço do recurso representado na métrica.

1. Para ver o uso atual como uma porcentagem da cota, adicione uma nova expressão ou altere a expressão **SERVICE\$1QUOTA** atual. Para a nova expressão, use **m1/60/SERVICE\$1QUOTA(m1)\$1100**.

1. (Opcional) Para definir um alarme que notifique se você caso se aproxime da cota de serviço, faça o seguinte:

   1. Na linha **m1/60/SERVICE\$1QUOTA(m1)\$1100**, em **Actions (Ações)**, selecione o ícone de alarme. Ele se parece com um sino.

      A página de criação de alarmes é exibida.

   1. Em **Conditions (Condições)**, verifique se o **Threshold type (Tipo de limite)** é **Static (Estático)** e se **Whenever Expression1 is (Sempre que a Expression1 for)** esteja definido como **Greater (Maior)**. Em **than (que)**, insira **80**. Isso cria um alarme que entrará no estado ALARM (ALARME) quando seu uso exceder 80% da cota.

   1. Escolha **Próximo**.

   1. Na próxima página, selecione um tópico do Amazon SNS ou crie um. Esse tópico será notificado quando o alarme entrar no estado ALARM (ALARME). Escolha **Próximo**.

   1. Na próxima página, insira um nome e uma descrição para o alarme e selecione **Next (Próximo)**.

   1. Selecione **Criar alarme**.

# Métricas de uso do Amazon ECR
<a name="monitoring-usage"></a>

Você pode usar métricas de CloudWatch uso para dar visibilidade ao uso dos recursos da sua conta. Use essas métricas para visualizar seu uso atual do serviço em CloudWatch gráficos e painéis.

As métricas de uso do Amazon ECR correspondem às cotas AWS de serviço. Também é possível configurar alarmes que alertem você quando o uso se aproximar de uma cota de serviço. Para obter mais informações sobre cotas de serviço do Amazon ECR, consulte [Cotas de serviço do Amazon ECR](service-quotas.md).

O Amazon ECR publica as seguintes métricas no namespace `AWS/Usage`.


|  Métrica  |  Description  | 
| --- | --- | 
|  `CallCount`  |  O número de chamadas de ação de API da sua conta. Os recursos são definidos pelas dimensões associadas à métrica. A estatística mais útil para essa métrica é `SUM`, que representa a soma dos valores de todos os colaboradores durante o período definido.  | 
|  `ResourceCount`  |  O número dos recursos especificado em sua conta. Os recursos são definidos pelas dimensões associadas à métrica. A estatística mais útil para essa métrica é `MAXIMUM` a que representa o número máximo de recursos usados durante o período de 5 minutos.  | 

As dimensões a seguir são usadas para refinar as métricas de uso da API publicadas pelo Amazon ECR.


|  Dimensão  |  Description  | 
| --- | --- | 
|  `Service`  |  O nome do AWS serviço que contém o recurso. Para as métricas de uso do Amazon ECR, o valor dessa dimensão é `ECR`.  | 
|  `Type`  |  O tipo de entidade que está sendo relatado. Atualmente, o único valor válido para as métricas de uso da API Amazon ECR é`API`.  | 
|  `Resource`  |  O tipo de recurso que está em execução. No momento, o Amazon ECR retorna informações sobre o uso da API para as ações de API a seguir. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  Class  |  A classe do recurso sob acompanhamento. No momento, o Amazon ECR não usa a dimensão de classe.  | 

As dimensões a seguir são usadas para refinar as métricas de uso de recursos publicadas pelo Amazon ECR.


|  Dimensão  |  Description  | 
| --- | --- | 
|  `Service`  |  O nome do AWS serviço que contém o recurso. Para as métricas de uso do Amazon ECR, o valor dessa dimensão é `ECR`.  | 
|  `Type`  |  O tipo de entidade que está sendo relatado. Atualmente, o único valor válido para as métricas de uso de recursos do Amazon ECR é`RESOURCE`.  | 
|  `Resource`  |  O tipo de recurso que está em execução. Atualmente, o Amazon ECR retorna informações sobre seu uso de recursos para as seguintes métricas. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  `ResourceId`  |  O identificador do recurso que gerou o uso. Atualmente, só ResourceId é relevante para `ImagesPerRepositoryCount` e seu valor é formatado como “repository/your\$1repository\$1name. For example: "repository/my-repo” retorna o número de imagens no repositório com o nome “my-repo”.  | 

# Relatórios de uso do Amazon ECR
<a name="usage-reports"></a>

AWS fornece uma ferramenta de geração de relatórios gratuita chamada Cost Explorer, que permite analisar o custo e o uso dos recursos do Amazon ECR.

Use o Cost Explorer para visualizar gráficos de uso e de custos. É possível visualizar dados dos últimos 13 meses e prever o valor que você provavelmente gastará nos próximos três meses. É possível usar o Cost Explorer para ver padrões de gastos de recursos da AWS ao longo do tempo, identificar áreas que precisam de uma investigação mais profunda e ver tendências que é possível usar para entender seus custos. Também é possível especificar os períodos dos dados e visualizar os dados de tempo por dia ou por mês.

Os dados de medição nos Relatórios de uso e de custo mostram o uso em todos os repositórios do Amazon ECR. Para obter mais informações, consulte [Marcar recursos para faturamento](ecr-using-tags.md#tag-resources-for-billing).

Para obter mais informações sobre a criação de um relatório de AWS custo e uso, consulte [Relatório de AWS custo e uso](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html) no *Guia AWS Billing do usuário*.

# Métricas do repositório do Amazon ECR
<a name="ecr-repository-metrics"></a>

O Amazon ECR envia métricas de contagem de pull do repositório para a Amazon. CloudWatch Os dados métricos do Amazon ECR são enviados automaticamente CloudWatch em períodos de 1 minuto. Para obter mais informações sobre CloudWatch, consulte o [Guia CloudWatch do usuário da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

**Topics**
+ [Habilitando CloudWatch métricas](#enable_cloudwatch)
+ [Métricas e dimensões disponíveis](#available_cloudwatch_metrics)
+ [Visualizando métricas do Amazon ECR usando o console CloudWatch](#viewing_metrics_console)

## Habilitando CloudWatch métricas
<a name="enable_cloudwatch"></a>

O Amazon ECR envia métricas de repositório automaticamente para todos os repositórios. Não é preciso realizar nenhuma etapa manual.

## Métricas e dimensões disponíveis
<a name="available_cloudwatch_metrics"></a>

As seções a seguir listam as métricas e dimensões que o Amazon ECR envia para a Amazon CloudWatch.

### Métricas do Amazon ECR
<a name="ecr-metrics"></a>

O Amazon ECR fornece métricas para você monitorar seus repositórios. Você pode medir o número de solicitações pull.

O namespace `AWS/ECR` inclui as métricas a seguir.

`RepositoryPullCount`  
O número total de solicitações pull das imagens no repositório.  
Dimensões válidas: `RepositoryName`.  
Estatísticas válidas: média, mínima, máxima, soma, contagem de exemplo. A estatística mais útil é Sum.  
Unit: Integer.

### Dimensões para métricas do Amazon ECR
<a name="ecs-metrics-dimensions"></a>

As métricas do Amazon ECR usam o namespace `AWS/ECR` e fornecem métricas para as dimensões a seguir.

`RepositoryName`  
Essa dimensão filtra os dados solicitados para todas as imagens do contêiner em um repositório especificado.

## Visualizando métricas do Amazon ECR usando o console CloudWatch
<a name="viewing_metrics_console"></a>

Você pode visualizar as métricas do repositório Amazon ECR no CloudWatch console. O CloudWatch console fornece uma exibição refinada e personalizável de seus recursos. Para obter mais informações, consulte o [Guia CloudWatch do usuário da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

# Eventos do Amazon ECR e EventBridge
<a name="ecr-eventbridge"></a>

A Amazon EventBridge permite que você automatize seus AWS serviços e responda automaticamente a eventos do sistema, como problemas de disponibilidade de aplicativos ou alterações de recursos. Os eventos dos AWS serviços são entregues quase EventBridge em tempo real. É possível escrever regras simples para indicar quais eventos são do seu interesse e incluir ações automatizadas que deverão ser realizadas quando um evento corresponder à regra. Ações que podem ser automaticamente acionadas incluem:
+ Adicionar eventos a grupos de CloudWatch registros no Logs
+ Invocando uma função AWS Lambda 
+ Invocar o comando de execução do Amazon EC2
+ Transmitir o evento Amazon Kinesis Data Streams
+ Ativando uma máquina de AWS Step Functions estado
+ Notificar um tópico do Amazon SNS ou uma fila do Amazon SQS

Para obter mais informações, consulte [Getting Started with Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) no *Guia EventBridge do usuário da Amazon*.

## Amostra de eventos do Amazon ECR
<a name="ecr-eventbridge-bus"></a>

Veja a seguir exemplos de eventos do Amazon ECR. Os eventos são emitidos com base no melhor esforço.

**Evento para um envio de imagem concluído**

O evento a seguir é enviado quando cada envio de imagem é concluído. Para obter mais informações, consulte [Envio por push de uma imagem do Docker para um repositório privado do Amazon ECR](docker-push-ecr-image.md).

```
{
    "version": "0",
    "id": "13cde686-328b-6117-af20-0e5566167482",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T01:54:34Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "PUSH",
        "image-tag": "latest"
    }
}
```

**Evento para uma ação de cache de pull-through**

Quando uma tentativa de ação de cache de pull-through é feita, o seguinte evento é enviado. Para obter mais informações, consulte [Sincronizar um registro upstream com um registro privado do Amazon ECR](pull-through-cache.md).

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Pull Through Cache Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2023-02-29T02:36:48Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecr:us-west-2:123456789012:repository/docker-hub/alpine"
    ],
    "detail": {
        "rule-version": "1",
        "sync-status": "SUCCESS",
        "ecr-repository-prefix": "docker-hub",
        "repository-name": "docker-hub/alpine",
        "upstream-registry-url": "public.ecr.aws",
        "image-tag": "3.17.2",
        "image-digest": "sha256:4aa08ef415aecc80814cb42fa41b658480779d80c77ab15EXAMPLE",
    }
}
```

**Evento para uma verificação de imagem concluída (verificação básica)**

Quando a verificação básica está habilitada para seu registro, o evento a seguir é enviado quando cada verificação de imagem é concluída. O parâmetro `finding-severity-counts` só retornará um valor de um nível de gravidade se existir algum. Por exemplo, se a imagem não contiver descobertas no nível `CRITICAL`, não será retornada uma contagem crítica. Para obter mais informações, consulte [Verificar imagens quanto a vulnerabilidades do sistema operacional no Amazon ECR](image-scanning-basic.md).

**nota**  
Para obter detalhes sobre eventos que o Amazon Inspector emite quando a verificação avançada está habilitada, consulte[EventBridge eventos enviados para digitalização aprimorada no Amazon ECR](image-scanning-enhanced-events.md).

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Image Scan",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-10-29T02:36:48Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ecr:us-east-1:123456789012:repository/my-repository-name"
    ],
    "detail": {
        "scan-status": "COMPLETE",
        "repository-name": "my-repository-name",
        "finding-severity-counts": {
	       "CRITICAL": 10,
	       "MEDIUM": 9
	     },
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "image-tags": []
    }
}
```

**Evento para uma notificação de alteração em um recurso com verificação avançada habilitada (verificação avançada)**

Quando a verificação avançada é habilitada para seu registro, o evento a seguir é enviado pelo Amazon ECR quando há uma alteração em um recurso que tem a verificação avançada habilitada. Isso inclui novos repositórios sendo criados, a frequência de verificação de um repositório sendo alterada ou quando as imagens são criadas ou excluídas em repositórios com a verificação avançada ativada. Para obter mais informações, consulte [Verificar imagens quanto a vulnerabilidades do software no Amazon ECR](image-scanning.md).

```
{
	"version": "0",
	"id": "0c18352a-a4d4-6853-ef53-0ab8638973bf",
	"detail-type": "ECR Scan Resource Change",
	"source": "aws.ecr",
	"account": "123456789012",
	"time": "2021-10-14T20:53:46Z",
	"region": "us-east-1",
	"resources": [],
	"detail": {
		"action-type": "SCAN_FREQUENCY_CHANGE",
		"repositories": [{
				"repository-name": "repository-1",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-1",
				"scan-frequency": "SCAN_ON_PUSH",
				"previous-scan-frequency": "MANUAL"
			},
			{
				"repository-name": "repository-2",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-2",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			},
			{
				"repository-name": "repository-3",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-3",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			}
		],
		"resource-type": "REPOSITORY",
		"scan-type": "ENHANCED"
	}
}
```

**Evento para uma exclusão de imagem**

O evento a seguir é enviado quando uma imagem é excluída. Para obter mais informações, consulte [Excluir uma imagem no Amazon ECR](delete_image.md).

```
{
    "version": "0",
    "id": "dd3b46cb-2c74-f49e-393b-28286b67279d",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T02:01:05Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "DELETE",
        "image-tag": "latest"
    }
}
```

**Evento para uma ação de arquivamento de imagens**

O evento a seguir é enviado quando uma imagem é arquivada. O `target-storage-class` campo será definido como`ARCHIVE`. O evento inclui os tipos de mídia de manifesto e artefato para identificar o tipo de conteúdo que está sendo arquivado.

```
{
    "version": "0",
    "id": "4f5ec4d5-4de4-7aad-a046-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T00:58:09Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "ARCHIVE",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json"
    }
}
```

**Evento para uma ação de restauração de imagem**

O evento a seguir é enviado quando uma imagem arquivada é restaurada. O `target-storage-class` campo será definido como`STANDARD`. O evento inclui um `last-activated-at` campo mostrando quando a imagem foi restaurada pela última vez.

```
{
    "version": "0",
    "id": "7b8fc5e6-5ef5-8bbe-b157-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:15:22Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**Evento para uma ação de restauração do referenciador**

O evento a seguir é enviado quando um referenciador arquivado (artefato de referência, como um SBOM, assinatura ou atestado) é restaurado. Observe que `detail-type` é `ECR Referrer Action` para diferenciá-lo das ações regulares de imagem. Os `artifact-media-type` campos `manifest-media-type` e identificam o tipo específico de referenciador que está sendo restaurado. Neste exemplo, um artefato SBOM está sendo restaurado.

```
{
    "version": "0",
    "id": "8c9gd6f7-6fg6-9ccf-c268-EXAMPLE",
    "detail-type": "ECR Referrer Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:20:45Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "sbom",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.cncf.oras.artifact.manifest.v1+json",
        "artifact-media-type": "text/sbom+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**Evento para uma replicação de imagem concluída**

O evento a seguir é enviado quando cada verificação de imagem é concluída. Para obter mais informações, consulte [Replicação de imagem privada no Amazon ECR](replication.md).

```
{
  "version": "0",
  "id": "c8b133b1-6029-ee73-e2a1-4f466b8ba999",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:44:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/docker-hub/alpine"
  ],
  "detail": {
    "result": "SUCCESS",
    "repository-name": "docker-hub/alpine",
    "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "3.17.2"
  }
}
```

**Evento para uma replicação de imagem com falha**

O evento a seguir é enviado quando a replicação de imagem falha. O campo `result` conterá `FAILED` e informações adicionais sobre erros poderão ser incluídas nos detalhes do evento.

```
{
  "version": "0",
  "id": "d9c244c2-7130-ff84-f3b2-5g577c9cb000",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:45:12Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/my-app"
  ],
  "detail": {
    "result": "FAILED",
    "repository-name": "my-app",
    "image-digest": "sha256:8g6c3751gf7gc5g47603ege4511d5a80ead5g90f5893543f1489bde2345",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "latest"
  }
}
```

# Registrando ações do Amazon ECR com AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

O Amazon ECR é integrado com AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, uma função ou um AWS serviço no Amazon ECR. CloudTrail captura as seguintes ações do Amazon ECR como eventos:
+ Todas as chamadas de API, incluindo chamadas do console do Amazon ECR
+ Todas as ações tomadas devido às configurações de criptografia em seus repositórios
+ Todas as ações tomadas devido às regras de política de ciclo de vida, incluindo ações bem-sucedidas e malsucedidas
**Importante**  
Devido às limitações de tamanho de CloudTrail eventos individuais, para ações de política de ciclo de vida em que 10 ou mais imagens expiram, o Amazon ECR envia vários eventos para. CloudTrail Além disso, o Amazon ECR inclui no máximo 100 etiquetas por imagem.

Quando uma trilha é criada, você pode habilitar a entrega contínua de CloudTrail eventos para um bucket do Amazon S3, incluindo eventos para o Amazon ECR. Se você não configurar uma trilha, ainda poderá ver os eventos mais recentes no CloudTrail console no **Histórico de eventos**. Usando essas informações, é possível determinar a solicitação feita ao Amazon ECR, o endereço IP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita e detalhes adicionais. 

Para obter mais informações, consulte o [Manual do usuário do AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

## Informações do Amazon ECR em CloudTrail
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail é ativado em sua AWS conta quando você cria a conta. Quando a atividade ocorre no Amazon ECR, essa atividade é registrada em um CloudTrail evento junto com outros eventos de AWS serviço no **histórico** de eventos. Você pode visualizar, pesquisar e baixar eventos recentes em sua AWS conta. Para obter mais informações, consulte [Visualização de eventos com histórico de CloudTrail eventos](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html). 

Para um registro contínuo de eventos em sua AWS conta, incluindo eventos para o Amazon ECR, crie uma trilha. Uma trilha permite CloudTrail entregar arquivos de log para um bucket do Amazon S3. Ao criar uma trilha no console, você pode aplicá-la a uma única região ou a todas as regiões. A trilha registra eventos na AWS partição e entrega os arquivos de log ao bucket do Amazon S3 que você especificar. Além disso, você pode configurar outros AWS serviços para analisar e agir com base nos dados de eventos coletados nos CloudTrail registros. Para obter mais informações, consulte: 
+ [Criando uma trilha para sua AWS conta](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [AWS integrações de serviços com registros CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Configurando notificações do Amazon SNS para CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [Recebendo arquivos de CloudTrail log de várias regiões](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) e [Recebendo arquivos de CloudTrail log de várias contas](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Todas as ações da API do Amazon ECR são registradas CloudTrail e documentadas na [Amazon Elastic Container Registry API](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/) Reference. Quando você executa tarefas comuns, as seções são geradas nos arquivos de CloudTrail log para cada ação da API que faz parte dessa tarefa. Por exemplo, quando você cria um repositório,`GetAuthorizationToken`, `CreateRepository` e `SetRepositoryPolicy` seções são geradas nos arquivos de CloudTrail log. Quando você envia uma imagem para um repositório,,,, `InitiateLayerUpload``UploadLayerPart`, e `CompleteLayerUpload``PutImage`, se a montagem de blob estiver ativada, `MountLayer` seções são geradas. Quando você extrai uma imagem, são geradas as seções `GetDownloadUrlForLayer` e `BatchGetImage`. Quando você arquiva ou restaura, uma `UpdateImageStorageClass` seção de imagem é gerada. Quando OCI os clientes que oferecem suporte à OCI 1.1 especificação buscam a lista de referenciadores ou artefatos de referência de uma imagem usando a API Referrers, um evento é emitido. `ListImageReferrers` CloudTrail Para ver exemplos dessas tarefas comuns, consulte [CloudTrail exemplos de entrada de registro](#cloudtrail-examples).

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar o seguinte:
+ Se a solicitação foi feita com credenciais de usuário raiz ou do 
+ Se a solicitação foi feita com credenciais de segurança temporárias de um perfil ou de um usuário federado
+ Se a solicitação foi feita por outro AWS serviço

Para obter mais informações, consulte [Elemento do CloudTrail `userIdentity`](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Noções básicas sobre entradas do arquivo de log do Amazon ECR
<a name="understanding-service-name-entries"></a>

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log para um bucket do Amazon S3 que você especificar. CloudTrail os arquivos de log contêm uma ou mais entradas de log. Um evento representa uma única solicitação de qualquer fonte e inclui informações sobre a ação solicitada, a data e a hora da ação, os parâmetros da solicitação e outras informações. CloudTrail os arquivos de log não são um rastreamento de pilha ordenado das chamadas públicas de API, portanto, eles não aparecem em nenhuma ordem específica. 

### CloudTrail exemplos de entrada de registro
<a name="cloudtrail-examples"></a>

Veja a seguir exemplos de entrada de CloudTrail registro para algumas tarefas comuns do Amazon ECR.

Estes exemplos foram formatados para obter melhor legibilidade. Em um arquivo de CloudTrail log, todas as entradas e eventos são concatenados em uma única linha. Além disso, este exemplo foi limitado a uma única entrada do Amazon ECR. Em um arquivo de CloudTrail log real, você vê entradas e eventos de vários AWS serviços.

**Importante**  
A **origem IPAddress** é o endereço IP do qual a solicitação foi feita. Para ações originadas do console de serviço, o endereço informado é do recurso subjacente, não do servidor Web do console. Para serviços em AWS, somente o nome DNS é exibido. Ainda avaliamos a autenticação com o IP de origem do cliente, mesmo que esteja editado para o nome DNS do serviço da AWS .

**Topics**
+ [Exemplo: criar ação de repositório](#cloudtrail-examples-create-repository)
+ [Exemplo: ação de API `CreateGrant` do AWS KMS ao criar um repositório do Amazon ECR](#cloudtrail-examples-create-repository-kms)
+ [Exemplo: ação de envio de imagem](#cloudtrail-examples-push-image)
+ [Exemplo: ação de extração de imagem](#cloudtrail-examples-image-pull)
+ [Exemplo: ação da política de ciclo de vida da imagem](#cloudtrail-examples-lcp)
+ [Exemplo: ação de arquivamento de imagens](#cloudtrail-examples-image-archive)
+ [Exemplo: ação de restauração de imagem](#cloudtrail-examples-image-restore)
+ [Exemplo: ação de referência de imagem](#cloudtrail-examples-image-referrers-action)

#### Exemplo: criar ação de repositório
<a name="cloudtrail-examples-create-repository"></a>

O exemplo a seguir mostra uma entrada de CloudTrail registro que demonstra a `CreateRepository` ação.

```
{
    "eventVersion": "1.04",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-07-11T21:54:07Z"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            }
        }
    },
    "eventTime": "2018-07-11T22:17:43Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "CreateRepository",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "repositoryName": "testrepo"
    },
    "responseElements": {
        "repository": {
            "repositoryArn": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "repositoryName": "testrepo",
            "repositoryUri": "123456789012.dkr.ecr.us-east-2.amazonaws.com/testrepo",
            "createdAt": "Jul 11, 2018 10:17:44 PM",
            "registryId": "123456789012"
        }
    },
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "accountId": "123456789012"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### Exemplo: ação de API `CreateGrant` do AWS KMS ao criar um repositório do Amazon ECR
<a name="cloudtrail-examples-create-repository-kms"></a>

O exemplo a seguir mostra uma entrada de CloudTrail registro que demonstra a AWS KMS `CreateGrant` ação ao criar um repositório Amazon ECR com a criptografia KMS ativada. Para cada repositório criado com a criptografia KMS ativada, você deverá ver duas entradas de `CreateGrant` registro. CloudTrail

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAIEP6W46J43IG7LXAQ",
        "arn": "arn:aws:iam::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "Mary_Major",
        "sessionContext": {
            "sessionIssuer": {
                
            },
            "webIdFederationData": {
                
            },
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2020-06-10T19:22:10Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-06-10T19:22:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "keyId": "4b55e5bf-39c8-41ad-b589-18464af7758a",
        "granteePrincipal": "ecr.us-west-2.amazonaws.com",
        "operations": [
            "GenerateDataKey",
            "Decrypt"
        ],
        "retiringPrincipal": "ecr.us-west-2.amazonaws.com",
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecr:arn": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo"
            }
        }
    },
    "responseElements": {
        "grantId": "3636af9adfee1accb67b83941087dcd45e7fadc4e74ff0103bb338422b5055f3"
    },
    "requestID": "047b7dea-b56b-4013-87e9-a089f0f6602b",
    "eventID": "af4c9573-c56a-4886-baca-a77526544469",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:123456789012:key/4b55e5bf-39c8-41ad-b589-18464af7758a"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### Exemplo: ação de envio de imagem
<a name="cloudtrail-examples-push-image"></a>

O exemplo a seguir mostra uma entrada de CloudTrail registro que demonstra um push de imagem que usa a `PutImage` ação.

**nota**  
Ao enviar uma imagem, você também verá `InitiateLayerUpload``UploadLayerPart`, e `CompleteLayerUpload` referências nos CloudTrail registros.

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "PutImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageTag": "latest",
		"registryId": "123456789012",
		"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}"
	},
	"responseElements": {
		"image": {
			"repositoryName": "testrepo",
			"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}",
			"registryId": "123456789012",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
				"imageTag": "latest"
			}
		}
	},
	"requestID": "cf044b7d-5f9d-11e9-9b2a-95983139cc57",
	"eventID": "2bfd4ee2-2178-4a82-a27d-b12939923f0f",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### Exemplo: ação de extração de imagem
<a name="cloudtrail-examples-image-pull"></a>

O exemplo a seguir mostra uma entrada de CloudTrail registro que demonstra uma extração de imagem que usa a `BatchGetImage` ação.

**nota**  
Ao extrair uma imagem, se você ainda não tiver a imagem armazenada localmente, também serão exibidas as referências `GetDownloadUrlForLayer` nos logs do CloudTrail .

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T17:23:20Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "BatchGetImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "ecr.amazonaws.com",
	"userAgent": "ecr.amazonaws.com",
	"requestParameters": {
		"imageIds": [{
			"imageTag": "latest"
		}],
		"acceptedMediaTypes": [
			"application/json",
			"application/vnd.oci.image.manifest.v1+json",
			"application/vnd.oci.image.index.v1+json",
			"application/vnd.docker.distribution.manifest.v2+json",
			"application/vnd.docker.distribution.manifest.list.v2+json",
			"application/vnd.docker.distribution.manifest.v1+prettyjws"
		],
		"repositoryName": "testrepo",
		"registryId": "123456789012"
	},
	"responseElements": null,
	"requestID": "2a1b97ee-5fa3-11e9-a8cd-cd2391aeda93",
	"eventID": "c84f5880-c2f9-4585-9757-28fa5c1065df",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### Exemplo: ação da política de ciclo de vida da imagem
<a name="cloudtrail-examples-lcp"></a>

O exemplo a seguir mostra uma entrada de CloudTrail registro que demonstra quando uma imagem expira devido a uma regra de política de ciclo de vida. Esse tipo de evento pode ser localizado filtrando `PolicyExecutionEvent` para o campo de nome do evento.

Quando você testa uma prévia da política de ciclo de vida, o Amazon ECR gera uma entrada de CloudTrail registro com o campo do nome do evento de`DryRunEvent`, com exatamente a mesma estrutura do. `PolicyExecutionEvent` Ao alterar o nome do evento para `DryRunEvent`, você pode filtrar os eventos de simulação.

**Importante**  
Devido às limitações de tamanho de CloudTrail eventos individuais, para ações de política de ciclo de vida em que 10 ou mais imagens expiram, o Amazon ECR envia vários eventos para. CloudTrail Além disso, o Amazon ECR inclui no máximo 100 etiquetas por imagem.

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "PolicyExecutionEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-9aac-4e9d-956d-12561a4923aa",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "lifecycleEventPolicy": {
            "lifecycleEventRules": [
                {
                    "rulePriority": 1,
                    "description": "remove all images > 2",
                    "lifecycleEventSelection": {
                        "tagStatus": "Any",
                        "tagPrefixList": [],
                        "countType": "Image count more than",
                        "countNumber": 2
                    },
                    "action": "expire"
                }
            ],
            "lastEvaluatedAt": 0,
            "policyVersion": 1,
            "policyId": "ceb86829-58e7-9498-920c-aa042e33037b"
        },
        "lifecycleEventImageActions": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "alpine"
                    ],
                    "pushedAt": 1584042813000
                },
                "rulePriority": 1
            },
            {
                "lifecycleEventImage": {
                    "digest": "sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "centos"
                    ],
                    "pushedAt": 1584042842000
                },
                "rulePriority": 1
            }
        ],
        "lifecycleEventFailureDetails": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:9117e1bc28cd20751e584b4ccd19b1178d14cf02d134b04ce6be0cc51bff762a",
                    "tagStatus": "Untagged",
                    "tagList": [],
                    "pushedAt": 1584042844000
                },
                "rulePriority": 1,
                "failureCode": "ImageReferencedByManifestList",
                "failureReason": "Requested image referenced by manifest list: [sha256:4b27c83d44a18c31543039d9e8b2786043ec6c8d00804d5800c5148d6b6f65bc]"
            }
        ]
    }
}
```

#### Exemplo: ação de arquivamento de imagens
<a name="cloudtrail-examples-image-archive"></a>

O exemplo a seguir mostra uma entrada de CloudTrail registro que demonstra uma imagem sendo arquivada usando a `UpdateImageStorageClass` ação com `targetStorageClass` definido como. `ARCHIVE`

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "ARCHIVE",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ARCHIVED"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

#### Exemplo: ação de restauração de imagem
<a name="cloudtrail-examples-image-restore"></a>

Os exemplos a seguir mostram entradas de CloudTrail registro que demonstram uma imagem sendo restaurada. Quando você restaura uma imagem arquivada, dois eventos são gerados:

1. Um evento de chamada de API quando a restauração é iniciada

1. Um evento de serviço quando a operação de restauração assíncrona é concluída

**Evento de chamada de API (início da restauração)**

O exemplo a seguir mostra a chamada inicial da API para restaurar uma imagem usando a `UpdateImageStorageClass` ação com `targetStorageClass` definido como`STANDARD`. A resposta mostra o status da imagem como`ACTIVATING`.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "STANDARD",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ACTIVATING"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

**Evento de serviço (conclusão da restauração)**

O exemplo a seguir mostra o evento de serviço gerado quando a operação de restauração assíncrona é concluída. Esse tipo de evento pode ser localizado filtrando `ImageActivationEvent` para o campo de nome do evento. A `serviceEventDetails` seção contém o resultado da restauração e o status final da imagem.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ImageActivationEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
        "targetStorageClass": "STANDARD",
        "result": "SUCCESS",
        "imageStatus": "ACTIVE"
    },
    "eventCategory": "Management"
}
```

#### Exemplo: ação de referência de imagem
<a name="cloudtrail-examples-image-referrers-action"></a>

O exemplo a seguir mostra uma entrada de AWS CloudTrail registro que demonstra quando um cliente OCI 1.1 compatível busca uma lista de referenciadores ou artefatos de referência para uma imagem usando a API. `Referrers`

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-10-08T16:38:39Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        },
        "invokedBy": "ecr.amazonaws.com"
    },
    "eventTime": "2024-10-08T17:22:51Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ListImageReferrers",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "ecr.amazonaws.com",
    "userAgent": "ecr.amazonaws.com",
    "requestParameters": {
        "registryId": "123456789012",
        "repositoryName": "testrepo",
        "subjectId": {
            "imageDigest": "sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a"
        },
        "nextToken": "urD72mdD/mC8b5-EXAMPLE"
    },
    "responseElements": null,
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```