Usar tags para controlar o acesso aos recursos do CodeArtifact - CodeArtifact

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

Usar tags para controlar o acesso aos recursos do CodeArtifact

As condições em declarações de política do usuário do IAM são parte da sintaxe que você usa para especificar permissões para recursos de que as ações do CodeArtifact precisam. O uso de tags em condições é uma forma de controlar o acesso a recursos e solicitações. Para obter informações sobre a marcação de recursos do CodeArtifact, consulte Marcando atributos . Este tópico discute o controle de acesso com base em tags.

Ao criar políticas do IAM, você pode definir permissões granulares concedendo acesso a recursos específicos. À medida que o número de recursos que você gerencia aumenta, essa tarefa se torna mais difícil. Atribuir etiquetas a recursos e usá-las em condições de declaração de política pode facilitar essa tarefa. Você concede acesso em massa a qualquer recurso utilizando determinada etiqueta. Depois, você a aplica repetidamente a recursos relevantes durante a criação ou posteriormente.

As etiquetas podem ser anexadas ao recurso ou passadas na solicitação para serviços que comportem etiquetas. No CodeArtifact, os recursos podem ter tags, e algumas ações podem incluir tags. Ao criar uma política do IAM, você poderá usar chaves de condição de tag para controlar:

  • Quais usuários podem executar ações em um recurso de domínio ou repositório, com base nas tags que o recurso já tem.

  • Quais tags podem ser transmitidas na solicitação de uma ação.

  • Se chaves de tags específicas podem ser usadas em uma solicitação.

Para obter a sintaxe e a semântica completas das chaves de condição de tag, consulte Controlar o acesso usando tags no Guia do usuário do IAM.

Importante

Ao usar tags em recursos para limitar ações, as tags devem estar no recurso no qual a ação opera. Por exemplo, para negar permissões DescribeRepository com tags, estas devem estar em cada repositório e não no domínio. Consulte AWS CodeArtifact referência de permissões para obter uma lista de ações no CodeArtifact e em quais recursos elas operam.

Exemplos de controle de acesso baseado em tags

Os exemplos a seguir demonstram como especificar condições de tag em políticas para usuários do CodeArtifact.

exemplo 1: Limitar ações com base em tags na solicitação

A política de usuários gerenciada do AWSCodeArtifactAdminAccess oferece aos usuários permissão ilimitada para executar qualquer ação do CodeArtifact em qualquer recurso.

A política a seguir limita esse poder e nega a usuários não autorizados permissão para criar repositórios, a menos que a solicitação contenha determinadas tags. Para fazer isso, ela nega a ação CreateRepository se a solicitação não especificar uma tag chamada costcenter com um dos valores 1 ou 2. O administrador de um cliente deve anexar essa política do IAM a usuários não autorizados do IAM, além da política de usuário gerenciada.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codeartifact:CreateRepository", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/costcenter": "true" } } }, { "Effect": "Deny", "Action": "codeartifact:CreateRepository", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/costcenter": [ "1", "2" ] } } } ] }
exemplo 2: Limitar ações com base em tags de recursos

A política de usuários gerenciada do AWSCodeArtifactAdminAccess oferece aos usuários permissão ilimitada para executar qualquer ação do CodeArtifact em qualquer recurso.

A seguinte política limita esse poder e nega a usuários não autorizados permissão para realizar ações nos repositórios de domínios específicos. Para fazer isso, ela negará ações específicas se o recurso tiver uma tag denominada Key1 com um dos valores Value1 ou Value2. (A chave de condição aws:ResourceTag é usada para controlar o acesso a recursos com base nas tags desses recursos.) O administrador de um cliente deve anexar essa política do IAM a usuários não autorizados do IAM, além da política de usuário gerenciada.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codeartifact:TagResource", "codeartifact:UntagResource", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository", "codeartifact:PutDomainPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "codeartifact:ListRepositoriesInDomain", "codeartifact:UpdateRepository", "codeartifact:ReadFromRepository", "codeartifact:ListPackages", "codeartifact:ListTagsForResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Key1": ["Value1", "Value2"] } } } ] }
exemplo 3: Permitir ações com base em tags de recursos

A política a seguir concede aos usuários permissão para executar ações e obter informações sobre repositórios e pacotes no CodeArtifact.

Para fazer isso, ela permitirá ações específicas se o repositório tiver uma tag denominada Key1 com o valor Value1. (A chave de condição aws:RequestTag é usada para controlar quais tags podem ser transmitidas em uma solicitação do IAM.) A aws:TagKeys condição garante que a chave de tag faça diferenciação de letras maiúsculas e minúsculas. Essa política é útil para usuários do IAM que não têm a política de usuário gerenciada AWSCodeArtifactAdminAccess anexada. A política gerenciada oferece aos usuários permissão ilimitada para executar qualquer ação do CodeArtifact em qualquer recurso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:UpdateRepository", "codeartifact:DeleteRepository", "codeartifact:ListPackages" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Key1": "Value1" } } } ] }
exemplo 4: Permitir ações com base em tags na solicitação

A política a seguir concede aos usuários permissão para criar repositórios em domínios específicos no CodeArtifact.

Para fazer isso, ela permitirá as ações CreateRepository e TagResource se a API de criar recurso na solicitação especificar uma tag denominada Key1 com o valor Value1. (A chave de condição aws:RequestTag é usada para controlar quais tags podem ser transmitidas em uma solicitação do IAM.) A aws:TagKeys condição garante que a chave de tag faça diferenciação de letras maiúsculas e minúsculas. Essa política é útil para usuários do IAM que não têm a política de usuário gerenciada AWSCodeArtifactAdminAccess anexada. A política gerenciada oferece aos usuários permissão ilimitada para executar qualquer ação do CodeArtifact em qualquer recurso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:CreateRepository", "codeartifact:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/Key1": "Value1" } } } ] }