

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

# Políticas de repositório privado no Amazon ECR
<a name="repository-policies"></a>

O Amazon ECR usa permissões baseadas em recursos para controlar o acesso a repositórios. As permissões baseadas em recursos permitem especificar quais perfis ou usuários têm acesso a um repositório e quais ações eles podem realizar nele. Por padrão, somente a AWS conta que criou o repositório tem acesso ao repositório. Você pode aplicar uma política de repositório que permite acesso adicional ao repositório.

**Topics**
+ [Políticas de repositório versus políticas do IAM](#repository-policy-vs-iam-policy)
+ [Exemplos de políticas de repositório privado no Amazon ECR](repository-policy-examples.md)
+ [Configurar uma declaração de política de repositório privado no Amazon ECR](set-repository-policy.md)

## Políticas de repositório versus políticas do IAM
<a name="repository-policy-vs-iam-policy"></a>

As políticas de repositório do Amazon ECR são um subconjunto de políticas do IAM que têm como escopo e são usadas especificamente para controlar o acesso a repositórios individuais do Amazon ECR. As políticas do IAM geralmente são usadas para aplicar permissões a todo o serviço Amazon ECR, mas também podem ser usadas para controlar o acesso a recursos específicos.

Tanto as políticas de repositório do Amazon ECR quanto as políticas do IAM são usadas ao determinar quais ações uma função ou um usuário específico pode executar em um repositório. Se uma função ou um usuário tiver permissão para executar uma ação por meio de uma política de repositório, mas tiver a permissão negada por uma política do IAM (ou vice-versa), a ação será negada. Uma função ou um usuário somente precisa ter permissão para uma ação por meio de uma política de repositório ou uma política do IAM, mas não ambas para que a ação seja permitida.

**Importante**  
O Amazon ECR exige que os usuários tenham permissão para fazer chamadas para a API `ecr:GetAuthorizationToken` por meio de uma política do IAM antes que possam fazer a autenticação para um registro e enviar e extrair qualquer imagem de um repositório do Amazon ECR. O Amazon ECR fornece várias políticas gerenciadas do IAM para controlar o acesso do usuário em diversos níveis. Para obter mais informações, consulte [Exemplos de políticas baseadas em identidade do Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

Você pode usar qualquer um desses tipos de política para controlar o acesso aos seus repositórios, conforme mostrado nos exemplos a seguir.

Este exemplo mostra uma política de repositório do Amazon ECR que permite que um usuário específico descreva o repositório e as imagens contidas nele.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ECRRepositoryPolicy",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::111122223333:user/username"},
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Este exemplo mostra uma política do IAM que atinge o mesmo objetivo que o acima definindo o escopo da política como um repositório (especificado pelo ARN completo do repositório) usando o parâmetro de recurso. Para obter mais informações sobre o formato do nome de recurso da Amazon (ARN), consulte [Recursos](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeRepoImage",
            "Effect": "Allow",
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": ["arn:aws:ecr:us-east-1:111122223333:repository/repository-name"]
        }
    ]
}
```

------

# Exemplos de políticas de repositório privado no Amazon ECR
<a name="repository-policy-examples"></a>

**Importante**  
Os exemplos de políticas de repositório nesta página destinam-se a ser aplicados a repositórios privados do Amazon ECR. Eles não funcionarão corretamente se forem usados diretamente com um entidade principal IAM, a menos que sejam modificados para especificar o repositório Amazon ECR como o recurso. Para obter mais informações sobre a definição de políticas de repositório, consulte [Configurar uma declaração de política de repositório privado no Amazon ECR](set-repository-policy.md).

As políticas de repositório do Amazon ECR são um subconjunto de políticas do IAM que têm como escopo e são usadas especificamente para controlar o acesso a repositórios individuais do Amazon ECR. As políticas do IAM geralmente são usadas para aplicar permissões a todo o serviço Amazon ECR, mas também podem ser usadas para controlar o acesso a recursos específicos. Para obter mais informações, consulte [Políticas de repositório versus políticas do IAM](repository-policies.md#repository-policy-vs-iam-policy).

Os exemplos a seguir de políticas de repositório mostram declarações de permissão que você poderia usar para controlar o acesso aos seus repositórios privados do Amazon ECR.

**Importante**  
O Amazon ECR exige que os usuários tenham permissão para fazer chamadas para a API `ecr:GetAuthorizationToken` por meio de uma política do IAM antes que possam fazer a autenticação para um registro e enviar e extrair qualquer imagem de um repositório do Amazon ECR. O Amazon ECR fornece várias políticas gerenciadas do IAM para controlar o acesso do usuário em diversos níveis. Para obter mais informações, consulte [Exemplos de políticas baseadas em identidade do Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

## Exemplo: permitir um ou mais usuários do
<a name="IAM_within_account"></a>

A política de repositório a seguir permite que um ou mais usuários do enviem e extraiam imagens de e para um repositório.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPushPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/push-pull-user-1",
                    "arn:aws:iam::111122223333:user/push-pull-user-2"
                ]
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability",
                "ecr:CompleteLayerUpload",
                "ecr:GetDownloadUrlForLayer",
                "ecr:InitiateLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Exemplo: permitir outra conta
<a name="IAM_allow_other_accounts"></a>

A política de repositório a seguir permite que uma conta específica insira imagens.

**Importante**  
A conta para a qual você está concedendo permissões deve ter a região na qual você está criando a política de repositório ativada, caso contrário, ocorrerá um erro.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCrossAccountPush",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:CompleteLayerUpload",
                "ecr:InitiateLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart"
            ],
            "Resource": "*"
        }
    ]
}
```

