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 AWS conta 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 outros IAM diretores 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 em JSON formato. 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.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:CreateRepository" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:root" }, "Resource": "*" } ] }
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 estivesse incluída codeartifact:DescribeRepository
na lista de IAM ações permitidas, a política permitiria chamar DescribeRepository
todos os repositórios do 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.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:GetAuthorizationToken" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:root" }, "Resource": "*" } ] }
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.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BasicDomainPolicy", "Action": [ "codeartifact:GetDomainPermissionsPolicy", "codeartifact:ListRepositoriesInDomain", "codeartifact:GetAuthorizationToken", "codeartifact:DescribeDomain", "codeartifact:CreateRepository" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::
123456789012
:root" } } ] }
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.
{ "Version": "2012-10-17", "Statement": { "Sid": "DomainPolicyForOrganization", "Effect": "Allow", "Principal": "*", "Action": [ "codeartifact:GetDomainPermissionsPolicy", "codeartifact:ListRepositoriesInDomain", "codeartifact:GetAuthorizationToken", "codeartifact:DescribeDomain", "codeartifact:CreateRepository" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID":["o-xxxxxxxxxxx"]} } } }
Para obter mais informações sobre o uso da chave de aws:PrincipalOrgID
condição, consulte Chaves de contexto de condição AWS global no Guia IAM do usuário.
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 --domain
my_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 Amazon Resource Name (ARN) do recurso de 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 --domain
my_domain
--domain-owner111122223333
\ --output text --query policy.document | python -mjson.tool
Exemplo de resultado:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BasicDomainPolicy", "Action": [ "codeartifact:GetDomainPermissionsPolicy", "codeartifact:ListRepositoriesInDomain", "codeartifact:GetAuthorizationToken", "codeartifact:CreateRepository" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::
111122223333
:root" } } ] }
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 --domain
my_domain
--domain-owner111122223333
O formato da saída é o mesmo que o dos comandos get-domain-permissions-policy
e delete-domain-permissions-policy
.