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
CodeArtifact usa permissões baseadas em recursos para controlar o acesso. Com as permissões baseadas em recursos, você pode especificar quem tem acesso a um repositório e quais ações essas pessoas podem realizar nele. Por padrão, somente o proprietário do repositório tem acesso a ele. Você pode aplicar um documento de política que permite que outras entidades principais do IAM acessem o repositório.
Para obter mais informações, consulte Políticas baseadas em recursos e Políticas baseadas em identidade e Políticas baseadas em recursos.
Crie uma política de recursos para conceder acesso de leitura
Uma política de recursos é um arquivo de texto no formato JSON. O arquivo deve especificar uma entidade principal (ator), uma ou mais ações e um efeito (Allow ou Deny). Por exemplo, a política de recursos a seguir concede à conta 123456789012 permissão para baixar pacotes do repositório.
Como a política é avaliada somente para operações no repositório ao qual está anexada, não é necessário especificar um recurso. Como o recurso está implícito, você pode definir Resource como *. Para que um gerenciador de pacotes baixe um pacote desse repositório, será necessário também criar uma política de domínio para acesso entre contas. A política de domínio deve conceder pelo menos codeartifact:GetAuthorizationToken permissão ao diretor. Para obter um exemplo de uma política completa de domínio para conceder acesso entre contas, consulte Exemplo de políticas de domínio.
nota
A ação codeartifact:ReadFromRepository só pode ser usada em um recurso do repositório. Você não pode colocar o nome do recurso da Amazon (ARN) de um pacote como um recurso com codeartifact:ReadFromRepository como a ação para permitir acesso de leitura a um subconjunto de pacotes em um repositório. Uma determinada entidade principal pode ler todos os pacotes em um repositório ou nenhum deles.
Como a única ação especificada no repositório é ReadFromRepository, usuários e funções da conta 1234567890 podem baixar pacotes do repositório. No entanto, eles não podem realizar outras ações neles (por exemplo, listar nomes e versões de pacotes). Normalmente, você concede permissões na política a seguir além de ReadFromRepository porque um usuário que baixa pacotes de um repositório também precisa interagir com eles de outras maneiras.
Definir uma política
Depois de criar um documento de política, use o comando put-repository-permissions-policy para anexá-lo a um repositório:
aws codeartifact put-repository-permissions-policy --domainmy_domain--domain-owner111122223333\ --repositorymy_repo--policy-documentfile:///PATH/TO/policy.json
Quando você chama put-repository-permissions-policy, a política de recursos no repositório é ignorada ao avaliar as permissões. Isso garante que o proprietário de um domínio não possa se bloquear do repositório, o que impediria que ele pudesse atualizar a política de recursos.
nota
Você não pode conceder permissões a outra AWS conta para atualizar a política de recursos em um repositório usando uma política de recursos, pois a política de recursos é ignorada durante a chamada put-repository-permissions-policy.
Exemplo de resultado:
{ "policy": { "resourceArn": "arn:aws:codeartifact:region-id:111122223333:repository/my_domain/my_repo", "document": "{ ...policy document content...}", "revision": "MQlyyTQRASRU3HB58gBtSDHXG7Q3hvxxxxxxx=" } }
A saída do comando contém o nome do recurso da Amazon (ARN) do recurso do repositório, o conteúdo completo do documento de política e um identificador de revisão. Você pode passar o identificador de revisão para put-repository-permissions-policy usando a opção --policy-revision. Isso garante que uma revisão conhecida do documento seja sobrescrita e não uma versão mais recente definida por outro redator.
Ler uma política
Use o comando get-repository-permissions-policy para ler uma versão existente de um documento de política. Para formatar a saída para facilitar a leitura, use --output e --query policy.document junto com o módulo json.tool Python.
aws codeartifact get-repository-permissions-policy --domainmy_domain--domain-owner111122223333\ --repositorymy_repo--output text --query policy.document | python -m json.tool
Exemplo de resultado:
Excluir uma política
Use o comando delete-repository-permissions-policy para excluir uma política de um repositório.
aws codeartifact delete-repository-permissions-policy --domainmy_domain--domain-owner111122223333\ --repositorymy_repo
O formato da saída é o mesmo que o do comando get-repository-permissions-policy.
Conceda acesso de leitura às entidades principais
Ao especificar o usuário raiz de uma conta como entidade principal em um documento de política, você concede acesso a todos os usuários e funções dessa conta. Para limitar o acesso a usuários ou funções selecionados, use o ARN deles na seção Principal da política. Por exemplo, use o seguinte para conceder acesso de leitura ao usuário do IAM bob na conta 123456789012.
Conceder acesso de gravação aos pacotes
A ação codeartifact:PublishPackageVersion é usada para controlar a permissão para publicar novas versões de um pacote. O recurso usado com essa ação deve ser um pacote. O formato do CodeArtifact pacote ARNs é o seguinte.
arn:aws:codeartifact:region-id:111122223333:package/my_domain/my_repo/package-format/package-namespace/package-name
O exemplo a seguir mostra o ARN de um pacote npm com escopo @parity e nome ui no repositório my_repo no domínio my_domain.
arn:aws:codeartifact:region-id:111122223333:package/my_domain/my_repo/npm/parity/ui
O ARN de um pacote npm sem um escopo tem a string vazia para o campo do namespace. O exemplo a seguir mostra o ARN de um pacote sem escopo e com o nome react no repositório my_repo no domínio my_domain.
arn:aws:codeartifact:region-id:111122223333:package/my_domain/my_repo/npm//react
A política a seguir concede permissão 123456789012 à conta para publicar versões de @parity/ui no repositório my_repo.
Importante
Para conceder permissão para publicar versões NuGet do Maven e do pacote, adicione as seguintes permissões além decodeartifact:PublishPackageVersion.
NuGet:
codeartifact:ReadFromRepositorye especifique o recurso do repositórioMaven:
codeartifact:PutPackageMetadata
Como essa política especifica um domínio e um repositório como parte do recurso, ela permite publicar somente quando anexada a esse repositório.
Conceder acesso de gravação a um repositório
Você pode usar curingas para conceder permissão de gravação a todos os pacotes em um repositório. Por exemplo, use a política a seguir para conceder a uma conta permissão para gravar em todos os pacotes no repositório my_repo.
Interação entre políticas de repositório e domínio
CodeArtifact oferece suporte a políticas de recursos em domínios e repositórios. As políticas de recursos são opcionais. Cada domínio pode ter uma política e cada repositório no domínio pode ter sua própria política de repositório. Se uma política de domínio e uma política de repositório estiverem presentes, ambas serão avaliadas ao determinar se uma solicitação para um CodeArtifact repositório é permitida ou negada. As políticas de domínio e repositório estão sendo avaliadas usando as seguintes regras:
-
Nenhuma política de recursos é avaliada ao realizar operações em nível de conta, como ListDomainsou. ListRepositories
-
Nenhuma política de repositório é avaliada ao realizar operações em nível de domínio, como ou. DescribeDomainListRepositoriesInDomain
-
A política de domínio não é avaliada durante a execução PutDomainPermissionsPolicy. Observe que essa regra evita bloqueios.
-
A política de domínio é avaliada durante a execução PutRepositoryPermissionsPolicy, mas a política do repositório não é avaliada.
-
Uma negação explícita em qualquer política substitui uma permissão em outra política.
-
Uma permissão explícita só é necessária em uma política de recursos. A omissão de uma ação de uma política de repositório não resultará em uma negação implícita se a política de domínio permitir a ação.
-
Quando nenhuma política de recursos permite uma ação, o resultado é uma negação implícita, a menos que a conta do responsável pela chamada seja a conta do proprietário do domínio ou do administrador do repositório e uma política baseada em identidade permita a ação.
As políticas de recursos são opcionais quando usadas para conceder acesso em um cenário de conta única, em que a conta do chamador usada para acessar um repositório é a mesma que a conta do proprietário do domínio e do administrador do repositório. As políticas de recursos são necessárias para conceder acesso em um cenário entre contas em que a conta do chamador não é a mesma do proprietário do domínio ou da conta do administrador do repositório. O acesso entre contas CodeArtifact segue as regras gerais do IAM para acesso entre contas, conforme descrito em Determinando se uma solicitação entre contas é permitida no Guia do usuário do IAM.
-
Um principal na conta do proprietário do domínio pode ter acesso a qualquer repositório no domínio por meio de uma política baseada em identidade. Observe que, nesse caso, nenhuma permissão explícita é necessária em uma política de domínio ou repositório.
-
Um principal na conta do proprietário do domínio pode ter acesso a qualquer repositório por meio de uma política de domínio ou repositório. Observe que, nesse caso, nenhuma permissão explícita é necessária em uma política baseada em identidade.
-
Um principal na conta de administrador do repositório pode ter acesso ao repositório por meio de uma política baseada em identidade. Observe que, nesse caso, nenhuma permissão explícita é necessária em uma política de domínio ou repositório.
-
Um principal em outra conta só recebe acesso quando permitido por pelo menos uma política de recursos e pelo menos uma política baseada em identidade, sem nenhuma política que negue explicitamente a ação.