------

A política de repositório a seguir permite que alguns usuários extraiam imagens (*pull-user-1*e*pull-user-2*) enquanto fornecem acesso total a outra (*admin-user*).

**nota**  
Para políticas de repositório mais complicadas que atualmente não são suportadas no Console de gerenciamento da AWS, você pode aplicar a política com o [https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) AWS CLI comando.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/pull-user-1",
                    "arn:aws:iam::111122223333:user/pull-user-2"
                ]
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowAll",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/admin-user"
            },
            "Action": [
                "ecr:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Exemplo: negar tudo
<a name="IAM_deny_all"></a>

A política de repositório a seguir nega a todos os usuários a capacidade de extrair imagens.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyPull",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Exemplo: restringir o acesso a endereços IP específicos
<a name="IAM_restrict_ip"></a>

O exemplo a seguir nega permissões a qualquer usuário para executar qualquer operação do Amazon ECR quando aplicada a um repositório de uma faixa específica de endereços.

A condição nesta declaração identifica o `54.240.143.*` intervalo de endereços IP permitidos do Protocolo de Internet versão 4 (IPv4).

O `Condition` bloco usa as `NotIpAddress` condições e a chave de `aws:SourceIp` condição, que é uma chave AWS de condição ampla. Para obter mais informações sobre chaves de condição, consulte [Chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html). Os `aws:sourceIp` IPv4 valores usam a notação CIDR padrão. Para obter mais informações, consulte [Operadores de condição de endereço IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress) no *Guia do usuário do IAM*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ECRPolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "ecr:*",
            "Resource": "*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "54.240.143.0/24"
                }
            }
        }
    ]
}
```

------

## Exemplo: Permitir um AWS serviço
<a name="IAM_service_linked"></a>

A política de repositório a seguir permite o AWS CodeBuild acesso às ações de API do Amazon ECR necessárias para a integração com esse serviço. Ao usar o exemplo a seguir, você deve usar as chaves de condição `aws:SourceArn` e `aws:SourceAccount` para definir o escopo de quais recursos que podem assumir essas permissões. Para obter mais informações, consulte a [amostra do Amazon ECR CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html) no *Guia do AWS CodeBuild usuário*.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CodeBuildAccess",
         "Effect":"Allow",
         "Principal":{
            "Service":"codebuild.amazonaws.com"
         },
         "Action":[
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer"
         ],
         "Resource": "*",
         "Condition":{
            "ArnLike":{
               "aws:SourceArn":"arn:aws:codebuild:us-east-1:123456789012:project/project-name"
            },
            "StringEquals":{
               "aws:SourceAccount":"123456789012"
            }
         }
      }
   ]
}
```

