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 domínio
CodeArtifact suporta o uso de permissões baseadas em recursos para controlar o acesso. Com as permissões baseadas em recursos, você pode especificar quem tem acesso ao recurso e quais ações essas pessoas podem executar nele. Por padrão, somente a conta da AWS proprietária do domínio pode criar e acessar repositórios no domínio. Você pode aplicar um documento de política a um domínio para permitir que outras entidades principais do IAM o acessem.
Para obter mais informações, consulte Políticas e permissões e Políticas baseadas em identidade e políticas baseadas em recursos.
Tópicos
Permitir acesso entre contas a um domínio
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). Para criar um repositório em um domínio pertencente a outra conta, a entidade principal deve receber a permissão CreateRepository no recurso do domínio.
Por exemplo, a política de recursos a seguir concede à conta 123456789012 permissão para criar um repositório no domínio.
Para permitir a criação de repositórios com tags, você deve incluir a permissão codeartifact:TagResource. Isso também dará à conta acesso para adicionar tags ao domínio e a todos os repositórios nele contidos.
A política de domínio é avaliada para todas as operações contra o domínio e todos os recursos dentro do domínio. Isso significa que a política de domínio pode ser usada para aplicar permissões a repositórios e pacotes no domínio. Quando o Resource elemento é definido como*, a declaração se aplica a todos os recursos no domínio. Por exemplo, se a política acima também fosse incluída codeartifact:DescribeRepository na lista de ações permitidas do IAM, a política permitiria chamar DescribeRepository todos os repositórios no domínio. Uma política de domínio pode ser usada para aplicar permissões a recursos específicos no domínio usando um recurso específico ARNs no Resource elemento.
nota
As políticas de domínio e repositório podem ser usadas para configurar permissões. Quando ambas as políticas estiverem presentes, as duas políticas serão avaliadas e uma ação será permitida se permitida por qualquer uma das políticas. Para obter mais informações, consulte Interação entre políticas de repositório e domínio.
Para acessar pacotes em um domínio pertencente a outra conta, uma entidade principal deve receber a permissão GetAuthorizationToken no recurso do domínio. Isso permite que o proprietário do domínio exerça controle sobre quais contas podem ler o conteúdo dos repositórios no domínio.
Por exemplo, a política de recursos a seguir concede à conta 123456789012 permissão para recuperar um token auth para qualquer repositório no domínio.
nota
Uma entidade principal que deseja buscar pacotes de um endpoint do repositório deve receber a permissão ReadFromRepository no recurso do repositório além da permissão GetAuthorizationToken no domínio. Da mesma forma, uma entidade principal que deseja publicar pacotes em um endpoint de repositório deve receber a permissão PublishPackageVersion além de GetAuthorizationToken.
Para obter mais informações sobre as permissões ReadFromRepository e PublishPackageVersion, consulte Políticas de repositório.
Exemplo de políticas de domínio
Quando várias contas estão usando um domínio, elas devem receber um conjunto básico de permissões para permitir o uso total do domínio. A política de recursos a seguir lista um conjunto de permissões que autorizam o uso total do domínio.
nota
Você não precisa criar uma política de domínio se um domínio e todos os respectivos repositórios forem de propriedade de uma única conta e precisarem ser usados somente a partir dessa conta.
Exemplo de política de domínio com AWS Organizations
Você pode usar a chave de aws:PrincipalOrgID condição para conceder acesso a um CodeArtifact domínio de todas as contas da sua organização, da seguinte maneira.
Para obter mais informações sobre como usar a chave de condição aws:PrincipalOrgID, consulte Chaves de contexto de condição global da AWS no Guia do usuário do IAM.
Definir uma política de domínio
Você pode usar o comando put-domain-permissions-policy para anexar uma política a um domínio.
aws codeartifact put-domain-permissions-policy --domainmy_domain--domain-owner111122223333\ --policy-documentfile://</PATH/TO/policy.json>
Quando você chama put-domains-permissions-policy, a política de recursos no domínio é ignorada ao avaliar as permissões. Isso garante que o proprietário de um domínio não possa se bloquear do domínio, 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 domínio usando uma política de recursos, pois a política de recursos é ignorada durante a chamada put-domain-permissions-policy.
Exemplo de resultado:
{ "policy": { "resourceArn": "arn:aws:codeartifact:region-id:111122223333:domain/my_domain", "document": "{ ...policy document content...}", "revision": "MQlyyTQRASRU3HB58gBtSDHXG7Q3hvxxxxxxx=" } }
A saída do comando contém o nome do recurso da Amazon (ARN) do recurso do domínio, o conteúdo completo do documento de política e um identificador de revisão. O identificador de revisão pode ser passado para put-domain-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 de domínio
Use o comando get-domain-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 da seguinte maneira.
aws codeartifact get-domain-permissions-policy --domainmy_domain--domain-owner111122223333\ --output text --query policy.document | python -mjson.tool
Exemplo de resultado:
Excluir uma política de domínio
Use o comando delete-domain-permissions-policy para excluir uma política de um domínio.
aws codeartifact delete-domain-permissions-policy --domainmy_domain--domain-owner111122223333
O formato da saída é o mesmo que o dos comandos get-domain-permissions-policy e delete-domain-permissions-policy.