AWS Referência de permissões do CodeArtifact
AWS Recursos e operações do CodeArtifact
No CodeArtifact AWS, 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 têm ARNs a eles associados. Para obter mais informações, consulte Nomes de recurso da Amazon (ARNs) na Referência geral da Amazon Web Services.
| Tipo de recurso | Formato ARN |
|---|---|
| Domínio |
|
| Repositório |
|
| Grupo de pacotes |
|
| Pacote com namespace |
|
| Pacote sem namespace |
|
|
Todos os recursos do CodeArtifact |
|
|
Todos os recursos do CodeArtifact pertencentes à conta especificada na região da AWS especificada |
|
O ARN de recurso que você especifica depende a qual ação ou ações deseja controlar o acesso.
É possível indicar um domínio específico (myDomain) em sua instrução usando o respectivo ARN, da seguinte maneira.
"Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain"
É possível indicar um repositório específico (myRepo) em sua instrução usando o ARN dele da seguinte maneira.
"Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain/myRepo"
Para especificar vários recursos em uma única instrução, separe seus 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 serviços AWS tratam dois pontos (:) ou a barra inclinada (/) como o mesmo caractere em ARNs. Contudo, o CodeArtifact usa uma correspondência exata em 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 Permissões e operações da API do CodeArtifact
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 as chaves de condição usadas por toda a AWS em suas políticas do CodeArtifact AWS para expressar condições. Para obter uma lista, consulte Referência de elementos de política JSON do IAM 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 ações do CodeArtifact, enquanto codeartifact:Describe* especifica todas as ações do CodeArtifact que começam com a palavra Describe.
| AWS Operações da API do CodeArtifact | Permissões obrigatórias (ações de API) | Recursos |
|---|---|---|
AssociateExternalConnection |
Necessário para adicionar uma conexão externa a um repositório. |
|
CopyPackageVersions |
Para copiar versões de pacotes de um repositório de origem para um repositório de destino:
Obrigatório no repositório de destino.
Obrigatório no repositório de origem. |
|
CreateDomain |
Obrigatório para criar domínios.
Obrigatório na chave KMS fornecida ao especificar uma |
|
CreatePackageGroup |
Obrigatório para criar grupos de pacotes. |
|
CreateRepository |
Obrigatório para criar repositórios.
Obrigatório em um repositório para que possa ser adicionado como um repositório upstream aos repositórios downstream. |
|
DeleteDomain |
Obrigatório para excluir domínios. |
|
DeleteDomainPermissionsPolicy |
Obrigatório para excluir uma política de recursos do domínio. |
|
DeletePackage |
Obrigatório para excluir um pacote. |
|
DeletePackageGroup |
Obrigatório para excluir um grupo de pacotes. |
|
DeletePackageVersions |
Obrigatório para excluir versões de um pacote. |
|
DeleteRepository |
Obrigatório para excluir um repositório. |
|
DeleteRepositoryPermissionsPolicy |
Obrigatório para excluir uma política de recursos do repositório. |
|
DescribeDomain |
Obrigatório para obter informações sobre um domínio. |
|
DescribePackage |
Obrigatório para obter informações sobre um pacote. |
|
DescribePackageGroup |
Obrigatório para obter informações sobre um grupo de pacotes. |
|
DescribePackageVersion |
Obrigatório para obter informações sobre a versão de um pacote. |
|
DescribeRepository |
Obrigatório para obter informações sobre um repositório. |
|
DisassociateExternalConnection |
Obrigatório para remover uma conexão externa de um repositório. |
|
DisposePackageVersions |
Obrigatório para descartar versões de um pacote. |
|
GetAssociatedPackageGroup |
Obrigatório para obter o grupo de pacotes associado de um pacote. |
|
GetAuthorizationToken |
Obrigatório para obter um token de autorização temporário para acessar repositórios. |
|
GetDomainPermissionsPolicy |
Obrigatório para obter uma política de recursos de domínio. |
|
GetPackageVersionAsset |
Obrigatório para obter ativos em uma versão de pacote. |
arn:aws:codeartifact: |
GetPackageVersionReadme |
Obrigatório para obter o leiame de uma versão do pacote. |
|
GetRepositoryEndpoint |
Obrigatório para obter um endpoint do repositório. |
|
GetRepositoryPermissionsPolicy |
Obrigatório para obter uma política de recursos do repositório. |
|
ListAssociatedPackages |
Obrigatório para retornar uma lista de pacotes associados a um grupo de pacotes. |
|
ListDomains |
Obrigatório para retornar uma lista paginada de domínios em uma conta da AWS. |
|
ListPackageGroups |
Obrigatório para retornar uma lista paginada de grupos de pacotes em um domínio. |
|
ListPackages |
Obrigatório para retornar uma lista paginada de pacotes em um repositório. |
|
ListPackageVersionAssets |
Obrigatório para retornar uma lista paginada de ativos em uma versão de pacote. |
|
ListPackageVersionDependencies |
Obrigatório para retornar uma lista paginada das dependências em uma versão de pacote. |
|
ListPackageVersions |
Obrigatório para retornar uma lista paginada de versões de pacotes em um repositório. |
|
ListRepositories |
Obrigatório para retornar uma lista paginada de repositórios em uma conta da AWS. |
|
ListRepositoriesInDomain |
Obrigatório para retornar uma lista paginada de repositórios em um domínio. |
|
ListSubPackageGroups |
Obrigatório para retornar uma lista de grupos de pacotes secundários diretos de um grupo de pacotes. |
|
ListTagsForResource |
Obrigatório para listar tags de um recurso específico. |
|
PublishPackageVersion |
Obrigatório para publicar uma versão do pacote em um repositório. |
|
PutDomainPermissionsPolicy |
Obrigatório para adicionar uma política de recursos a um domínio. |
|
PutPackageMetadata |
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. |
|
PutPackageOriginConfiguration |
Obrigatório para atualizar a configuração de origem de um pacote. |
|
PutRepositoryPermissionsPolicy |
Obrigatório para adicionar uma política de recursos a um repositório. |
|
ReadFromRepository |
Obrigatório para ler de um repositório usando um cliente de gerenciador de pacotes. |
|
TagResource |
Obrigatório para marcar um recurso. |
|
UntagResource |
Obrigatório para remover uma tag de um recurso. |
|
UpdatePackageGroup |
Necessário para atualizar um grupo de pacotes. |
|
UpdatePackageGroupOriginConfiguration |
Obrigatório para atualizar a configuração de origem de um grupo de pacotes. |
|
UpdatePackageVersionsStatus |
Obrigatório para alterar o status de uma versão do pacote. |
|
UpdateRepository |
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 ou UpdateRepository no Guia da API do CodeArtifact para obter mais informações.
Obrigatório em um repositório para que possa ser adicionado como um repositório upstream aos repositórios downstream. |
|
ARNs de grupos de pacotes
nota
Esta seção sobre ARNs de grupos de pacotes e codificação de padrões é meramente informativa. É recomendável copiar os ARNs do console ou buscar ARNs usando a API DescribePackageGroup 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 os ARNs diferenciam maiúsculas de minúsculas, portanto, * deve ser codificado como %2a e não %2A.