

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

# Identity and Access Management para AWS CodeCommit
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) é uma ferramenta AWS service (Serviço da AWS) que ajuda o administrador a controlar com segurança o acesso aos AWS recursos. Os administradores do IAM controlam quem pode ser *autenticado* (conectado) e *autorizado* (tem permissões) a usar CodeCommit os recursos. O IAM é um AWS service (Serviço da AWS) que você pode usar sem custo adicional.

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticação com identidades](#security_iam_authentication)
+ [Gerenciar o acesso usando políticas](#security_iam_access-manage)
+ [Autenticação e controle de acesso para AWS CodeCommit](auth-and-access-control.md)
+ [Como AWS CodeCommit funciona com o IAM](security_iam_service-with-iam.md)
+ [CodeCommit políticas baseadas em recursos](#security_iam_service-with-iam-resource-based-policies)
+ [Autorização baseada em CodeCommit tags](#security_iam_service-with-iam-tags)
+ [CodeCommit Funções do IAM](#security_iam_service-with-iam-roles)
+ [AWS CodeCommit exemplos de políticas baseadas em identidade](#security_iam_id-based-policy-examples)
+ [Solução de problemas AWS CodeCommit de identidade e acesso](#security_iam_troubleshoot)

## Público
<a name="security_iam_audience"></a>

A forma como você usa AWS Identity and Access Management (IAM) difere com base na sua função:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solução de problemas AWS CodeCommit de identidade e acesso](#security_iam_troubleshoot)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como AWS CodeCommit funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [AWS CodeCommit exemplos de políticas baseadas em identidade](#security_iam_id-based-policy-examples))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como você faz login AWS usando suas credenciais de identidade. Você deve estar autenticado como usuário do IAM ou assumindo uma função do IAM. Usuário raiz da conta da AWS

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade como Centro de Identidade do AWS IAM (IAM Identity Center), autenticação de login único ou credenciais. Google/Facebook Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS *.

Para acesso programático, AWS fornece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Conta da AWS usuário root
<a name="security_iam_authentication-rootuser"></a>

 Ao criar um Conta da AWS, você começa com uma identidade de login chamada *usuário Conta da AWS raiz* que tem acesso completo a todos Serviços da AWS os recursos. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para obter mais informações, consulte [Exigir que usuários humanos usem a federação com um provedor de identidade para acessar AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. Você pode assumir uma função [mudando de um usuário para uma função do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de AWS API AWS CLI ou. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso AWS criando políticas e anexando-as a AWS identidades ou recursos. Uma política define permissões quando associada a uma identidade ou recurso. AWS avalia essas políticas quando um diretor faz uma solicitação. A maioria das políticas é armazenada AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Você não pode usar políticas AWS gerenciadas do IAM em uma política baseada em recursos.

### Listas de controle de acesso (ACLs)
<a name="security_iam_access-manage-acl"></a>

As listas de controle de acesso (ACLs) controlam quais diretores (membros da conta, usuários ou funções) têm permissões para acessar um recurso. ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

O Amazon S3 e o AWS WAF Amazon VPC são exemplos de serviços que oferecem suporte. ACLs Para saber mais ACLs, consulte a [visão geral da lista de controle de acesso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) no *Guia do desenvolvedor do Amazon Simple Storage Service*.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

AWS oferece suporte a tipos de políticas adicionais que podem definir o máximo de permissões concedidas por tipos de políticas mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de controle de serviço (SCPs)** — Especifique as permissões máximas para uma organização ou unidade organizacional em AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations *.
+ **Políticas de controle de recursos (RCPs)** — Defina o máximo de permissões disponíveis para recursos em suas contas. Para obter mais informações, consulte [Políticas de controle de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia AWS Organizations do usuário*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como AWS determinar se uma solicitação deve ser permitida quando vários tipos de políticas estão envolvidos, consulte [Lógica de avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do usuário do IAM*.

## CodeCommit políticas baseadas em recursos
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeCommit não oferece suporte a políticas baseadas em recursos. 

## Autorização baseada em CodeCommit tags
<a name="security_iam_service-with-iam-tags"></a>

Você pode anexar tags a CodeCommit recursos ou passar tags em uma solicitação para CodeCommit. Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as `codecommit:ResourceTag/{{key-name}}`, `aws:RequestTag/{{key-name}}` ou chaves de condição `aws:TagKeys`. Para obter mais informações sobre a marcação de CodeCommit recursos, consulte[Exemplo 5: negar ou permitir ações em repositórios com tags](customer-managed-policies.md#identity-based-policies-example-5). Para obter mais informações sobre estratégias de marcação, consulte Recursos de [marcação AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).

CodeCommit também oferece suporte a políticas baseadas em tags de sessão. Para obter mais informações, consulte [Tags de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). 

### Usando tags para fornecer informações de identidade em CodeCommit
<a name="security-iam_service-with-iam-tags-identity"></a>

CodeCommit suporta o uso de tags de sessão, que são atributos de pares de valores-chave que você transmite quando assume uma função do IAM, usa credenciais temporárias ou federa um usuário em (). AWS Security Token Service AWS STS Você também pode associar tags a um usuário do IAM. Você pode usar as informações fornecidas nessas tags para facilitar a identificação de quem fez uma alteração ou causou um evento. CodeCommit inclui os valores das tags com os seguintes nomes de chave em CodeCommit eventos:


****  

| Nome da chave | Valor | 
| --- | --- | 
| displayName | O nome legível por humanos para exibir e associar ao usuário (por exemplo, Mary Major ou Saanvi Sarkar). | 
| emailAddress | O endereço de e-mail que você deseja exibir e associar ao usuário (por exemplo, mary\_major@examplo.com ou saanvi\_sarkar@examplo.com). | 

Se essas informações forem fornecidas, CodeCommit inclua-as nos eventos enviados à Amazon EventBridge e à Amazon CloudWatch Events. Para obter mais informações, consulte [Monitorar eventos do CodeCommit no Amazon EventBridge e no Amazon CloudWatch Events](monitoring-events.md).

Para usar a marcação de sessão, as funções devem ter políticas que incluam a permissão `sts:TagSession` definida como `Allow`. Se você estiver usando o acesso federado, poderá configurar as informações de nome de exibição e tag de e-mail como parte da sua configuração. Por exemplo, se você estiver usando o Azure Active Directory, poderá fornecer as seguintes informações de reivindicação:


****  

| Nome da reivindicação | Valor | 
| --- | --- | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName | user.displayname | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress | user.mail | 

Você pode usar o AWS CLI para passar tags de sessão para `displayName` e `emailAddress` usar**AssumeRole**. Por exemplo, um usuário que deseja assumir uma função chamada {{Developer}} que deseja associar seu nome {{Mary Major}} pode usar o **assume-role** comando semelhante ao seguinte:

```
aws sts assume-role \
--role-arn arn:aws:iam::{{123456789012}}:role/{{Developer}} \
--role-session-name {{Mary-Major}} \
–-tags Key=displayName,Value="Mary Major" Key=emailAddress,Value="mary_major@example.com" \
--external-id Example987
```

Para obter mais informações, consulte [AssumeRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role).

Você pode usar a operação `AssumeRoleWithSAML` para retornar um conjunto de credenciais temporárias que incluem as tags `displayName` e `emailAddress`. Você pode usar essas tags ao acessar repositórios de CodeCommit. Isso exige que sua empresa ou grupo já tenha integrado sua solução SAML de terceiros com AWS. Em caso afirmativo, é possível transmitir atributos SAML como tags de sessão. Por exemplo, se você quiser passar atributos de identidade para um nome de exibição e endereço de e-mail para um usuário chamado {{Saanvi Sarkar}} como tags de sessão:

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName">
  <AttributeValue>{{Saanvi Sarkar}}</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress">
  <AttributeValue>saanvi_sarkar@example.com</AttributeValue>
</Attribute>
```

Para obter mais informações, consulte Como [passar tags de sessão usando AssumeRoleWith SAML.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-saml)

Você pode usar a operação `AssumeRoleWithIdentity` para retornar um conjunto de credenciais temporárias que incluem as tags `displayName` e `emailAddress`. Você pode usar essas tags ao acessar repositórios de CodeCommit. Para passar tags de sessão do OpenID Connect (OIDC), é necessário incluir as tags de sessão no JSON Web Token (JWT). Por exemplo, o token JWP decodificado usado para chamar inclui `AssumeRoleWithWebIdentity` as tags `displayName` e de `emailAddress` sessão de um usuário chamado: {{Li Juan}}

```
{
    "sub": "lijuan",
    "aud": "ac_oic_client",
    "jti": "ZYUCeREXAMPLE",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags": {
        "principal_tags": {
            "displayName": ["{{Li Juan}}"],
            "emailAddress": ["li_juan@example.com"],
        },
        "transitive_tag_keys": [
            "displayName",
            "emailAddress"
        ]
    }
}
```

Para obter mais informações, consulte [Passando tags de sessão usando AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-idp).

Você pode usar a operação `GetFederationToken` para retornar um conjunto de credenciais temporárias que incluem as tags `displayName` e `emailAddress`. Você pode usar essas tags ao acessar repositórios de CodeCommit. Por exemplo, para usar o AWS CLI para obter um token de federação que inclua as `emailAddress` tags `displayName` e:

```
aws sts get-federation-token \
--name my-federated-user \
–-tags key=displayName,value="Nikhil Jayashankar" key=emailAddress,value=nikhil_jayashankar@example.com
```

Para obter mais informações, consulte [Passando tags de sessão usando GetFederationToken](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-getfederationtoken).

## CodeCommit Funções do IAM
<a name="security_iam_service-with-iam-roles"></a>

Um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma entidade dentro da sua conta da Amazon Web Services que tem permissões específicas.

### Usando credenciais temporárias com CodeCommit
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

É possível usar credenciais temporárias para fazer login com federação, assumir um perfil do IAM ou assumir um perfil entre contas. Você obtém credenciais de segurança temporárias chamando operações de AWS STS API, como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

CodeCommit suporta o uso de credenciais temporárias. Para obter mais informações, consulte [Conectando-se a AWS CodeCommit repositórios com credenciais rotativas](temporary-access.md).

### Perfis vinculados ao serviço
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[As funções vinculadas ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) permitem que AWS os serviços acessem recursos em outros serviços para concluir uma ação em seu nome. Os perfis vinculados a serviço aparecem em sua conta do IAM e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não pode editar as permissões para perfis vinculados a serviço.

CodeCommit não usa funções vinculadas ao serviço. 

### Perfis de serviço
<a name="security_iam_service-with-iam-roles-service"></a>

Esse atributo permite que um serviço assuma um [perfil de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador do IAM pode alterar as permissões para esse perfil. Porém, fazer isso pode alterar a funcionalidade do serviço.

CodeCommit não usa funções de serviço. 

## AWS CodeCommit exemplos de políticas baseadas em identidade
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, os usuários e os perfis do IAM não têm permissão para criar ou modificar recursos do CodeCommit . Eles também não podem realizar tarefas usando a AWS API Console de gerenciamento da AWS AWS CLI, ou. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e perfis permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

Para obter exemplos de políticas, consulte:
+  [Exemplo 1: Permitir que um usuário realize CodeCommit operações em uma única Região da AWS](customer-managed-policies.md#identity-based-policies-example-1)
+ [Exemplo 2: permitir que um usuário use o Git para um único repositório](customer-managed-policies.md#identity-based-policies-example-2)
+ [Exemplo 3: permitir que um usuário conectado a partir de um intervalo de endereços IP especificado acesse um repositório](customer-managed-policies.md#identity-based-policies-example-3)
+ [Exemplo 4: negar ou permitir ações em ramificações](customer-managed-policies.md#identity-based-policies-example-4)
+ [Exemplo 5: negar ou permitir ações em repositórios com tags](customer-managed-policies.md#identity-based-policies-example-5)
+ [Configurar o acesso entre contas a um AWS CodeCommit repositório usando funções](cross-account.md)

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documentos de política JSON, consulte [Criar políticas na guia JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Guia do usuário do IAM*.

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Usando o CodeCommit console](#security_iam_id-based-policy-examples-console)
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Visualização CodeCommit {{repositories}} com base em tags](#security_iam_id-based-policy-examples-view-repositories-tags)

### Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir CodeCommit recursos em sua conta. Essas ações podem incorrer em custos para sua 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 saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. 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 CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

### Usando o CodeCommit console
<a name="security_iam_id-based-policy-examples-console"></a>

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

Para garantir que essas entidades ainda possam usar o CodeCommit console, anexe também a seguinte política AWS gerenciada às entidades. Para obter mais informações, consulte [Adição de permissões a um usuário](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Manual do usuário do IAM*:

Para obter mais informações, consulte [Usando políticas baseadas em identidade (políticas do IAM) para CodeCommit](auth-and-access-control-iam-identity-based-access-control.md).

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

### Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

```
{
    "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": "*"
        }
    ]
}
```

### Visualização CodeCommit {{repositories}} com base em tags
<a name="security_iam_id-based-policy-examples-view-repositories-tags"></a>

É possível utilizar condições na política baseada em identidade para controlar o acesso aos recursos do CodeCommit com base em tags. Para obter um exemplo de política que demonstra como fazer isso, consulte [Exemplo 5: negar ou permitir ações em repositórios com tags](customer-managed-policies.md#identity-based-policies-example-5).

Para obter mais informações, consulte [IAM JSON Policy Elements: Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) (Elementos da política JSON do IAM: Condição) no *Guia do usuário do IAM*.

## Solução de problemas AWS CodeCommit de identidade e acesso
<a name="security_iam_troubleshoot"></a>

Use as informações a seguir para ajudá-lo a diagnosticar e corrigir problemas comuns que você pode encontrar ao trabalhar com CodeCommit um IAM.

**Topics**
+ [Não estou autorizado a realizar uma ação em CodeCommit](#security_iam_troubleshoot-no-permissions)
+ [Não estou autorizado a realizar iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Quero visualizar minhas chaves de acesso](#security_iam_troubleshoot-access-keys)
+ [Sou administrador e quero permitir que outras pessoas acessem CodeCommit](#security_iam_troubleshoot-admin-delegate)
+ [Quero permitir que pessoas fora da minha conta da Amazon Web Services acessem meus CodeCommit recursos](#security_iam_troubleshoot-cross-account-access)

### Não estou autorizado a realizar uma ação em CodeCommit
<a name="security_iam_troubleshoot-no-permissions"></a>

Se isso Console de gerenciamento da AWS indicar que você não está autorizado a realizar uma ação, entre em contato com o administrador para obter ajuda. Caso seu administrador seja a pessoa que forneceu suas credenciais de início de sessão.

Para obter mais informações, consulte [Permissões necessárias para usar o CodeCommit console](auth-and-access-control-iam-identity-based-access-control.md#console-permissions).

### Não estou autorizado a realizar iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se você receber uma mensagem de erro informando que não está autorizado a executar a ação `iam:PassRole`, as suas políticas devem ser atualizadas para permitir que você passe uma função para o CodeCommit.

Alguns Serviços da AWS permitem que você passe uma função existente para esse serviço em vez de criar uma nova função de serviço ou uma função vinculada ao serviço. Para fazê-lo, você deve ter permissões para passar o perfil para o serviço.

O exemplo de erro a seguir ocorre quando uma usuária do IAM chamada `marymajor` tenta utilizar o console para executar uma ação no CodeCommit. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se precisar de ajuda, entre em contato com seu AWS administrador. Seu administrador é a pessoa que forneceu suas credenciais de login.

### Quero visualizar minhas chaves de acesso
<a name="security_iam_troubleshoot-access-keys"></a>

Depois de criar suas chaves de acesso de usuário do IAM, é possível visualizar seu ID da chave de acesso a qualquer momento. No entanto, você não pode visualizar sua chave de acesso secreta novamente. Se você perder sua chave secreta, crie um novo par de chaves de acesso. 

As chaves de acesso consistem em duas partes: um ID de chave de acesso (por exemplo, `AKIAIOSFODNN7EXAMPLE`) e uma chave de acesso secreta (por exemplo, `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`). Como um nome de usuário e uma senha, você deve usar o ID da chave de acesso e a chave de acesso secreta em conjunto para autenticar suas solicitações. Gerencie suas chaves de acesso de forma tão segura quanto você gerencia seu nome de usuário e sua senha.

**Importante**  
Não forneça as chaves de acesso a terceiros, mesmo que seja para ajudar a [encontrar o ID de usuário canônico](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId). Ao fazer isso, você pode dar a alguém acesso permanente ao seu Conta da AWS.

Ao criar um par de chaves de acesso, você é solicitado a guardar o ID da chave de acesso e a chave de acesso secreta em um local seguro. A chave de acesso secreta só está disponível no momento em que é criada. Se você perder sua chave de acesso secreta, será necessário adicionar novas chaves de acesso para seu usuário do IAM. Você pode ter no máximo duas chaves de acesso. Se você já tiver duas, você deverá excluir um par de chaves para poder criar um novo. Para visualizar as instruções, consulte [Gerenciar chaves de acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey) no *Guia do usuário do IAM*.

### Sou administrador e quero permitir que outras pessoas acessem CodeCommit
<a name="security_iam_troubleshoot-admin-delegate"></a>

Para permitir que outras pessoas acessem CodeCommit, você deve conceder permissão às pessoas ou aplicativos que precisam de acesso. Se você estiver usando o Centro de Identidade do AWS IAM para gerenciar pessoas e aplicações, atribua conjuntos de permissões a usuários ou grupos para definir o nível de acesso. Os conjuntos de permissões criam e atribuem automaticamente políticas do IAM aos perfis do IAM associados à pessoa ou aplicação. Para ter mais informações, consulte [Conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

Se você não estiver usando o Centro de Identidade do IAM, deverá criar entidades do IAM (usuários ou perfis) para as pessoas ou aplicações que precisam de acesso. Você deve anexar uma política à entidade que concede a eles as permissões corretas no CodeCommit. Depois que as permissões forem concedidas, forneça as credenciais ao usuário ou desenvolvedor da aplicação. Eles usarão essas credenciais para acessar AWS. Para saber mais sobre como criar grupos, políticas, permissões e usuários do IAM, consulte [Identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) e [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.

### Quero permitir que pessoas fora da minha conta da Amazon Web Services acessem meus CodeCommit recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

Para obter mais informações, consulte [Configurar o acesso entre contas a um AWS CodeCommit repositório usando funções](cross-account.md).