Exemplos de políticas baseadas em identidade para AWS 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á.

Exemplos de políticas baseadas em identidade para AWS CodeArtifact

Por padrão, usuários e funções não têm permissão para criar ou modificar CodeArtifact recursos. Eles também não podem realizar tarefas usando o AWS Management Console, AWS Command Line Interface (AWS CLI) ou AWS API. Para conceder permissão aos usuários para realizar ações nos recursos de que precisam, um IAM administrador pode criar IAM políticas. O administrador pode então adicionar as IAM políticas às funções e os usuários podem assumir as funções.

Para saber como criar uma política IAM baseada em identidade usando esses exemplos de documentos de JSON política, consulte Criação de IAM políticas no Guia do IAMusuário.

Para obter detalhes sobre ações e tipos de recursos definidos por CodeArtifact, incluindo o formato do ARNs para cada um dos tipos de recursos, consulte Ações, recursos e chaves de condição AWS CodeArtifact na Referência de Autorização de Serviço.

Melhores práticas de política

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir CodeArtifact recursos em sua conta. Essas ações podem incorrer em custos para seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões aos seus usuários e cargas de trabalho, use as políticas AWS gerenciadas que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para obter mais informações, consulte políticas AWS gerenciadas ou políticas AWS gerenciadas para funções de trabalho no Guia IAM do usuário.

  • Aplique permissões com privilégios mínimos — Ao definir permissões com IAM políticas, conceda somente as permissões necessárias para realizar uma tarefa. Você faz isso definindo as ações que podem ser executadas em atributos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre IAM como usar para aplicar permissões, consulte Políticas e permissões IAM no Guia IAM do usuário.

  • Use condições nas IAM políticas para restringir ainda mais o acesso — Você pode adicionar uma condição às suas políticas para limitar o acesso a ações e recursos. Por exemplo, você pode escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usandoSSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como AWS CloudFormation. Para obter mais informações, consulte elementos IAM JSON da política: Condição no Guia IAM do usuário.

  • Use o IAM Access Analyzer para validar suas IAM políticas e garantir permissões seguras e funcionais — o IAM Access Analyzer valida políticas novas e existentes para que as políticas sigam a linguagem da IAM política (JSON) e as melhores práticas. IAM IAMO Access Analyzer fornece mais de 100 verificações de políticas e recomendações práticas para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação da política do IAM Access Analyzer no Guia do IAM Usuário.

  • Exigir autenticação multifator (MFA) — Se você tiver um cenário que exija IAM usuários ou um usuário root Conta da AWS, ative MFA para obter segurança adicional. Para exigir MFA quando API as operações são chamadas, adicione MFA condições às suas políticas. Para obter mais informações, consulte Configurando o API acesso MFA protegido no Guia do IAMusuário.

Para obter mais informações sobre as melhores práticas emIAM, consulte as melhores práticas de segurança IAM no Guia IAM do usuário.

Usando o CodeArtifact console

Para acessar o AWS CodeArtifact console, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os CodeArtifact recursos em seu Conta da AWS. Se você criar uma política baseada em identidade que seja mais restritiva do que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para AWS CLI o. ou AWS API o. Em vez disso, permita o acesso somente às ações que correspondam à API operação que eles estão tentando realizar.

Para garantir que usuários e funções ainda possam usar o CodeArtifact console, anexe também a política AWSCodeArtifactAdminAccess ou a política AWSCodeArtifactReadOnlyAccess AWS gerenciada às entidades. Para obter mais informações, consulte Adicionar permissões a um usuário no Guia do IAM usuário.

AWSpolíticas gerenciadas (predefinidas) para AWS CodeArtifact

AWS aborda muitos casos de uso comuns fornecendo IAM políticas autônomas que são criadas e administradas pela AWS. Essas políticas AWS gerenciadas concedem as permissões necessárias para casos de uso comuns, para que você não precise investigar quais permissões são necessárias. Para obter mais informações, consulte Políticas AWS gerenciadas no Guia IAM do usuário.

As políticas AWS gerenciadas a seguir, que você pode anexar aos usuários em sua conta, são específicas de AWS CodeArtifact.

  • AWSCodeArtifactAdminAccess— Fornece acesso total à CodeArtifact inclusão de permissões para administrar CodeArtifact domínios.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:*" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
  • AWSCodeArtifactReadOnlyAccess— Fornece acesso somente para leitura a. CodeArtifact

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:Describe*", "codeartifact:Get*", "codeartifact:List*", "codeartifact:ReadFromRepository" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }

