

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

# AWS CodeArtifact referência de permissões
<a name="auth-and-access-control-permissions-reference"></a>

## AWS CodeArtifact recursos e operações
<a name="arn-formats"></a>

Em AWS CodeArtifact, o recurso principal é um domínio. Em uma política, você usa um Amazon Resource Name (ARN) para identificar o recurso a que a política se aplica. Os repositórios também são recursos e estão ARNs associados a eles. Para obter mais informações, consulte [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) no *Referência geral da Amazon Web Services*.


| Tipo de atributo | Formato ARN | 
| --- | --- | 
| Domínio | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| Repositório | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| Grupo de pacotes | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| Pacote com namespace | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| Pacote sem namespace | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}//{{my_package}}` | 
| Todos os CodeArtifact recursos | `arn:aws:codeartifact:*` | 
| Todos os CodeArtifact recursos pertencentes à conta especificada na região especificada da AWS | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:*` | 

O ARN de recurso que você especifica depende a qual ação ou ações deseja controlar o acesso.

Você pode indicar um domínio específico ({{myDomain}}) em sua declaração usando seu ARN da seguinte forma.

```
"Resource": "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:domain/{{myDomain}}"
```

Você pode indicar um repositório específico ({{myRepo}}) em sua declaração usando seu ARN da seguinte forma.

```
"Resource": "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:domain/{{myDomain}}/{{myRepo}}"
```

Para especificar vários recursos em uma única declaração, separe-os ARNs com vírgulas. A instrução a seguir se aplica a todos os pacotes e repositórios em um domínio específico.

```
"Resource": [
  "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:domain/{{myDomain}}",
  "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:repository/{{myDomain}}/*",
  "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:package/{{myDomain}}/*"
]
```

**nota**  
Muitos AWS serviços tratam dois pontos (:) ou uma barra invertida (/) como o mesmo caractere em. ARNs No entanto, CodeArtifact usa uma correspondência exata nos padrões e regras dos recursos. Certifique-se de usar os caracteres corretos ao criar padrões de evento, de modo que eles correspondam à sintaxe ARN no recurso.

## AWS CodeArtifact Operações e permissões de API
<a name="permission-ref"></a>

Use a tabela a seguir como uma referência ao configurar o controle de acesso e escrever políticas de permissões que você pode anexar a uma identidade do IAM (políticas baseadas em identidade). 

Você pode usar chaves AWS de condição abrangentes em suas AWS CodeArtifact políticas para expressar condições. Para obter uma lista, consulte [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) no *Guia do usuário do IAM*.

Você especifica as ações no campo `Action` das políticas. Para especificar uma ação, use o prefixo `codeartifact:` seguido pelo nome da operação API (por exemplo, `codeartifact:CreateDomain` e `codeartifact:AssociateExternalConnection`). Para especificar várias ações em uma única declaração, separe-as com vírgulas (por exemplo, `"Action": [ "codeartifact:CreateDomain", "codeartifact:AssociateExternalConnection" ]`).

**Usando caracteres curinga**

Você especifica um ARN, com ou sem um caractere curinga (\*), como o valor do recurso no campo `Resource` das políticas. Você pode usar um curinga para especificar várias ações ou recursos. Por exemplo, `codeartifact:*` especifica todas as CodeArtifact ações e `codeartifact:Describe*` especifica todas as CodeArtifact ações que começam com a palavra. `Describe`


**CodeArtifact Operações de API e permissões necessárias para ações**  

| AWS CodeArtifact Operações de API | Permissões obrigatórias (ações de API) | Recursos | 
| --- | --- | --- | 
| AssociateExternalConnection | `codeartifact:AssociateExternalConnection`<br />Necessário para adicionar uma conexão externa a um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| CopyPackageVersions | Para copiar versões de pacotes de um repositório de origem para um repositório de destino:<br />`codeartifact:CopyPackageVersions`<br />Obrigatório no repositório de destino.<br />`codeartifact:ReadFromRepository`<br />Obrigatório no repositório de origem. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| CreateDomain | `codeartifact:CreateDomain`<br />Obrigatório para criar domínios.<br />`kms:DescribeKey` e `kms:CreateGrant`<br />Obrigatório na chave KMS fornecida ao especificar uma `encryptionKey` não padrão. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| CreatePackageGroup | `codeartifact:CreatePackageGroup`<br />Obrigatório para criar grupos de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| CreateRepository | `codeartifact:CreateRepository`<br />Obrigatório para criar repositórios.<br />`codeartifact:AssociateWithDownstreamRepository`<br />Obrigatório em um repositório para que possa ser adicionado como um repositório upstream aos repositórios downstream. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DeleteDomain | `codeartifact:DeleteDomain`<br />Obrigatório para excluir domínios. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| DeleteDomainPermissionsPolicy | `codeartifact:DeleteDomainPermissionsPolicy`<br />Obrigatório para excluir uma política de recursos do domínio. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| DeletePackage | `codeartifact:DeletePackage`<br />Obrigatório para excluir um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DeletePackageGroup | `codeartifact:DeletePackageGroup`<br />Obrigatório para excluir um grupo de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| DeletePackageVersions | `codeartifact:DeletePackageVersions`<br />Obrigatório para excluir versões de um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DeleteRepository | `codeartifact:DeleteRepository`<br />Obrigatório para excluir um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DeleteRepositoryPermissionsPolicy | `codeartifact:DeleteRepositoryPermissionsPolicy`<br />Obrigatório para excluir uma política de recursos do repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DescribeDomain | `codeartifact:DescribeDomain`<br />Obrigatório para obter informações sobre um domínio. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| DescribePackage | `codeartifact:DescribePackage`<br />Obrigatório para obter informações sobre um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DescribePackageGroup | `codeartifact:DescribePackageGroup`<br />Obrigatório para obter informações sobre um grupo de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| DescribePackageVersion | `codeartifact:DescribePackageVersion`<br />Obrigatório para obter informações sobre a versão de um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DescribeRepository | `codeartifact:DescribeRepository`<br />Obrigatório para obter informações sobre um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DisassociateExternalConnection | `codeartifact:DisassociateExternalConnection`<br />Obrigatório para remover uma conexão externa de um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DisposePackageVersions | `codeartifact:DisposePackageVersions`<br />Obrigatório para descartar versões de um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| GetAssociatedPackageGroup | `codeartifact:GetAssociatedPackageGroup`<br />Obrigatório para obter o grupo de pacotes associado de um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| GetAuthorizationToken | `codeartifact:GetAuthorizationToken`<br />`sts:GetServiceBearerToken`<br />Obrigatório para obter um token de autorização temporário para acessar repositórios. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| GetDomainPermissionsPolicy | `codeartifact:GetDomainPermissionsPolicy`<br />Obrigatório para obter uma política de recursos de domínio. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| GetPackageVersionAsset | `codeartifact:GetPackageVersionAsset`<br />Obrigatório para obter ativos em uma versão de pacote. | arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my\_domain}}/{{my\_repo}}/{{package-format}}/{{namespace}}/{{my\_package}} | 
| GetPackageVersionReadme | `codeartifact:GetPackageVersionReadme`<br />Obrigatório para obter o leiame de uma versão do pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| GetRepositoryEndpoint | `codeartifact:GetRepositoryEndpoint`<br />Obrigatório para obter um endpoint do repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| GetRepositoryPermissionsPolicy | `codeartifact:GetRepositoryPermissionsPolicy`<br />Obrigatório para obter uma política de recursos do repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| ListAssociatedPackages | `codeartifact:ListAssociatedPackages`<br />Obrigatório para retornar uma lista de pacotes associados a um grupo de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| ListDomains | `codeartifact:ListDomains`<br />Obrigatório para retornar uma lista paginada de domínios em uma conta da AWS. | `*` | 
| ListPackageGroups | `codeartifact:ListPackageGroups`<br />Obrigatório para retornar uma lista paginada de grupos de pacotes em um domínio. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| ListPackages | `codeartifact:ListPackages`<br />Obrigatório para retornar uma lista paginada de pacotes em um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| ListPackageVersionAssets | `codeartifact:ListPackageVersionAssets`<br />Obrigatório para retornar uma lista paginada de ativos em uma versão de pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ListPackageVersionDependencies | `codeartifact:ListPackageVersionDependencies`<br />Obrigatório para retornar uma lista paginada das dependências em uma versão de pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ListPackageVersions | `codeartifact:ListPackageVersions`<br />Obrigatório para retornar uma lista paginada de versões de pacotes em um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ListRepositories | `codeartifact:ListRepositories`<br />Obrigatório para retornar uma lista paginada de repositórios em uma conta da AWS. | `*` | 
| ListRepositoriesInDomain | `codeartifact:ListRepositoriesInDomain`<br />Obrigatório para retornar uma lista paginada de repositórios em um domínio. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| ListSubPackageGroups | `codeartifact:ListSubPackageGroups`<br />Obrigatório para retornar uma lista de grupos de pacotes secundários diretos de um grupo de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| ListTagsForResource | `codeartifact:ListTagsForResource`<br />Obrigatório para listar tags de um recurso específico. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}`<br />`arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| PublishPackageVersion | `codeartifact:PublishPackageVersion`<br />Obrigatório para publicar uma versão do pacote em um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| PutDomainPermissionsPolicy | `codeartifact:PutDomainPermissionsPolicy`<br />Obrigatório para adicionar uma política de recursos a um domínio. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| PutPackageMetadata | `codeartifact:PutPackageMetadata`<br />Obrigatório para publicar versões do pacote Maven em um repositório ou para adicionar ou remover tags npm das versões do pacote npm. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| PutPackageOriginConfiguration | `codeartifact:PutPackageOriginConfiguration`<br />Obrigatório para atualizar a configuração de origem de um pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| PutRepositoryPermissionsPolicy | `codeartifact:PutRepositoryPermissionsPolicy`<br />Obrigatório para adicionar uma política de recursos a um repositório. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| ReadFromRepository | `codeartifact:ReadFromRepository`<br />Obrigatório para ler de um repositório usando um cliente de gerenciador de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| TagResource | `codeartifact:TagResource`<br />Obrigatório para marcar um recurso. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}`<br />`arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| UntagResource | `codeartifact:UntagResource`<br />Obrigatório para remover uma tag de um recurso. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}`<br />`arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| UpdatePackageGroup | `codeartifact:UpdatePackageGroup`<br />Necessário para atualizar um grupo de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| UpdatePackageGroupOriginConfiguration | `codeartifact:UpdatePackageGroupOriginConfiguration`<br />Obrigatório para atualizar a configuração de origem de um grupo de pacotes. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| UpdatePackageVersionsStatus | `codeartifact:UpdatePackageVersionsStatus`<br />Obrigatório para alterar o status de uma versão do pacote. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| UpdateRepository | `codeartifact:UpdateRepository`<br />Obrigatório para atualizar a descrição ou as conexões upstream de um repositório. Consulte [Modificar a configuração upstream de um repositório](config-repos.md#modify-upstream) ou [UpdateRepository](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdateRepository.html)no *Guia da CodeArtifact API* para obter mais informações.<br />`codeartifact:AssociateWithDownstreamRepository`<br />Obrigatório em um repositório para que possa ser adicionado como um repositório upstream aos repositórios downstream. | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 

## Package group ARNs
<a name="package-group-arns"></a>

**nota**  
Esta seção sobre como a codificação de grupos ARNs e padrões de pacotes é informativa. É recomendável copiar ARNs do console ou buscar ARNs usando a `DescribePackageGroup` API em vez de codificar padrões e construir. ARNs

As políticas do IAM usam o caractere curinga, `*`, para corresponder a várias ações do IAM ou a vários recursos. Os padrões de grupos de pacotes também usam o caractere `*`. Para escrever com mais facilidade políticas do IAM que correspondam a um único grupo de pacotes, o formato ARN do grupo de pacotes usa uma versão codificada do padrão do grupo de pacotes.

Especificamente, o formato ARN do grupo de pacotes é o seguinte:

```
arn:aws:codeartifact:{{region}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}
```

Onde o padrão do grupo de pacotes codificado é o padrão do grupo de pacotes, com certos caracteres especiais substituídos por seus valores codificados em porcentagem. A seguinte lista contém os caracteres e seus valores correspondentes codificados em porcentagem:
+ `*` : `%2a`
+ `$` : `%24`
+ `%` : `%25`

Por exemplo, o ARN de um grupo de pacotes raiz de um domínio, (`/*`), seria:

```
arn:aws:codeartifact:{{us-east-1}}:{{111122223333}}:package-group/{{my_domain}}/%2a
```

Observe que os caracteres não incluídos na lista não podem ser codificados e ARNs diferenciam maiúsculas de minúsculas, portanto, `*` devem ser codificados como ou não. `%2a` `%2A`