------

# Configurar uma declaração de política de repositório privado no Amazon ECR
<a name="set-repository-policy"></a>

Você pode adicionar uma declaração de política de acesso a um repositório no Console de gerenciamento da AWS seguindo as etapas abaixo. Você pode adicionar várias instruções de política por repositório. Para obter exemplos de políticas, consulte [Exemplos de políticas de repositório privado no Amazon ECR](repository-policy-examples.md).

**Importante**  
O Amazon ECR exige que os usuários tenham permissão para fazer chamadas para a API `ecr:GetAuthorizationToken` por meio de uma política do IAM antes que possam fazer a autenticação para um registro e enviar e extrair qualquer imagem de um repositório do Amazon ECR. O Amazon ECR fornece várias políticas gerenciadas do IAM para controlar o acesso do usuário em diversos níveis. Para obter mais informações, consulte [Exemplos de políticas baseadas em identidade do Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

**Para configurar uma instrução de política de repositório**

1. Abra o console do Amazon ECR nos [https://console.aws.amazon.com/ecr/repositórios](https://console.aws.amazon.com/ecr/repositories).

1. Na barra de navegação, selecione a região que contém o repositório no qual será configurada uma instrução de política.

1. No painel de navegação, escolha **Repositories (Repositórios)**.

1. Na página **Repositories (Repositórios)**, escolha o repositório no qual definir uma instrução de política para visualizar o conteúdo do repositório.

1. Na exibição de lista de imagens do repositório, no painel de navegação, selecione **Permissions (Permissões)**, **Edit (Editar)**.
**nota**  
Se você não vir a opção **Permissions (Permissões)** no painel de navegação, verifique se você está na exibição de lista de imagens do repositório.

1. Na página **Editar permissões**, selecione **Adicionar declaração**.

1. Em **Statement name (Nome da instrução)**, insira um nome para a instrução.

1. Em **Effect (Efeito)**, escolha se a instrução da política resultará em uma permissão ou negação explícita.

1. Em **Principal**, escolha o escopo ao qual aplicar a instrução da política. 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 *Manual do usuário do IAM*.
   + Você pode aplicar a declaração a todos os AWS usuários autenticados marcando a caixa de seleção **Todos (\$1)**.
   + Em **Service principal (Principal do serviço)**, especifique o nome do principal do serviço (por exemplo, `ecs.amazonaws.com`) para aplicar a instrução a um serviço específico.
   +  IDsEm **AWS Conta**, especifique um número de AWS conta (por exemplo,`111122223333`) para aplicar a declaração a todos os usuários em uma AWS conta específica. Várias contas podem ser especificadas usando uma lista delimitada por vírgulas.
**Importante**  
A conta para a qual você está concedendo permissões deve ter a região na qual você está criando a política de repositório ativada, caso contrário, ocorrerá um erro.
   + Para **entidades do IAM**, selecione as funções ou os usuários em sua AWS conta aos quais aplicar a declaração.
**nota**  
Para políticas de repositório mais complicadas que atualmente não são suportadas no Console de gerenciamento da AWS, você pode aplicar a política com o [https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) AWS CLI comando.

1. Em **Actions (Ações)**, escolha o escopo das operações da API do Amazon ECR ao qual a declaração de política deve ser aplicada na lista de operações de API individuais.

1. Quando terminar, escolha **Save (Salvar)** para definir a política.

1. Repita a etapa anterior para cada política de repositório a ser adicionada.