Para criar e gerenciar funções CodeArtifact de serviço, você também deve anexar a política AWS gerenciada chamadaIAMFullAccess.

Você também pode criar suas próprias IAM políticas personalizadas para permitir permissões para CodeArtifact ações e recursos. Você pode anexar essas políticas personalizadas aos IAM usuários ou grupos que exigem essas permissões.

Permitir que os usuários visualizem as próprias permissões

Este exemplo mostra como você pode criar uma política que permita IAM aos usuários visualizar as políticas embutidas e gerenciadas que estão anexadas à identidade do usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando o AWS CLI ou. AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Permitir que um usuário obtenha informações sobre repositórios e domínios

A política a seguir permite que um IAM usuário ou função liste e descreva qualquer tipo de CodeArtifact recurso, incluindo domínios, repositórios, pacotes e ativos. A política também inclui a codeArtifact:ReadFromRepository permissão, que permite ao diretor buscar pacotes de um CodeArtifact repositório. Ele não permite a criação de novos domínios ou repositórios e não permite a publicação de novos pacotes.

As sts:GetServiceBearerToken permissões codeartifact:GetAuthorizationToken e são necessárias para chamar GetAuthorizationToken API o.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:List*", "codeartifact:Describe*", "codeartifact:Get*", "codeartifact:Read*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }

Permitir que um usuário obtenha informações sobre domínios específicos

O exemplo a seguir mostra uma política de permissões que permite que um usuário listar domínios apenas na região us-east-2, para a conta 123456789012, para qualquer domínio que comece com o nome my.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeartifact:ListDomains", "Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/my*" } ] }

Permitir que um usuário obtenha informações sobre repositórios específicos

Veja a seguir um exemplo de uma política de permissões que permite ao usuário obter informações sobre repositórios que terminam com test, incluindo informações sobre os pacotes neles contidos. O usuário não poderá publicar, criar ou excluir recursos.

As sts:GetServiceBearerToken permissões codeartifact:GetAuthorizationToken e são necessárias para chamar GetAuthorizationToken API o.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:List*", "codeartifact:Describe*", "codeartifact:Get*", "codeartifact:Read*" ], "Resource": "arn:aws:codeartifact:*:*:repository/*/*test" }, { "Effect": "Allow", "Action": [ "codeartifact:List*", "codeartifact:Describe*" ], "Resource": "arn:aws:codeartifact:*:*:package/*/*test/*/*/*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } }, { "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "*" } ] }

Limitar a duração do token de autorização

Os usuários devem se autenticar CodeArtifact com tokens de autorização para publicar ou consumir versões do pacote. Os tokens de autorização são válidos somente durante a vida útil configurada. Os tokens têm uma vida útil padrão de 12 horas. Para obter mais informações sobre a tokens de autorização, consulte AWS CodeArtifact autenticação e tokens.

Ao buscar um token, os usuários podem configurar a vida útil dele. Os valores válidos para a vida útil de um token de autorização são 0 e qualquer número entre 900 (15 minutos) e 43200 (12 horas). Um valor de 0 criará um token com uma duração igual às credenciais temporárias do perfil do usuário.

Os administradores podem limitar os valores válidos durante a vida útil de um token de autorização usando a chave de condição sts:DurationSeconds na política de permissões anexada ao usuário ou grupo. Se o usuário tentar criar um token de autorização com uma vida útil fora dos valores válidos, a criação do token falhará.

O exemplo de políticas a seguir limita as possíveis durações de um token de autorização criado pelos CodeArtifact usuários.

Exemplo de política: limite a vida útil do token a exatamente 12 horas (43.200 segundos)

Com essa política, os usuários só poderão criar tokens de autorização com uma vida útil de 12 horas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeartifact:*", "Resource": "*" }, { "Sid": "sts", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "NumericEquals": { "sts:DurationSeconds": 43200 }, "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }

Exemplo de política: limite a vida útil do token entre 15 minutos e 1 hora ou igual ao período de credenciais temporárias do usuário

Com essa política, os usuários poderão criar tokens válidos entre 15 minutos e 1 hora. Os usuários também poderão criar um token que dure a duração das credenciais temporárias de do perfil especificando 0 para --durationSeconds.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeartifact:*", "Resource": "*" }, { "Sid": "sts", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "NumericLessThanEquals": { "sts:DurationSeconds": 3600 }, "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }