

# Solucionar problemas do IAM
<a name="troubleshoot"></a>

Use as informações contidas aqui para ajudar a diagnosticar e corrigir problemas comuns ao trabalhar com o AWS Identity and Access Management (IAM).

**Topics**
+ [Não consigo fazer login na minha conta da AWS](#troubleshoot_general_cant-sign-in)
+ [Perdi minhas chaves de acesso](#troubleshoot_general_access-keys)
+ [As variáveis da política não estão funcionando](#troubleshoot_general_policy-variables-dont-work)
+ [As alterações que eu faço nem sempre ficam imediatamente visíveis](#troubleshoot_general_eventual-consistency)
+ [Não estou autorizado a executar: iam:DeleteVirtualMFADevice](#troubleshoot_general_access-denied-delete-mfa)
+ [Como faço para criar usuários do IAM com segurança?](#troubleshoot_general_securely-create-iam-users)
+ [Recursos adicionais](#troubleshoot_general_resources)
+ [Solucionar problemas de mensagens de erro de acesso negado](troubleshoot_access-denied.md)
+ [Solucionar problemas com o usuário-raiz](troubleshooting_root-user.md)
+ [Políticas de solução de problemas do IAM](troubleshoot_policies.md)
+ [Solucionar problemas de chaves de acesso e chaves de segurança FIDO](troubleshoot_mfa-fido.md)
+ [Solucionar problemas de perfis do IAM](troubleshoot_roles.md)
+ [Solucionar problemas do IAM e Amazon EC2](troubleshoot_iam-ec2.md)
+ [Solucionar problemas do IAM e Amazon S3](troubleshoot_iam-s3.md)
+ [Solucionar problemas de federação do SAML com o IAM](troubleshoot_saml.md)

## Não consigo fazer login na minha conta da AWS
<a name="troubleshoot_general_cant-sign-in"></a>

Verifique se você tem as credenciais corretas e se está usando o método correto para fazer login. Para obter mais informações, consulte [Solução de problemas de login](https://docs.aws.amazon.com/signin/latest/userguide/troubleshooting-sign-in-issues.html) no *Guia do usuário do Início de Sessão da AWS*.

## Perdi minhas chaves de acesso
<a name="troubleshoot_general_access-keys"></a>

As chaves de acesso consistem em duas partes:
+ **O identificador da chave de acesso**. Não se trata de um segredo e pode ser visto no console do IAM sempre que as chaves de acesso forem listadas, como na página de resumo do usuário.
+ **A chave de acesso secreta da**. É fornecida quando você cria inicialmente o par de chaves de acesso. Assim como uma senha, ela ***não pode ser recuperada posteriormente***. Se você perdeu sua chave de acesso secreta, crie um novo par de chaves de acesso. Se você já tiver o [número máximo de chaves de acesso](reference_iam-quotas.md#reference_iam-quotas-entities), será necessário excluir um par existente antes de criar outro.

Se tiver perdido a chave de acesso secreta, você deverá excluir a chave de acesso e criar uma nova. Para obter mais instruções, consulte [Atualizar chaves de acesso](id-credentials-access-keys-update.md).

## As variáveis da política não estão funcionando
<a name="troubleshoot_general_policy-variables-dont-work"></a>

Se suas variáveis ​​de política não estiverem funcionando, um dos seguintes erros ocorreu:

**A data está errada no elemento da política de versão.**  
Verifique se todas as políticas que incluem variáveis incluem o seguinte número da versão na política: `"Version": "2012-10-17"`. Sem o número da versão correta, as variáveis não são substituídas durante a avaliação. Em vez disso, as variáveis são avaliadas literalmente. Políticas que não incluem variáveis ​​ainda funcionam quando você inclui o número da versão mais recente.  
Um elemento de política `Version` é diferente de uma versão de política. O elemento de política `Version` é usado em uma política e define a versão da linguagem da política. Uma versão de política é criada quando você modifica uma política gerenciada pelo cliente no IAM. A política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. Para saber mais sobre o elemento de política `Version`, consulte [Elementos de política JSON do IAM: Version](reference_policies_elements_version.md). Para saber mais sobre as versões de política, consulte [Versionamento de políticas do IAM](access_policies_managed-versioning.md).

**Os caracteres variáveis estão em maiúsculas e minúsculas erradas.**  
Verifique se as variáveis de política estão no caso certo. Para obter detalhes, consulte [Elementos de política do IAM: variáveis e etiquetas](reference_policies_variables.md).

## As alterações que eu faço nem sempre ficam imediatamente visíveis
<a name="troubleshoot_general_eventual-consistency"></a>

Como um serviço que é acessado por meio de computadores em data centers em todo o mundo, o IAM usa um modelo de computação distribuído chamado [consistência final](https://wikipedia.org/wiki/Eventual_consistency). Quaisquer alterações feitas no IAM (ou outros serviços da AWS), incluindo tags de [controle de acesso por atributo (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html), levam tempo para se tornarem visíveis em todos os endpoints possíveis. Parte do atraso resulta do tempo que leva para enviar dados de servidor para servidor, de zona de replicação para zona de replicação e de região para região. O IAM também usa o armazenamento em cache para melhorar a performance, porém, em alguns casos, isso pode adicionar tempo. A alteração talvez não fique visível enquanto os dados armazenados em cache anteriormente não atingirem o tempo limite.

Você deve projetar seus aplicativos globais levando em conta esses possíveis atrasos. Garanta que eles funcionem conforme o esperado, mesmo quando uma alteração feita em um local não fique imediatamente visível em outro. Essas alterações incluem a criação ou a atualização de usuários, grupos, funções ou políticas. Recomendamos que você não inclua essas alterações do IAM nos caminhos de código críticos e de alta disponibilidade da aplicação. Em vez disso, faça alterações do IAM em uma rotina de inicialização ou de configuração separada que você executa com menos frequência. Além disso, certifique-se de verificar se as alterações foram propagadas antes que os fluxos de trabalho de produção dependam delas. 

Para obter mais informações sobre como alguns outros serviços da AWS são afetados por isso, consulte os seguintes recursos:
+ **Amazon DynamoDB**: [Consistência de leituras](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) no *Guia do desenvolvedor do DynamoDB* e [Consistência de leituras](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) no Guia do desenvolvedor do Amazon DynamoDB.
+ **Amazon EC2**: [Consistência final do EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-api-troubleshooting.html#eventual-consistency) na *Referência de API do Amazon EC2*.
+ **Amazon EMR**: [Ensuring Consistency When Using Amazon S3 and Amazon EMR for ETL Workflows](https://aws.amazon.com/blogs/big-data/ensuring-consistency-when-using-amazon-s3-and-amazon-elastic-mapreduce-for-etl-workflows/) no Blog de big data da AWS
+ **Amazon Redshift**: [Gerenciar consistência de dados](https://docs.aws.amazon.com/redshift/latest/dg/managing-data-consistency.html) no *Guia do desenvolvedor de banco de dados do Amazon Redshift*
+ **Amazon S3**: [modelo de consistência de dados do Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/Welcome.html#ConsistencyModel) no *Guia do usuário do Amazon Simple Storage Service*

## Não estou autorizado a executar: iam:DeleteVirtualMFADevice
<a name="troubleshoot_general_access-denied-delete-mfa"></a>

Você pode receber o seguinte erro ao tentar atribuir ou remover um dispositivo MFA virtual para você ou para outras pessoas:

```
User: arn:aws:iam::123456789012:user/Diego is not authorized to perform: iam:DeleteVirtualMFADevice on resource: arn:aws:iam::123456789012:mfa/Diego with an explicit deny
```

Isso pode acontecer se, anteriormente, alguém tiver começado a atribuir um dispositivo com MFA virtual a um usuário no console do IAM e tiver cancelado o processo. Isso cria um dispositivo de MFA virtual para o usuário no IAM, mas nunca o associa a esse usuário. Exclua o dispositivo MFA virtual existente antes de criar um novo com o mesmo nome de dispositivo.

Para corrigir esse problema, um administrador **não** deve editar permissões de política. Em vez disso, o administrador deve usar a AWS CLI ou a API da AWS para excluir o dispositivo de MFA virtual existente, mas não atribuído.

**Para excluir um dispositivo de MFA virtual existente, mas não atribuído**

1. Visualize os dispositivos MFA virtuais em sua conta.
   + AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html)
   + AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html)

1. Na resposta, localize o ARN do dispositivo de MFA virtual para o usuário que você está tentando corrigir.

1. Exclua o dispositivo de MFA virtual.
   + AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html)
   + AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html)

## Como faço para criar usuários do IAM com segurança?
<a name="troubleshoot_general_securely-create-iam-users"></a>

Se houver funcionários que precisam de acesso à AWS, você poderá criar usuários do IAM ou [usar o IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) para autenticação. Se você usa o IAM, a AWS recomenda que você crie um usuário do IAM e informe com segurança as credenciais ao funcionário. Se você não estiver fisicamente localizado ao lado de seu funcionário, use um fluxo de trabalho seguro para comunicar as credenciais aos funcionários.

Use o fluxo de trabalho seguro a seguir para criar um novo usuário no IAM:

1. [Crie um novo usuário](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) usando o Console de gerenciamento da AWS. Escolha conceder acesso ao Console de gerenciamento da AWS com uma senha gerada automaticamente. Se necessário, marque a caixa de seleção **Users must create a new password at next sign-in (Usuários devem criar uma nova senha no próximo login)**. Não adicione uma política de permissões ao usuário até que ele tenha alterado sua senha.

1. Depois que o usuário for adicionado, copie o URL de login, o nome de usuário e a senha para o novo usuário. Para visualizar a senha, escolha **Show (Mostrar)**.

1. Envie a senha para seu funcionário usando um método de comunicação segura em sua empresa, como e-mail, chat ou um sistema de emissão de bilhetes. Separadamente, forneça aos usuários o link do console do usuário e o nome de usuário do IAM. Peça que o funcionário confirme se ele pode fazer login com sucesso antes de conceder permissões a ele.

1. Depois que o funcionário confirmar, adicione as permissões que forem necessárias. Como prática recomendada de segurança, adicione uma política que exija que o usuário autentique usando MFA para gerenciar suas credenciais. Para visualizar um exemplo de política, consulte [AWS: permite que os usuários do IAM autenticados por MFA gerenciem suas próprias credenciais na página Credenciais de segurança](reference_policies_examples_aws_my-sec-creds-self-manage.md).

## Recursos adicionais
<a name="troubleshoot_general_resources"></a>

Os seguintes recursos podem ajudar você a solucionar problemas enquanto trabalha com o AWS.
+ **[Guia do usuário do AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)**: use o AWS CloudTrail para rastrear um histórico de chamadas de API feitas para a AWS e armazenar essas informações em arquivos de log. Isso ajuda você a determinar quais usuários e contas acessaram recursos na sua conta, quando as chamadas foram feitas, quais ações foram solicitadas, etc. Para obter mais informações, consulte [Registro em log de chamadas de API do IAM e do AWS STS com o AWS CloudTrail](cloudtrail-integration.md).
+ **[Centro de Conhecimentos da AWS](https://aws.amazon.com/premiumsupport/knowledge-center/)**: encontre perguntas frequentes e links para outros recursos para ajudar na solução de problemas.
+ **[Centro de Suporte da AWS](https://console.aws.amazon.com/support/home#/)**: obtenha suporte técnico.
+ **[Centro de Suporte Premium da AWS](https://aws.amazon.com/premiumsupport/)**: obtenha suporte técnico diferenciado.

# Solucionar problemas de mensagens de erro de acesso negado
<a name="troubleshoot_access-denied"></a>

As informações a seguir podem ajudar você a identificar, diagnosticar e resolver erros de acesso negado com o AWS Identity and Access Management. Erros de acesso negado são exibidos quando a AWS nega explícita ou implicitamente uma solicitação de autorização.
+ Uma *negação explícita* ocorre quando uma política contém uma instrução `Deny` para a ação específica da AWS.
+ Uma *negação implícita* ocorre quando não há nenhuma instrução `Deny` aplicável e também nenhuma instrução `Allow` aplicável. Como uma política do IAM nega uma entidade principal do IAM por padrão, a política deve permitir explicitamente que a entidade principal realize uma ação. Caso contrário, a política nega acesso implicitamente. Para obter mais informações, consulte [A diferença entre negações explícitas e implícitas](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md).

Quando você faz uma solicitação a um serviço ou recurso, várias políticas podem ser aplicadas à solicitação. Revise todas as políticas aplicáveis, além da política especificada na mensagem de erro.
+ Se várias políticas do mesmo tipo negarem uma solicitação, a mensagem de erro de acesso negado não especificará o número de políticas avaliadas.
+ Se vários tipos de políticas negarem uma solicitação de autorização, a AWS só especificará uma dessas políticas na mensagem de erro de acesso negado.

**Importante**  
**Está com problemas para fazer login na AWS?** Certifique-se de estar na [página de login da AWS](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html) correta para o seu tipo de usuário. Se você for o Usuário raiz da conta da AWS (proprietário da conta), poderá fazer login na AWS usando as credenciais que configurou ao criar a Conta da AWS. Se você for um usuário do IAM, o administrador da sua conta poderá lhe fornecer credenciais de login da AWS. Se você precisar solicitar suporte, não use o link de feedback nesta página. O formulário será recebido pela equipe de documentação da AWS, não do Suporte. Em vez disso, na página [Entre em contato conosco](https://aws.amazon.com/contact-us/), escolha **Ainda não consegue fazer login em sua conta da AWS** e escolha uma das opções de suporte disponíveis.

## Eu recebo a mensagem de “acesso negado” quando faço uma solicitação a um serviço da AWS
<a name="troubleshoot_general_access-denied-service"></a>
+ Verifique se a mensagem de erro inclui o tipo e o [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) da política responsável por negar o acesso. Se for esse o caso, verifique se há instruções de negação para a ação na política especificada. Se o tipo de política for fornecido, mas não houver um ARN de política, concentre-se nas questões de soluções de problemas desse tipo de política: verifique se há instruções de negação para a ação nas políticas do tipo especificado. Se a mensagem de erro não mencionar o tipo de política responsável por negar o acesso, use o restante das diretrizes desta seção para solucionar problemas adicionais.
+ Verifique se você tem permissão de política baseada em identidade para chamar a ação e o recurso que solicitou. Se condições forem definidas, você também deverá cumpri-las ao enviar a solicitação. Para obter informações sobre como visualizar ou modificar políticas para um usuário, grupo ou função do IAM, consulte [Gerenciar políticas do IAM](access_policies_manage.md).
+ Se o Console de gerenciamento da AWS retornar uma mensagem informando que você não está autorizado a executar uma ação, entre em contato com o administrador para obter assistência. Seu administrador forneceu a você suas credenciais de login ou link de login.

  O erro de exemplo a seguir ocorre quando o usuário do IAM `mateojackson` tenta usar o console para visualizar detalhes sobre um recurso de `my-example-widget` fictício, mas não tem as permissões de `widgets:GetWidget` fictícias.

  ```
  User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: widgets:GetWidget on resource: my-example-widget
  ```

  Neste caso, Mateo pede ao administrador para atualizar suas políticas para permitir o acesso ao recurso `my-example-widget` usando a ação `widgets:GetWidget`.
+ Você está tentando acessar um serviço que oferece suporte a [políticas baseadas em recurso](access_policies_identity-vs-resource.md), como o Amazon S3, Amazon SNS ou Amazon SQS? Nesse caso, verifique se a política especifica você como uma entidade principal e lhe concede acesso. Se você fizer uma solicitação para um serviço na sua conta, as políticas baseadas em identidade ou as políticas baseadas em recurso poderão conceder permissão. Se você fizer uma solicitação para um serviço em uma conta diferente, tanto as políticas baseadas em identidade quanto as políticas baseadas em recurso deverão conceder permissão. Para visualizar os serviços que são compatíveis com políticas baseadas em recursos, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).
+ Se sua política incluir uma condição com um par de chave-valor, revise-a com atenção. Os exemplos incluem a chave de condição global [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md), a [kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context) do AWS KMS e a chave de condição `ResourceTag/tag-key` compatível com vários serviços. Certifique-se de que o nome da chave não corresponda a vários resultados. Como os nomes das chaves da condição não diferenciam maiúsculas de minúsculas, uma condição que verifica uma chave chamada `foo` corresponderá a `foo`, `Foo` ou `FOO`. Se sua solicitação inclui vários pares de chave-valor com nomes de chaves apenas com a capitalização diferente, o acesso pode ser inesperadamente negado. Para obter mais informações, consulte [Elementos de política JSON do IAM: Condition](reference_policies_elements_condition.md).
+ Se você tiver um [limite de permissões](access_policies_boundaries.md), verifique se a política usada para o limite de permissões permite sua solicitação. Se suas políticas baseadas em identidade permitirem a solicitação, mas seu limite de permissões não permitir, a solicitação será negada. Um limite de permissões controla o número máximo de permissões que uma entidade principal do IAM (usuário ou perfil) pode ter. As políticas baseadas em recurso não são limitadas pelos limites de permissões. Os limites de permissões não são comuns. Para obter mais informações sobre como a AWS avalia políticas, consulte [Lógica da avaliação de política](reference_policies_evaluation-logic.md).
+ Se você assinar solicitações manualmente (sem usar os [AWS SDKs](https://aws.amazon.com/developer/tools/)), verifique se você [assinou a solicitação](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) corretamente.
+ Se você estiver usando uma [política de endpoint da Amazon VPC](https://docs.aws.amazon.com//vpc/latest/privatelink/vpc-endpoints-access.html) e receber um erro de acesso negado que não esteja registrado em log no AWS CloudTrail, talvez a conta do proprietário do endpoint da VPC seja diferente da conta da chamada ou da conta do perfil de destino.

## Eu recebo uma mensagem de "acesso negado" quando faço uma solicitação com credenciais de segurança temporárias
<a name="troubleshoot_general_access-denied-temp-creds"></a>
+ Primeiro, certifique-se de que não lhe foi negado acesso por um motivo que não esteja relacionado às suas credenciais temporárias. Para obter mais informações, consulte [Eu recebo a mensagem de “acesso negado” quando faço uma solicitação a um serviço da AWS](#troubleshoot_general_access-denied-service).
+ Para verificar se o serviço aceita credenciais de segurança temporárias, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).
+ Verifique se suas solicitações estão sendo assinadas corretamente e se a solicitação é bem formada. Para obter mais detalhes, consulte a documentação do [toolkit](https://aws.amazon.com/developer/tools/) ou [Usar credenciais temporárias com recursos da AWS](id_credentials_temp_use-resources.md).
+ Verifique se suas credenciais de segurança temporárias não expiraram. Para obter mais informações, consulte [Credenciais de segurança temporárias no IAM](id_credentials_temp.md). 
+ Verifique se o usuário ou a função do IAM tem as permissões corretas. As permissões para credenciais de segurança temporárias são derivadas de um usuário ou uma função do IAM. Como resultado, as permissões são limitadas àquelas que são concedidas à função cujas credenciais temporárias são assumidas. Para obter mais informações sobre como permissões para credenciais de segurança temporárias são determinadas, consulte [Permissões de credenciais de segurança temporárias](id_credentials_temp_control-access.md).
+ Se você tiver assumido uma função, a sessão da função pode estar limitada por políticas de sessão. Quando [solicita credenciais de segurança temporárias](id_credentials_temp_request.md) de forma programática usando o AWS STS, você pode opcionalmente passar [políticas de sessão](access_policies.md#policies_session) em linha ou gerenciadas. As políticas de sessão são políticas avançadas que você passa como um parâmetro ao criar uma sessão de credenciais temporárias de forma programática para uma função. É possível passar um único documento de política JSON de sessão em linha usando o parâmetro `Policy`. É possível usar o parâmetro `PolicyArns` para especificar até 10 políticas de sessão gerenciadas. As permissões da sessão resultante são a interseção das políticas baseadas em identidade da função e das políticas de sessão. Como alternativa, se o administrador ou um programa personalizado fornecer credenciais temporárias a você, ele poderá incluir uma política de sessão para limitar seu acesso.
+ Se você for uma entidade principal de usuário federado do AWS STS, a sessão poderá ser limitada pelas políticas de sessão. Você cria uma sessão de usuário federado fazendo login na AWS como um usuário do IAM e, em seguida, solicitando um token de federação. Para obter mais informações, consulte [Solicitar credenciais por meio de um intermediador de identidades personalizado](id_credentials_temp_request.md#api_getfederationtoken). Se você ou seu agente de identidade tiver passado políticas de sessão ao solicitar um token de federação, a sessão será limitada por essas políticas. As permissões da sessão resultantes são a interseção de suas políticas baseadas em identidade do usuário do IAM e as políticas de sessão. Para obter mais informações sobre políticas de sessão, consulte [Políticas de sessão](access_policies.md#policies_session).
+ Se você estiver acessando um recurso que tenha uma política baseada em recursos usando uma função, verifique se a política concede permissões à função. Por exemplo, a política a seguir permite que `MyRole` da conta `111122223333` acesse `amzn-s3-demo-bucket`.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
      "Sid": "S3BucketPolicy",
      "Effect": "Allow",
      "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]},
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
    }]
  }
  ```

------

## Solucionador de problemas de acesso
<a name="access-troubleshooter"></a>

**nota**  
O Solucionador de problemas de acesso está se tornando gradualmente disponível para todos os serviços da AWS em todas as regiões para cenários de conta única e organização única. A qualidade dos dados evoluirá.

É possível usar o Solucionador de problemas de acesso para depurar e resolver erros de acesso negado.

O Solucionador de problemas de acesso oferece os seguintes recursos:
+ [Visualizar os detalhes da solicitação e da avaliação](#access-troubleshooter-request-details): a entidade principal, a ação, o recurso, o contexto e o resultado da avaliação.
+ [Visualizar avaliação de autorização individual](#access-troubleshooter-individual-evaluation): avaliações de autorização para ações individuais e pares de recursos.
+ [Revise todas as políticas e suas instruções individuais](#access-troubleshooter-policy-statements): todas as políticas avaliadas e suas instruções individuais, com resultados de avaliação para cada uma.

### Permissões para o Solucionador de problemas de acesso
<a name="access-troubleshooter-permissions"></a>

Para usar o Solucionador de problemas de acesso, é necessário ter a permissão `iam:TroubleshootAccess` anexada à sua entidade principal. Permitir essa ação significa que você está permitindo que a entidade principal visualize todos os detalhes do contexto de autorização, incluindo as chaves de contexto e as instruções de todas as políticas que foram avaliadas.

A seguinte política de exemplo concede a permissão necessária:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:TroubleshootAccess",
            "Resource": "*"
        }
    ]
}
```

### Como usar o Solucionador de problemas de acesso
<a name="access-troubleshooter-using"></a>

Quando você recebe um erro de acesso negado, a mensagem de erro inclui um link e um AuthorizationID que você pode usar com o Solucionador de problemas de acesso. O exemplo a seguir mostra uma mensagem de erro de acesso negado:

```
An error occurred (AccessDenied) when calling the RestoreTableFromBackup operation: User: arn:aws:sts:012345678901:assumedRole/DatabaseDev/RestoreBackupSession is not authorized to perform: dynamodb:RestoreTableFromBackup with an explicit deny in an identity policy. Go to https://console.aws.amazon.com/iam/home#/access-troubleshooter for complete details, or call the iam:GetAuthorizationDetails API with the following authorization id: 67f1576b-af29-4c66-9b2b-10fd67516713
```

Com a permissão apropriada, é possível escolher **Solucionar problemas no IAM** para abrir uma nova guia do Solucionador de problemas de acesso.

Como alternativa, é possível chamar a API `iam:GetAuthorizationDetails` usando o AuthorizationID:

```
aws iam get-authorization-details --authorization-id 67f1576b-af29-4c66-9b2b-10fd67516713
```

Se você for um administrador e um desenvolvedor fornecer o AuthorizationID, acesse o console do IAM e insira o AuthorizationID para recuperar os detalhes do contexto de autorização.

### Visualizar os detalhes da solicitação e da avaliação
<a name="access-troubleshooter-request-details"></a>

O Solucionador de problemas de acesso fornece os detalhes da sua solicitação que foram considerados na avaliação. É possível analisar a operação ou a chamada de API que você tentou, o ID de autorização, a entidade principal que fez a chamada, o recurso que você tentou acessar e o resultado da avaliação.

### Visualizar avaliação de autorização individual
<a name="access-troubleshooter-individual-evaluation"></a>

Para chamar uma operação com êxito, permissões adicionais para realizar ações dependentes podem ser necessárias. Por exemplo, para executar `RestoreTableFromBackup` no DynamoDB, permissões para `dynamodb:BatchWriteItem`, `dynamodb:DeleteItem`, `dynamodb:GetItem`, `dynamodb:PutItem`, `dynamodb:Query`, `dynamodb:Scan` e `dynamodb:UpdateItem` são necessárias. Essas ações são avaliadas em relação aos recursos que você deseja acessar. Para obter mais informações, consulte a [Referência de autorização do serviço](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).

### Revise todas as políticas e suas instruções individuais
<a name="access-troubleshooter-policy-statements"></a>

Em muitos casos, várias políticas afetam sua autorização, e cada política pode conter várias instruções. O Solucionador de problemas de acesso lista todas as políticas que são avaliadas quando você executa sua operação. É possível revisar as instruções individuais dentro dessas políticas e o resultado da avaliação de cada uma, o que oferece uma visão completa para ajudar você a resolver problemas com eficiência.

## Exemplos de mensagens de acesso negado
<a name="access-denied-error-examples"></a>

A maioria das mensagens de erro de acesso negado está no formato `User user is not authorized to perform action on resource because context`. Neste exemplo, o *user* é o ARN da entidade principal que não recebe acesso, *action* é a ação de serviço que a política nega e *resource* é o ARN do recurso em que a política atua. O campo *context* fornece contexto adicional sobre o tipo de política que negou o acesso. Em alguns casos, ele também contém o ARN da política que negou o acesso.

Quando uma política nega explicitamente o acesso porque ela contém uma instrução `Deny`, a AWS inclui a frase `with an explicit deny in a type policy` na mensagem de acesso negado. Essa frase também pode especificar o ARN da política, do seguinte modo: `with an explicit deny in a type policy: policy ARN`.

Quando a política nega acesso implicitamente, a AWS inclui `because no type policy allows the action action` na mensagem de erro de acesso negado.

**nota**  
Alguns serviços da AWS não são compatíveis com esse formato de mensagem de erro de acesso negado. O conteúdo das mensagens de erro de acesso negado pode variar conforme o serviço que está fazendo a solicitação de autorização.

Os exemplos a seguir mostram o formato para diferentes tipos de mensagens de acesso negado.

### Acesso negado devido a uma política de controle de serviço: negação implícita
<a name="access-denied-scp-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em suas políticas de controle de serviços (SCPs). No exemplo a seguir, a ação é `codecommit:ListRepositories`.

1. Atualize a SCP adicionando a instrução `Allow`. Para obter mais informações, consulte [Atualizar uma SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy) no *Guia do usuário do AWS Organizations*.

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no service control policy allows the codecommit:ListRespositories action
```

### Acesso negado devido a uma política de controle de serviço: negação explícita
<a name="access-denied-scp-examples-explicit"></a>

1. Se um ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação na política de controle de serviços (SCP) especificada. No exemplo abaixo, a ação é `codecommit:ListRepositories`.

1. Se nenhum ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação em suas SCPs.

1. Atualize a SCP removendo a instrução `Deny`. Para obter mais informações, consulte [Atualização de uma política de controle de serviços (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy) no *Guia do usuário do AWS Organizations*.

Mensagem de erro com um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
with an explicit deny in a service control policy: arn:aws:organizations::777788889999:policy/o-exampleorgid/service_control_policy/p-examplepolicyid123
```

Mensagem de erro sem um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
with an explicit deny in a service control policy
```

### Acesso negado devido a uma política de controle de recurso: negação explícita
<a name="access-denied-rcp-examples-explicit"></a>

1. Se um ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação na política de controle de recursos (RCP) especificada. No exemplo abaixo, a ação é `secretsmanager:GetSecretValue`.

1. Se nenhum ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação em suas RCPs.

1. Atualize sua RCP removendo a instrução `Deny`. Para obter mais informações, consulte [Atualizar uma política de controle de recursos (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy-rcp) no *Guia do usuário do AWS Organizations*.

Mensagem de erro com um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource control policy: arn:aws:organizations::777788889999:policy/o-exampleorgid/resource_control_policy/p-examplepolicyid456
```

Mensagem de erro sem um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource control policy
```

### Acesso negado devido a uma política de endpoint da VPC: negação implícita
<a name="access-denied-vpc-endpoint-examples-implicit.title"></a>

1. Verifique se falta uma instrução `Allow` para a ação em suas políticas de endpoint da nuvem privada virtual (VPC). No exemplo a seguir, a ação é `codecommit:ListRepositories`.

1. Atualize sua política de endpoint da VPC adicionando a instrução `Allow`. Para obter mais informações, consulte [Atualizar uma política de endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) no *Guia do AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no VPC endpoint policy allows the codecommit:ListRepositories action
```

### Acesso negado devido a uma política de endpoint da VPC: negação explícita
<a name="access-denied-vpc-endpoint-examples-explicit.title"></a>

1. Verifique se há uma instrução `Deny` explícita para a ação em suas políticas de endpoint da nuvem privada virtual (VPC). No exemplo a seguir, a ação é `codedeploy:ListDeployments`.

1. Atualize sua política de endpoint da VPC removendo a instrução `Deny`. Para obter mais informações, consulte [Atualizar uma política de endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) no *Guia do AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a VPC endpoint policy
```

### Acesso negado devido a um limite de permissões: negação implícita
<a name="access-denied-permissions-boundary-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em seu limite de permissões. No exemplo a seguir, a ação é `codedeploy:ListDeployments`.

1. Atualize seu limite de permissões adicionando a instrução `Allow` à política do IAM. Para obter mais informações, consulte [Limites de permissões para entidades do IAM](access_policies_boundaries.md) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
because no permissions boundary allows the codedeploy:ListDeployments action
```

### Acesso negado devido a um limite de permissões: negação explícita
<a name="access-denied-permissions-boundary-examples-explicit"></a>

1. Se um ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação no limite de permissões especificado. No exemplo abaixo, a ação é `sagemaker:ListModels`.

1. Se nenhum ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação no limite de permissões anexado à entidade principal. 

1. Atualize seu limite de permissões removendo a instrução `Deny` da política do IAM. Para obter mais informações, consulte [Limites de permissões para entidades do IAM](access_policies_boundaries.md) e [Editar políticas do IAM](access_policies_manage-edit.md).

Mensagem de erro com um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sagemaker:ListModels
with an explicit deny in a permissions boundary: arn:aws:iam::123456789012:policy/DeveloperPermissionBoundary
```

Mensagem de erro sem um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sagemaker:ListModels
with an explicit deny in a permissions boundary
```

### Acesso negado devido às políticas de sessão: negação implícita
<a name="access-denied-session-policy-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em suas políticas de sessão. No exemplo a seguir, a ação é `codecommit:ListRepositories`.

1. Atualize a política de sessão adicionando a instrução `Allow`. Para obter mais informações, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no session policy allows the codecommit:ListRepositories action
```

### Acesso negado devido às políticas de sessão: negação explícita
<a name="access-denied-session-policy-examples-explicit"></a>

1. Se um ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação na política de sessão especificada. No exemplo abaixo, a ação é `codedeploy:ListDeployments`.

1. Se nenhum ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação em suas políticas de sessão.

1. Atualize a política de sessão removendo a instrução `Deny`. Para obter mais informações, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) e [Editar políticas do IAM](access_policies_manage-edit.md).

Mensagem de erro com um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a session policy: arn:aws:iam::123456789012:policy/DeveloperSessionPolicy
```

Mensagem de erro sem um ARN de política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a session policy
```

### Acesso negado devido às políticas baseadas em recursos: negação implícita
<a name="access-denied-resource-based-policy-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em sua política baseada em recursos. No exemplo a seguir, a ação é `secretsmanager:GetSecretValue`.

1. Atualize a política adicionando a instrução `Allow`. Para obter mais informações, consulte [Políticas baseadas em recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
because no resource-based policy allows the secretsmanager:GetSecretValue action
```

### Acesso negado devido às políticas baseadas em recursos: negação explícita
<a name="access-denied-resource-based-policy-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` explícita para a ação em sua política baseada em recursos. No exemplo a seguir, a ação é `secretsmanager:GetSecretValue`.

1. Atualize a política removendo a instrução `Deny`. Para obter mais informações, consulte [Políticas baseadas em recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource-based policy
```

### Acesso negado devido às políticas de confiança de perfil: negação implícita
<a name="access-denied-role-trust-policy-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em sua política de confiança de perfil. No exemplo a seguir, a ação é `sts:AssumeRole`.

1. Atualize a política adicionando a instrução `Allow`. Para obter mais informações, consulte [Políticas baseadas em recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sts:AssumeRole
because no role trust policy allows the sts:AssumeRole action
```

### Acesso negado devido às políticas de confiança de perfil: negação explícita
<a name="access-denied-role-trust-policy-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` explícita para a ação em sua política de confiança de perfil. No exemplo a seguir, a ação é `sts:AssumeRole`.

1. Atualize a política removendo a instrução `Deny`. Para obter mais informações, consulte [Políticas baseadas em recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sts:AssumeRole
with an explicit deny in the role trust policy
```

### Acesso negado devido a políticas baseadas em identidade: negação implícita
<a name="access-denied-identity-based-policy-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em políticas baseadas em identidade anexadas à identidade. No exemplo a seguir, a ação é `codecommit:ListRepositories` anexada ao perfil `HR`.

1. Atualize a política adicionando a instrução `Allow`. Para obter mais informações, consulte [Políticas baseadas em identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) e [Editar políticas do IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codecommit:ListRepositories
because no identity-based policy allows the codecommit:ListRepositories action
```

### Acesso negado devido às políticas baseadas em identidade: negação explícita
<a name="access-denied-identity-based-policy-examples-explicit"></a>

1. Se um ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação na política especificada. No exemplo abaixo, a ação é `codedeploy:ListDeployments`.

1. Se nenhum ARN de política for fornecido na mensagem de erro, verifique se há uma instrução `Deny` para a ação em políticas baseadas em identidade anexadas à identidade. 

1. Atualize a política removendo a instrução `Deny`. Para obter mais informações, consulte [Políticas baseadas em identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) e [Editar políticas do IAM](access_policies_manage-edit.md).

Mensagem de erro com um ARN de política:

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in an identity-based policy: arn:aws:iam::123456789012:policy/HRAccessPolicy
```

Mensagem de erro sem um ARN de política:

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in an identity-based policy
```

# Solucionar problemas com o usuário-raiz
<a name="troubleshooting_root-user"></a>

Use as informações aqui contidas para obter ajuda para solucionar problemas relacionados ao usuário-raiz de uma Conta da AWS.

**nota**  
Contas da AWS gerenciadas por meio do AWS Organizations podem ter [acesso raiz centralizado](id_root-user.md#id_root-user-access-management) habilitado para contas-membro. Essas contas-membro não têm credenciais de usuário-raiz, não podem fazer login como usuário-raiz e são impedidas de recuperar a senha do usuário-raiz. Entre em contato com seu administrador se precisar realizar uma tarefa que exija credenciais de usuário-raiz.

## Não consigo realizar as tarefas que espero poder realizar quando estou conectado como usuário-raiz da conta
<a name="troubleshooting_root-user_tasks"></a>

A conta pode ser membro de uma organização no AWS Organizations. O administrador da sua organização pode ter uma política de controle de serviços (SCP) para limitar as permissões da sua conta. As SCPs afetam todos os usuários, incluindo o usuário-raiz. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_type-auth.html) no *Guia do usuário do AWS Organizations*.

## Esqueci a senha de usuário-raiz da minha Conta da AWS
<a name="troubleshoot-forgot-root-password"></a>

Se você é um usuário-raiz e perdeu ou esqueceu a senha da sua Conta da AWS, é possível redefinir essa senha. É necessário saber o endereço de e-mail usado para criar a Conta da AWS e ter acesso à conta de email. Para obter mais informações, consulte [Redefinir uma senha de usuário-raiz perdida ou esquecida](reset-root-password.md).

## Não tenho acesso ao e-mail da minha Conta da AWS
<a name="troubleshoot_general_lost-root-creds"></a>

Ao criar uma Conta da AWS, você fornece um endereço de e-mail e uma senha. Essas são as credenciais para o Usuário raiz da conta da AWS. Se você não tiver certeza do endereço de e-mail associado à Conta da AWS, pesquise por mensagens enviadas por `@signin.aws` ou `@verify.signin.aws` a qualquer endereço de e-mail da sua organização que possa ter sido usado para abrir a Conta da AWS.

Se você souber o endereço de e-mail, mas não tiver mais acesso a ele, tente recuperar o acesso. Use uma das seguintes opções para recuperar o acesso ao seu e-mail:
+ Se você for o proprietário do domínio do endereço de e-mail, poderá restaurar um endereço de e-mail excluído. Como alternativa, você pode configurar um catch-all para sua conta de e-mail. Um catch-all coleta todas as mensagens enviadas para endereços de e-mail que não existem mais no servidor de e-mail e as redireciona para outro endereço de e-mail.
+ Se o endereço de e-mail da conta é parte do seu sistema de e-mail corporativo, recomendamos que você entre em contato com os administradores do sistema de TI. Eles podem ajudar você a obter acesso novamente ao e-mail.

Se você ainda não conseguir fazer login na sua Conta da AWS, encontre opções alternativas de suporte em [Entre em contato conosco](https://aws.amazon.com/contact-us/).

# Políticas de solução de problemas do IAM
<a name="troubleshoot_policies"></a>

Uma [política](access_policies.md) é uma entidade da AWS que, quando associada a uma identidade ou recurso, define suas permissões. A AWS avalia essas políticas quando uma principal, como um usuário, faz uma solicitação. As permissões nas políticas determinam se a solicitação será permitida ou negada. As políticas são armazenadas na AWS como documentos JSON anexados a entidades principais como *políticas baseadas em identidade* ou a recursos como *políticas baseadas em recursos*. Você pode anexar uma política baseada em identidade a uma entidade (ou identidade), como um grupo, usuário ou função do IAM. As políticas baseadas em identidade incluem as políticas gerenciadas pela AWS, as políticas gerenciadas pelo cliente e as políticas em linha. Você pode criar e editar políticas gerenciadas pelo cliente no Console de gerenciamento da AWS usando ambas as opções de editor **Visual** e **JSON**. Quando você visualiza uma política no Console de gerenciamento da AWS, pode ver um resumo das permissões concedidas por essa política. Você pode usar o editor visual e os resumos das políticas para ajudar a diagnosticar e corrigir os erros comuns encontrados no gerenciamento das políticas do IAM.

Lembre-se de que todas as políticas do IAM são armazenadas usando uma sintaxe que começa com as regras da [Notação de objetos JavaScript](http://www.json.org) (JSON). Não é preciso entender esta sintaxe para criar ou gerenciar políticas. É possível criar e editar uma política usando o editor visual no Console de gerenciamento da AWS. Para saber mais sobre a sintaxe JSON nas políticas do IAM, consulte [Gramática da linguagem das políticas de JSON do IAM](reference_policies_grammar.md).

**Solução de problemas de tópicos das políticas do IAM**
+ [Solução de problemas usando o editor visual](#troubleshoot_policies-viseditor)
  + [Reestruturação da política](#troubleshoot_viseditor-restructure)
  + [Escolher um ARN de recurso no editor visual](#troubleshoot_policies-resource-arn)
  + [Negar permissões no editor visual](#troubleshoot_policies-switch-deny)
  + [Especificar vários serviços no editor visual](#troubleshoot_policies-multiple-services)
  + [Reduzir o tamanho da política no editor visual](#troubleshoot_policy-size)
  + [Corrigir serviços, ações ou tipos de recursos desconhecidos no editor visual](#troubleshoot_policies-unrecognized-visual)
+ [Solucionar problemas com resumos de políticas](#troubleshoot_policies-polsum)
  + [Resumo de política ausente](#missing-policy-summary)
  + [O resumo de política inclui serviços, ações ou tipos de recursos desconhecidos](#unrecognized-services-actions)
  + [O serviço não oferece suporte a resumos de política do IAM](#unsupported-services-actions)
  + [Minha política não concede as permissões esperadas](#policy-summary-not-grant-permissions)
+ [Solução de problemas de gerenciamento de políticas](#troubleshoot_policies-policy-manage)
  + [Anexar ou desanexar uma política em uma conta do IAM](#troubleshoot_roles_cant-attach-detach-policy)
  + [Alterar políticas de suas identidades do IAM com base em sua atividade](#troubleshoot_change-policies-based-on-activity)
+ [Solução de problemas de documentos de políticas JSON](#troubleshoot_policies-json)
  + [Validar suas políticas](#usepolicyvalidation)
  + [Não tenho permissões para validação de política no editor JSON](#nopermsforpolicyvalidation)
  + [Mais de um objeto de política JSON](#morethanonepolicyblock)
  + [Mais de um elemento de instrução JSON](#morethanonestatement)
  + [Mais de um efeito, ação ou elemento de recurso em um elemento de instrução JSON](#duplicateelement)
  + [Elemento de versão JSON ausente](#missing-version)

## Solução de problemas usando o editor visual
<a name="troubleshoot_policies-viseditor"></a>

Ao criar ou editar uma política gerenciada pelo cliente, você pode usar as informações no editor **Visual** para ajudá-lo a solucionar erros na política. Para visualizar um exemplo de como usar o editor visual para criar uma política, consulte [Controle de acesso a identidades](access_controlling.md#access_controlling-identities).

### Reestruturação da política
<a name="troubleshoot_viseditor-restructure"></a>

Quando você cria uma política, a AWS valida, processa e transforma a política antes de armazená-la. Quando a política é recuperada, a AWS a transforma de volta para um formato legível por humanos sem alterar as permissões. Isso pode resultar em diferenças no que diz respeito ao que você vê no editor visual de política ou na guia **JSON**.
+ Blocos de permissões do editor visual podem ser adicionados, removidos ou reorganizados, e o conteúdo dentro de um bloco pode ser otimizado.
+ Na guia **JSON**, espaços em branco insignificantes podem ser removidos e os elementos dentro dos mapas JSON podem ser reordenados. Além disso, os IDs da Conta da AWS nos elementos de entidade principal podem ser substituídos pelo nome do recurso da Amazon (ARN) do Usuário raiz da conta da AWS.

Devido a essas possíveis alterações, você não deve comparar documentos de políticas JSON como strings.

Ao criar uma política gerenciada pelo cliente no Console de gerenciamento da AWS, você pode optar por trabalhar exclusivamente no editor **JSON**. Se você nunca alterar a política no editor **Visual** e escolher **Avançar** no editor **JSON**, a probabilidade de que a política seja reestruturada é menor. Ao usar o editor **Visual**, o IAM pode reestruturar a política para otimizar a aparência. Essa reestruturação existe somente na sua sessão de edição e não é salva automaticamente.

Se a sua política for reestruturada em uma sessão de edição, o IAM determinará se a reestruturação deve ser salva com base nas seguintes situações:


| Usar essa opção de editor | Se você editar a política | E depois escolher ***Avançar*** nesta guia | Quando você escolher ***Salvar alterações*** | 
| --- | --- | --- | --- | 
| Visual | Editada | Visual | A política será reestruturada | 
| Visual | Editada | JSON | A política será reestruturada | 
| Visual | Não editada | Visual | A política será reestruturada | 
| JSON | Editada | Visual | A política será reestruturada | 
| JSON | Editada | JSON | A estrutura da política não será alterada | 
| JSON | Não editada | JSON | A estrutura da política não será alterada | 

O IAM pode reestruturar políticas complexas ou políticas que têm blocos de permissões ou instruções que permitam vários serviços, tipos de recursos ou chaves de condição.

### Escolher um ARN de recurso no editor visual
<a name="troubleshoot_policies-resource-arn"></a>

Ao criar ou editar uma política usando o editor visual, você deve primeiro escolher um serviço e, em seguida, selecionar as ações do serviço. Se o serviço e as ações que você selecionou oferecerem suporte à escolha de [recursos específicos](access_controlling.md#access_controlling-resources), o editor visual apresentará uma lista dos tipos de recurso compatíveis. Em seguida, você poderá escolher **Adicionar ARN** para fornecer detalhes sobre seu recurso. Você pode escolher as opções a seguir para adicionar um ARN a um tipo de recurso.
+ **Uso do builder de ARN**: dependendo do tipo de recurso, você pode ver campos diferentes para construir seu ARN. Você também pode escolher **Qualquer** para fornecer permissão para qualquer valor na configuração especificada. Por exemplo, se você tiver selecionado o grupo do nível de acesso **Read** (Leitura) do Amazon EC2, as ações da política oferecerão suporte ao tipo de recurso `instance`. Forneça os valores **Região**, **Conta** e **InstanceId** para o recurso. A política concede permissões para qualquer instância na sua conta se você fornecer o ID da conta e escolher **Qualquer** para a região e ID da instância.
+ **Digitar ou colar o ARN**: você pode especificar recursos pelo [nome do recurso da Amazon (ARN)](reference_identifiers.md#identifiers-arns). Você pode incluir um caractere curinga (**\$1**) em qualquer campo do ARN entre cada par de dois-pontos. Para obter mais informações, consulte [Elementos de política JSON do IAM: Resource](reference_policies_elements_resource.md).

### Negar permissões no editor visual
<a name="troubleshoot_policies-switch-deny"></a>

Por padrão, uma política criada usando o editor visual permite as ações que você escolhe. Para negar as ações escolhidas, selecione **Alternar para negar permissões**. Como as solicitações são *negadas por padrão*, recomendamos que você conceda permissões somente às ações e aos recursos dos quais um usuário precisa. Você só precisa criar uma instrução de negação se quiser substituir uma permissão concedida por outra instrução ou política. Recomendamos que você limite ao mínimo o número de permissões de negação, pois elas podem aumentar a dificuldade de solucionar problemas nas permissões. Para obter mais informações sobre como o IAM avalia a lógica de políticas, consulte [Lógica da avaliação de política](reference_policies_evaluation-logic.md).

**nota**  
Por padrão, somente o Usuário raiz da conta da AWS tem acesso a todos os recursos na conta. Portanto, se você não estiver conectado como usuário raiz, você deverá ter as permissões concedidas por uma política.

### Especificar vários serviços no editor visual
<a name="troubleshoot_policies-multiple-services"></a>

Quando você usa o editor visual para criar uma política, só pode selecionar um serviço por vez. Esta é uma prática recomendada, pois o editor visual permite que você escolha as ações para esse serviço específico. Em seguida, você escolhe os recursos compatíveis com esse serviço e as ações selecionadas. Isso facilita a criação e a solução de problemas na sua política. 

Você também pode usar um caractere curinga (\$1) para especificar manualmente vários serviços. Por exemplo, digite **Code\$1** para fornecer permissões para todos os serviços que comecem com `Code`, como `CodeBuild` e `CodeCommit`. No entanto, você deve, em seguida, inserir as ações e os ARNs dos recursos para concluir sua política. Além disso, quando você salvar a política, ela poderá ser [reestruturada](#troubleshoot_viseditor-restructure) a fim de incluir cada serviço em um bloco de permissões separado.

Ou então, para usar a sintaxe JSON (como caracteres curinga) para serviços, crie, edite e salve a política usando a opção de editor **JSON**.

### Reduzir o tamanho da política no editor visual
<a name="troubleshoot_policy-size"></a>

Quando você usa o editor visual para criar uma política, o IAM cria um documento JSON para armazenar sua política. Você pode visualizar este documento mudando para a opção de editor **JSON**. Se este documento JSON exceder o limite de tamanho de uma política, o editor visual exibirá uma mensagem de erro. Você não poderá revisar e salvar a política. Para visualizar a limitação do IAM quanto ao tamanho de uma política gerenciada, consulte [Limites de caracteres do IAM e do STS](reference_iam-quotas.md#reference_iam-quotas-entity-length). 

Para reduzir o tamanho de uma política no editor visual, edite a política ou mova blocos de permissões para outra política. A mensagem de erro inclui o número de caracteres que o documento da política contém. Você pode usar essas informações para ajudar a reduzir o tamanho da política.

### Corrigir serviços, ações ou tipos de recursos desconhecidos no editor visual
<a name="troubleshoot_policies-unrecognized-visual"></a>

Você pode ver um aviso no editor visual de que sua política inclui um serviço, ação ou tipo de recurso não reconhecido.

**nota**  
O IAM revisa nomes de serviço, ações e tipos de recurso para serviços que oferecem suporte a resumos de políticas. Contudo, seu resumo de política pode incluir um valor de recurso ou uma condição que não existe. Sempre teste as políticas com o [simulador de políticas](access_policies_testing-policies.md).

Se a sua política inclui serviços, ações ou tipos de recurso desconhecidos, ocorreu um dos seguintes erros:
+ **Serviço de pré-visualização**: serviços que estão em pré-visualização não oferecem suporte ao editor visual. Se estiver participando da pré-visualização, você deverá inserir manualmente as ações e os ARNs dos recursos para concluir sua política. Você pode ignorar qualquer aviso e continuar. Ou então, você pode escolher a opção de editor **JSON** e digitar ou colar um documento de política JSON.
+ **Serviço personalizado**: serviços personalizados não oferecem suporte ao editor visual. Se estiver usando um serviço personalizado, você deverá inserir manualmente as ações e os ARNs dos recursos para concluir sua política. Você pode ignorar qualquer aviso e continuar. Ou então, você pode escolher a opção de editor **JSON** e digitar ou colar um documento de política JSON.
+ **O serviço não é compatível com o editor visual**: se sua política incluir um serviço em disponibilidade geral (GA) que não seja compatível com o editor visual, você deverá inserir manualmente as ações e os ARNs dos recursos para concluir sua política. Você pode ignorar qualquer aviso e continuar. Ou então, você pode escolher a opção de editor **JSON** e digitar ou colar um documento de política JSON. 

  Os serviços disponíveis são serviços que são lançados publicamente e não são serviços personalizados ou de visualização. Se o serviço desconhecido for um serviço disponível para o público geral e seu nome estiver digitado corretamente, isso significa que o serviço não oferece suporte ao editor visual. Para saber como solicitar suporte a um resumo de políticas ou ao editor visual para um serviço disponível para o público, consulte [O serviço não oferece suporte a resumos de política do IAM](#unsupported-services-actions).
+ **A ação não é compatível com o editor visual**: se sua política incluir um serviço compatível com uma ação incompatível, você deverá inserir manualmente as ações e os ARNs dos recursos para concluir sua política. Você pode ignorar qualquer aviso e continuar. Ou então, você pode escolher a opção de editor **JSON** e digitar ou colar um documento de política JSON.

  Se a política incluir um serviço com suporte com uma ação sem suporte, isso significa que o serviço não oferece suporte completo ao editor visual. Para saber como solicitar suporte a um resumo de políticas ou ao editor visual para um serviço disponível para o público, consulte [O serviço não oferece suporte a resumos de política do IAM](#unsupported-services-actions).
+ **O tipo de recurso não oferece suporte ao editor visual**: se a política incluir uma ação com suporte com um tipo de recurso sem suporte, você poderá ignorar o aviso e prosseguir. No entanto, como o IAM não pode confirmar se você incluiu recursos para todas as ações selecionadas, você poderá receber avisos adicionais.
+ **Erro de digitação**: quando você insere manualmente um serviço, uma ação ou um recurso no editor visual, é possível criar uma política que inclua um erro de digitação. Recomendamos usar o editor visual selecionando os serviços e ações da lista. Em seguida, preencha a seção de recursos de acordo com os prompts. Se um serviço não for totalmente compatível com o editor visual, talvez você tenha de inserir partes da política manualmente. 

  Se você tiver certeza de que sua política não contém nenhum dos erros acima, ela poderá incluir um erro de digitação. Verifique se há os seguintes problemas:
  + Nomes de serviço, ação e tipo de recurso com erros de digitação, como `s2` em vez de `s3` ou `ListMyBuckets` em vez de `ListAllMyBuckets`
  + Texto desnecessário em ARNs, como `arn:aws:s3: : :*`
  + Dois pontos ausentes em ações, como `iam.CreateUser`

  Você pode avaliar uma política que pode incluir erros de digitação selecionando **Avançar** para revisar o resumo da política. Em seguida, confirme se a política fornece as permissões que você espera.

## Solucionar problemas com resumos de políticas
<a name="troubleshoot_policies-polsum"></a>

Você pode diagnosticar e resolver problemas relacionados aos resumos de políticas.

### Resumo de política ausente
<a name="missing-policy-summary"></a>

O console do IAM inclui tabelas do *resumo de políticas* que descrevem o nível de acesso, os recursos e as condições permitidas ou negadas para cada serviço em uma política. As políticas são resumidas em três tabelas: o [resumo de políticas](access_policies_understand-policy-summary.md), o [resumo de serviços](access_policies_understand-service-summary.md) e o [resumo de ações](access_policies_understand-action-summary.md). A tabela de *resumo da política* inclui uma lista de serviços e resumos das permissões que são definidas pela política escolhida. Você pode visualizar o [resumo da política](access_policies_understand.md) de qualquer política anexada a uma entidade na página **Detalhes da política** daquela política. Visualize o resumo de políticas para políticas gerenciadas na página **Políticas**. Se a AWS não puder renderizar um resumo para uma política, você verá o documento da política JSON e o seguinte erro:

**Não é possível gerar um resumo para esta política. Você ainda pode visualizar ou editar o documento da política JSON.**

Se a política não incluir um resumo, terá ocorrido um dos seguintes erros:
+ **Elemento de política sem suporte**: o IAM não oferece suporte à geração de resumos de políticas para políticas que incluem um dos seguintes [elementos de política](reference_policies_elements.md):
  + `Principal`
  + `NotPrincipal`
  + `NotResource`
+ **Nenhuma permissão de política**: se uma política não fornecer permissões efetivas, o resumo da política não poderá ser gerado. Por exemplo, se uma política inclui uma única instrução com o elemento `"NotAction": "*"`, ela concede acesso a todas as ações, exceto "todas as ações" (\$1). Isso significa que ela `Deny` ou `Allow` acesso a nada.
**nota**  
Tenha cuidado ao usar esses elementos de políticas, como `NotPrincipal`, `NotAction` e `NotResource`. Para obter mais informações sobre o uso de elementos de política, consulte [Referência de elemento de política JSON do IAM](reference_policies_elements.md).

  Se você fornecer serviços e recursos incompatíveis, poderá criar uma política que não concede permissões eficazes. Isso pode ocorrer quando você especifica ações em um serviço e recursos de outro serviço. Nesse caso, o resumo de políticas aparecerá. A única indicação de que há um problema é que a coluna de recursos no resumo pode incluir um recurso de um serviço diferente. Se essa coluna incluir um recurso incompatível, será necessário analisar sua política para busca de erros. Teste suas políticas com o [simulador de políticas](access_policies_testing-policies.md) para melhor entendê-las.

### O resumo de política inclui serviços, ações ou tipos de recursos desconhecidos
<a name="unrecognized-services-actions"></a>

No console do IAM, se um [resumo de política](access_policies_understand.md) incluir um símbolo de aviso (![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/images/console-alert-icon.console.png)), a política poderá incluir um serviço, ação ou tipo de recurso desconhecido. Para saber mais sobre os avisos de um resumo de políticas, consulte [Resumo da política (lista de serviços)](access_policies_understand-policy-summary.md). 

**nota**  
O IAM revisa nomes de serviço, ações e tipos de recurso para serviços que oferecem suporte a resumos de políticas. Contudo, seu resumo de política pode incluir um valor de recurso ou uma condição que não existe. Sempre teste as políticas com o [simulador de políticas](access_policies_testing-policies.md).

Se a sua política inclui serviços, ações ou tipos de recurso desconhecidos, ocorreu um dos seguintes erros:
+ **Serviço de pré-visualização**: serviços que estão em pré-visualização não oferecem suporte a resumos de política.
+ **Serviço personalizado**: serviços personalizados não oferecem suporte a resumos de política.
+ **O serviço não oferece suporte a resumos**: se a política incluir um serviço disponível para o público (GA) que não ofereça suporte a resumos de política, o serviço é incluído na seção **Unrecognized services** (Serviços desconhecidos) da tabela do resumo da política. Os serviços disponíveis são serviços que são lançados publicamente e não são serviços personalizados ou de visualização. Se um serviço desconhecido estiver disponível para o público e o nome estiver escrito corretamente, o serviço não oferecerá suporte a resumos de política do IAM. Para saber como solicitar suporte para um resumo de políticas para um serviço disponível, consulte [O serviço não oferece suporte a resumos de política do IAM](#unsupported-services-actions).
+ **A ação não oferece suporte a resumos**: se a política incluir um serviço compatível com uma ação incompatível, a ação será incluída na seção **Unrecognized actions** (Ações desconhecidas) da tabela do resumo do serviço. Para saber mais sobre os avisos de um resumo de serviços, consulte [Resumo do serviço (lista de ações)](access_policies_understand-service-summary.md).
+ **O tipo de recurso não oferece suporte a resumos**: se a política incluir uma ação compatível com um tipo de recurso incompatível, o recurso será incluído na seção **Unrecognized resource types** (Tipos de recurso desconhecidos) da tabela do resumo do serviço. Para saber mais sobre os avisos de um resumo de serviços, consulte [Resumo do serviço (lista de ações)](access_policies_understand-service-summary.md).
+ **Erro de digitação**: a AWS verifica se o JSON está sintaticamente correto e se a política não inclui erros de digitação ou outros erros como parte da [validação de política](access_policies_policy-validator.md).

**nota**  
Como [prática recomendada](best-practices.md), recomendamos que você use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais. Recomendamos que você abra as políticas existentes e analise e resolva todas as recomendações de validação de política.

### O serviço não oferece suporte a resumos de política do IAM
<a name="unsupported-services-actions"></a>

É possível que resumos de políticas do IAM ou o editor visual não sejam compatíveis com uma ação ou um serviço em disponibilidade geral (GA). Os serviços disponíveis são serviços lançados publicamente e não serviços personalizados ou de visualização. Se o serviço desconhecido for um serviço disponível para o público e seu nome estiver digitado corretamente, então o serviço não oferece suporte a esses recursos. Se a política incluir um serviço compatível com uma ação incompatível, o serviço não oferecerá suporte completo a resumos de política do IAM.

**Para solicitar que um serviço adicione suporte ao resumo de política do IAM ou ao editor visual**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Localize a política que inclui o serviço sem suporte:
   + Se a política for uma política gerenciada, escolha **Políticas** no painel de navegação. Na lista de políticas, escolha o nome da política que deseja visualizar.
   + Se a política for uma política em linha anexada ao usuário, escolha **Usuários** no painel de navegação. Na lista de usuários, escolha o nome do usuário cuja política deseja visualizar. Na tabela de políticas do usuário, expanda o cabeçalho do resumo de políticas que deseja visualizar.

1. No lado esquerdo do rodapé do Console de gerenciamento da AWS, escolha **Comentários**. Na caixa **Feedback para o IAM**, digite **I request that the <ServiceName> service add support for IAM policy summaries and the visual editor**. Se quiser que mais de um serviço ofereça suporte aos resumos, digite **I request that the <ServiceName1>, <ServiceName2>, and <ServiceName3> services add support for IAM policy summaries and the visual editor**.

**Para solicitar que um serviço adicione suporte ao resumo de política do IAM para uma ação ausente**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Localize a política que inclui o serviço sem suporte:
   + Se a política for uma política gerenciada, escolha **Políticas** no painel de navegação. Na lista de políticas, escolha o nome da política que deseja visualizar.
   + Se a política for uma política em linha anexada ao usuário, escolha **Usuários** no painel de navegação. Na lista de usuários, escolha o nome do usuário cuja política deseja visualizar. Na tabela de políticas do usuário, escolha o nome da política que deseja visualizar para expandir o resumo de políticas.

1. No resumo de políticas, escolha o nome do serviço que inclua uma ação sem suporte.

1. No lado esquerdo do rodapé do Console de gerenciamento da AWS, escolha **Comentários**. Na caixa **Feedback para o IAM**, digite **I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName> action**. Se quiser relatar mais de uma ação sem suporte, digite **I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName1>, <ActionName2>, and <ActionName3> actions**. 

Para solicitar que outro serviço inclua ações ausentes, repita as três últimas etapas.

### Minha política não concede as permissões esperadas
<a name="policy-summary-not-grant-permissions"></a>

Para atribuir permissões a um usuário, grupo, função ou recurso, você cria uma *política*, que é um documento que define as permissões. Um documento de política inclui os seguintes elementos:
+ **Effect** (Efeito): se a política permite ou nega acesso
+ **Action** (Ação): a lista de ações permitidas ou negadas pela política
+ **Resource** (Recurso): a lista de recursos nos quais as ações podem ocorrer
+ **Condition** (Condição) (opcional): as circunstâncias sob as quais a política concede a permissão

Para saber mais sobre este e outros elementos de política, consulte [Referência de elemento de política JSON do IAM](reference_policies_elements.md). 

Para conceder acesso, sua política deve definir uma ação com um recurso compatível. Se a política também inclui uma condição, essa condição deve incluir uma [chave de condição global](reference_policies_condition-keys.md) ou deve se aplicar à ação. Para saber quais recursos são compatíveis com uma ação, consulte a [documentação da AWS](https://docs.aws.amazon.com/) para o seu serviço. Para saber quais condições são compatíveis com uma ação, consulte [Ações, recursos e chaves de condição de serviços da AWS](reference_policies_actions-resources-contextkeys.html).

Verifique se sua política define uma ação, recurso ou condição que não concede permissões. Veja o [resumo da política](access_policies_understand-policy-summary.md) de sua política usando o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). Você pode usar resumos de políticas para identificar e corrigir problemas em sua política.

Há vários motivos pelos quais um elemento pode não conceder permissões, apesar de ser definido na política do IAM:
+ [**Uma ação é definida sem um recurso aplicável**](#mismatch_action-no-resource)
+ [**Um recurso é definido sem uma ação aplicável**](#mismatch_resource-no-action)
+ [**Uma condição é definida sem uma ação aplicável**](#mismatch_condition-no-match)

Para ver exemplos de resumos de política que incluem avisos, consulte [Resumo da política (lista de serviços)](access_policies_understand-policy-summary.md).

#### Uma ação é definida sem um recurso aplicável
<a name="mismatch_action-no-resource"></a>

A política abaixo define todas as ações `ec2:Describe*` e define um recurso específico. Nenhuma das ações `ec2:Describe` é concedida porque nenhuma dessas ações é compatível com as permissões no nível de serviço. Permissões no nível de recurso significam que a ação é compatível com recursos que usam [ARNs](reference_identifiers.md#identifiers-arns) no elemento [`Resource`](reference_policies_elements_resource.md) da política. Se uma ação não é compatível com as permissões no nível de recurso, a instrução na política deve usar um curinga (`*`) no elemento `Resource`. Para saber quais serviços da são compatíveis com permissões em nível do recurso, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "arn:aws:ec2:us-east-2:111122223333:instance/*"
        }
    ]
}
```

------

Esta política não fornece permissões, e o resumo da política inclui o seguinte erro:

`This policy does not grant any permissions. To grant access, policies must have an action that has an applicable resource or condition.`

Para corrigir essa política, você deve usar `*` no elemento `Resource`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
    }]
}
```

------

#### Um recurso é definido sem uma ação aplicável
<a name="mismatch_resource-no-action"></a>

A política abaixo define um recurso de bucket do Amazon S3, mas não inclui uma ação do S3 que pode ser executada nesse recurso. Esta política também concede acesso completo a todas as ações do Amazon CloudFront.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
        "Effect": "Allow",
        "Action": "cloudfront:*",
        "Resource": [
            "arn:aws:cloudfront:*",
            "arn:aws:s3:::amzn-s3-demo-bucket"
        ]
        }
    ]
}
```

------

Esta política fornece permissões para todas as ações do CloudFront. Mas como a política define o recurso do S3 `amzn-s3-demo-bucket` sem definir ações do S3, o resumo da política inclui o seguinte aviso:

`This policy defines some actions, resources, or conditions that do not provide permissions. To grant access, policies must have an action that has an applicable resource or condition.`

Para corrigir essa política para fornecer as permissões de bucket do S3, você deve definir as ações do S3 que podem ser executadas em um recurso de bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudfront:*",
                "s3:CreateBucket",
                "s3:ListBucket*",
                "s3:PutBucket*",
                "s3:GetBucket*"
            ],
            "Resource": [
                "arn:aws:cloudfront:*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        }
    ]
}
```

------

Como alternativa, para corrigir essa política para fornecer apenas as permissões do CloudFront, remova o recurso do S3.

#### Uma condição é definida sem uma ação aplicável
<a name="mismatch_condition-no-match"></a>

A política abaixo define duas ações do Amazon S3 para todos os recursos do S3, se o prefixo do S3 for igual a `custom` e o ID da versão for igual a `1234`. No entanto, a chave de condição `s3:VersionId` é usada para a marcação da versão do objeto e não é suportada pelas ações do bucket definidas. Para saber quais condições são compatíveis com uma ação, consulte [Actions, Resources, and Condition Keys for AWS Services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) e escolha o serviço para visualizar a documentação do serviço sobre chaves de condição.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:ListBucket"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "custom"
                    ],
                    "s3:VersionId": [
                        "1234"
                    ]
                }
            }
        }
    ]
}
```

------

Esta política fornece permissões para a ação `s3:ListBucketVersions` e a ação `s3:ListBucket` se o nome do bucket inclui o prefixo `custom`. Mas, como a condição `s3:VersionId` não é compatível com nenhuma das ações definidas, o resumo da política inclui o seguinte erro:

`This policy does not grant any permissions. To grant access, policies must have an action that has an applicable resource or condition.`

Para corrigir essa política para usar a identificação de versão do objeto do S3, você deve definir uma ação do S3 compatível com a chave de condição `s3:VersionId`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:GetObjectVersion"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "custom"
                    ],
                    "s3:VersionId": [
                        "1234"
                    ]
                }
            }
        }
    ]
}
```

------

Esta política fornece permissões para cada ação e condição na política. No entanto, a política ainda não fornece permissões, pois não há casos em que uma única ação corresponde a ambas as condições. Em vez disso, você deve criar duas instruções separadas e cada uma deve incluir apenas as ações com as condições às quais se aplicam.

Para corrigir essa política, crie duas instruções. A primeira declaração inclui as ações que suportam a condição `s3:prefix` e a segunda instrução inclui as ações que suportam a condição `s3:VersionId`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:ListBucket"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": "custom"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:GetObjectVersion",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:VersionId": "1234"
                }
            }
        }
    ]
}
```

------

## Solução de problemas de gerenciamento de políticas
<a name="troubleshoot_policies-policy-manage"></a>

Você pode diagnosticar e resolver problemas relacionados ao gerenciamento de políticas.

### Anexar ou desanexar uma política em uma conta do IAM
<a name="troubleshoot_roles_cant-attach-detach-policy"></a>

Algumas políticas gerenciadas da AWS estão vinculadas a um serviço. Essas políticas são usadas apenas com uma [função vinculada ao serviço](id_roles.md#iam-term-service-linked-role) desse serviço. No console do IAM, quando você visualiza a página **Detalhes da política**, a página inclui um banner para indicar que a política está vinculada a um serviço. Não é possível anexar essa política a um usuário, grupo ou função no IAM. Quando você cria uma função vinculada ao serviço para o serviço, essa política é automaticamente anexada a sua nova função. Como a política é necessária, não é possível desanexar a política da função vinculada ao serviço. 

### Alterar políticas de suas identidades do IAM com base em sua atividade
<a name="troubleshoot_change-policies-based-on-activity"></a>

Você pode atualizar as políticas para suas identidades (usuários, grupos e funções) do IAM com base em sua atividade. Para fazer isso, visualize os eventos da sua conta no **Event history** (Histórico de eventos) do CloudTrail. Os logs de eventos do CloudTrail incluem informações de eventos detalhadas que você pode usar para alterar as permissões da política.

**Um usuário ou perfil está tentando realizar uma ação na AWS e essa solicitação está sendo negada.**  
Considere que o usuário ou o perfil tem permissão para realizar a ação. Se esse for o caso, você poderá adicionar a ação e até mesmo o ARN do recurso que eles tentou para acessar a sua política.

**Um usuário ou um perfil tem permissões que não estão sendo usadas.**  
Considere remover essas permissões da política deles. Certifique-se de que suas políticas concedem o [menor privilégio](best-practices.md#grant-least-privilege) necessário para executar apenas as ações necessárias.

Para obter mais informações sobre o uso do CloudTrail, consulte[Visualizar eventos do CloudTrail no console do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html) no*Guia do usuário do AWS CloudTrail*.

## Solução de problemas de documentos de políticas JSON
<a name="troubleshoot_policies-json"></a>

Você pode diagnosticar e resolver problemas relacionados aos documentos de políticas JSON.

### Validar suas políticas
<a name="usepolicyvalidation"></a>

 Quando você cria ou edita uma política JSON, o IAM pode executar a validação de políticas para ajudar você a criar uma política eficaz. O IAM identifica erros de sintaxe JSON, enquanto o IAM Access Analyzer fornece verificações de políticas adicionais com recomendações para ajudar você a refinar ainda mais suas políticas. Para saber mais sobre validação de política, consulte [Validação de política do IAM](access_policies_policy-validator.md). Para saber mais sobre as verificações de política do IAM Access Analyzer e as recomendações práticas, consulte [Validação de política do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

### Não tenho permissões para validação de política no editor JSON
<a name="nopermsforpolicyvalidation"></a>

No Console de gerenciamento da AWS, você pode receber o seguinte erro se não tiver permissões para visualizar os resultados da validação da política do IAM Access Analyzer:

`You need permissions. You do not have the permissions required to perform this operation. Ask your administrator to add permissions.`

Para corrigir este erro, peça ao administrador para adicionar a permissão `access-analyzer:ValidatePolicy` para você.

### Mais de um objeto de política JSON
<a name="morethanonepolicyblock"></a>

Uma política do IAM deve consistir em um único objeto JSON. Você denota um objeto colocando chaves \$1 \$1 em torno. Você pode aninhar outros objetos dentro de um objeto JSON incorporando chaves adicionais \$1 \$1 dentro do par externo. Uma política deve conter somente um par externo de chaves \$1 \$1. O exemplo a seguir é incorreto, pois contém dois objetos no nível superior (destacados em *vermelho*):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": 
      {
         "Effect":"Allow",
         "Action":"ec2:Describe*",
         "Resource":"*"
      }
    }
    { 
      "Statement": {
         "Effect": "Allow",
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    }
```

------

No entanto, você pode atender à intenção do exemplo anterior com o uso da gramática correta da política. Em vez de incluir dois objetos completos da política, cada um com seu próprio elemento `Statement`, você pode combinar dois blocos em um único elemento `Statement`. O elemento `Statement` tem um conjunto de dois objetos como seu valor, como mostrado no seguinte exemplo (destacado em **negrito**): 

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ec2:Describe*",
          "Resource":"*"
        },
        {
          "Effect": "Allow",
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
      ]
    }
```

------

### Mais de um elemento de instrução JSON
<a name="morethanonestatement"></a>

À primeira vista, esse erro pode parecer uma variação da seção anterior. No entanto, sintaticamente é um tipo diferente de erro. No exemplo a seguir, há somente um objeto da política, conforme indicado por um único par de chaves \$1 \$1 no nível superior. No entanto, esse objeto contém dois elementos `Statement` dentro de si.

 Uma política do IAM deve conter apenas um elemento `Statement`, consistindo no nome (`Statement`) que aparece à esquerda do sinal de dois pontos, seguido pelo valor à direita. O valor de um elemento `Statement` deve ser um objeto, denotado por chaves \$1 \$1, contendo um elemento `Effect`, um elemento `Action` e um elemento `Resource`. O exemplo a seguir é incorreto, pois contém dois elementos `Statement` no objeto da política (destacados em *vermelho*):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
      },
      "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    }
```

------

Um objeto de valor pode ser um conjunto de vários objetos de valor. Para resolver esse problema, combine os dois elementos `Statement` em um elemento com um conjunto de objetos, conforme mostrado no seguinte exemplo (destacado em **negrito**):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ec2:Describe*",
          "Resource":"*"
        },
        {
          "Effect": "Allow",
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
     ]
    }
```

------

O valor do elemento `Statement` é uma matriz de objetos. O conjunto nesse exemplo consiste em dois objetos, sendo que cada um deles por si só é um valor correto para um elemento `Statement`. Cada objeto na matriz é separado por vírgulas.

### Mais de um efeito, ação ou elemento de recurso em um elemento de instrução JSON
<a name="duplicateelement"></a>

No lado do valor do nome/valor `Statement`, o objeto deve conter apenas em um elemento `Effect`, um elemento `Action` e um elemento `Resource`. A política a seguir está incorreta, pois contém dois elementos `Effect` na `Statement`:

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Deny",
        "Effect": "Allow",     
        "Action": "ec2:* ",
        "Resource": "*"
      }
    }
```

------

**nota**  
O mecanismo de política não permite tais erros em políticas novas ou editadas. No entanto, o mecanismo de política continua a permitir a execução de políticas que foram salvas antes da atualização do mecanismo. O comportamento das políticas existentes com o erro é o seguinte:  
Vários elementos `Effect`: apenas o último elemento `Effect` é observado. Os outros são ignorados.
Elementos `Action` múltiplos: todos os elementos `Action` são combinados internamente e tratados como se fossem uma lista única.
Elementos `Resource` múltiplos: todos os elementos `Resource` são combinados internamente e tratados como se fossem uma lista única.
O mecanismo da política não permite salvar qualquer política com erros de sintaxe. Corrija os erros na política antes de salvá-los. Revise e corrija todas as recomendações de [validação de políticas](access_policies_policy-validator.md) para suas políticas.

 Em cada caso, a solução é remover o elemento extra incorreto. Para elementos `Effect`, é simples: se você deseja que o exemplo anterior *negue* permissões para instâncias do Amazon EC2, remova a linha `"Effect": "Allow",` da política da seguinte forma:

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Deny",
        "Action": "ec2:*",
        "Resource": "*"
      }
    }
```

------

No entanto, se o elemento duplicado é `Action` ou `Resource`, a resolução pode ser mais complicada. Você pode ter várias ações que deseja permitir (ou negar) ou você pode controlar o acesso de vários recursos. Por exemplo, o exemplo a seguir está incorreto porque tem vários elementos `Resource` (destacados em *vermelho*):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    }
```

------

Cada um dos elementos necessários em um objeto de valor em um elemento `Statement` pode estar presente somente uma vez. A solução é colocar cada valor em um conjunto. O exemplo a seguir ilustra isso transformando dois elementos separados do recurso em um elemento `Resource` com uma matriz como o objeto de valor (destacado em **negrito**):

------
#### [ JSON ]

****  

```
{	
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": [
          "arn:aws:s3:::amzn-s3-demo-bucket",
          "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ]
      }
    }
```

------

### Elemento de versão JSON ausente
<a name="missing-version"></a>

Um elemento de política `Version` é diferente de uma versão de política. O elemento de política `Version` é usado em uma política e define a versão da linguagem da política. Em comparação, uma versão da política é criada quando você altera uma política gerenciada pelo cliente no IAM. A política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. Para saber mais sobre o elemento de política `Version`, consulte [Elementos de política JSON do IAM: Version](reference_policies_elements_version.md). Para saber mais sobre as versões de política, consulte [Versionamento de políticas do IAM](access_policies_managed-versioning.md).

À medida que os recursos da AWS evoluem, novos recursos são adicionados às políticas do IAM para oferecer suporte a esses recursos. Às vezes, uma atualização da sintaxe da política inclui um novo número de versão. Se você usar os recursos mais recentes da gramática da política na sua política, será necessário saber qual versão do mecanismo de análise de política você está usando. A versão de política padrão é "2008-10-17." Se você deseja usar qualquer recurso de política que foi introduzido posteriormente, será necessário especificar o número da versão que dá suporte ao recurso desejado. Recomendamos que você *sempre* inclua o número da versão da sintaxe de política mais recente, que atualmente é `"Version": "2012-10-17"`. Por exemplo, a política a seguir está incorreta, pois usa uma variável `${...}` de política no ARN para um recurso. Mas ela não especifica uma versão de sintaxe de política que ofereça suporte às variáveis de política (realçada em *vermelho*):

```
{
  "Statement": 
  {
    "Action": "iam:*AccessKey*",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::123456789012:user/${aws:username}"
  }
}
```

Adicionar um elemento `Version` na parte superior da política com o valor `2012-10-17`, a primeira versão da API do IAM que oferece suporte às variáveis de política, resolve este problema (destacado em **negrito**):

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": 
  {
    "Action": "iam:*AccessKey*",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::123456789012:user/${aws:username}"
  }
}
```

------

# Solucionar problemas de chaves de acesso e chaves de segurança FIDO
<a name="troubleshoot_mfa-fido"></a>

Use estas informações para ajudá-lo a diagnosticar problemas comuns que você pode encontrar ao trabalhar com chaves de segurança FIDO2.

**Topics**
+ [Não consigo habilitar minha chave de segurança FIDO](#troubleshoot_mfa-fido-cant-enable)
+ [Não consigo fazer login usando minha chave de segurança FIDO](#troubleshoot_mfa-fido-signin)
+ [Perdi ou quebrei minha chave de segurança FIDO](#troubleshoot_mfa-fido-lost)
+ [Outros problemas](#troubleshoot_mfa-fido-other-issues)

## Não consigo habilitar minha chave de segurança FIDO
<a name="troubleshoot_mfa-fido-cant-enable"></a>

Consulte as soluções a seguir de acordo com seu status como um usuário ou administrador do sistema do IAM

### Usuários do IAM
<a name="troubleshoot_mfa-fido-cant-enable-iam-user"></a>

Se você não conseguir habilitar sua chave de segurança FIDO, verifique o seguinte:
+ Você está usando uma configuração com suporte?

  O IAM é compatível com dispositivos de segurança FIDO2 que se conectam aos dispositivos por USB, Bluetooth ou NFC. O IAM também é compatível com os autenticadores de plataforma, como TouchID ou FaceID. O IAM não oferece suporte ao registro de chave de acesso local para o Windows Hello. Para criar e usar chaves de acesso, os usuários do Windows devem usar a [autenticação entre dispositivos](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda), na qual você usa uma chave de acesso de um dispositivo, como um dispositivo móvel, ou uma chave de segurança de hardware, para entrar em outro dispositivo, como um laptop.

  Para obter informações sobre os dispositivos e navegadores que você pode usar com WebAuthn e AWS, consulte [Configurações compatíveis com o uso de chaves de acesso e chaves de segurança](id_credentials_mfa_fido_supported_configurations.md).
+ Você está usando algum plug-in de navegador?

  A AWS não é compatível com o uso de plug-ins para adicionar suporte de navegador a WebAuthn. Em vez disso, use um navegador que ofereça suporte nativo ao padrão WebAuthn.

  Mesmo que você esteja usando um navegador compatível, pode haver um plug-in que seja incompatível com WebAuthn. Um plug-in incompatível pode impedir você de habilitar e usar sua chave de segurança compatível com FIDO. Desabilite todos os plug-ins que possam ser incompatíveis e reinicie seu navegador. Em seguida, tente habilitar novamente a chave de segurança FIDO.
+ Você tem as permissões apropriadas?

  Se você não tiver qualquer um dos problemas de compatibilidade acima, talvez não tenha as permissões apropriadas. Entre em contato com o administrador do sistema. 

### Administradores de sistemas
<a name="troubleshoot_mfa-fido-cant-enable-sys-admin"></a>

Caso seus usuários do IAM não consigam habilitar as chaves de segurança FIDO mesmo usando uma configuração compatível, verifique as permissões deles. Para obter um exemplo detalhado, consulte [Tutorial do IAM: Permitir que os usuários gerenciem suas credenciais e configurações de MFA](tutorial_users-self-manage-mfa-and-creds.md).

## Não consigo fazer login usando minha chave de segurança FIDO
<a name="troubleshoot_mfa-fido-signin"></a>

Se você não conseguir se conectar ao Console de gerenciamento da AWS usando a chave de segurança FIDO, primeiro consulte [Configurações compatíveis com o uso de chaves de acesso e chaves de segurança](id_credentials_mfa_fido_supported_configurations.md). Se você estiver usando uma configuração com suporte mas não consegue fazer login, entre em contato com o administrador do sistema para obter assistência. 

## Perdi ou quebrei minha chave de segurança FIDO
<a name="troubleshoot_mfa-fido-lost"></a>

Até **oito** dispositivos de MFA de qualquer combinação dos [tipos de MFA atualmente compatíveis](https://aws.amazon.com/iam/features/mfa/) podem ser atribuídos a um usuário. Com vários dispositivos de MFA, basta um dispositivo de MFA para acessar o Console de gerenciamento da AWS. Substituir uma chave de segurança FIDO é semelhante a substituir um token de hardware TOTP. Se você perder ou quebrar qualquer tipo de dispositivo de MFA, consulte [Recuperar uma identidade protegida por MFA no IAM](id_credentials_mfa_lost-or-broken.md).

## Outros problemas
<a name="troubleshoot_mfa-fido-other-issues"></a>

Se você tiver um problema com chaves de segurança FIDO não tratado aqui, faça um os procedimentos a seguir:
+ Usuários do IAM: entre em contato com o administrador do sistema.
+ Usuários raiz da Conta da AWS: entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/).

# Solucionar problemas de perfis do IAM
<a name="troubleshoot_roles"></a>

Use estas informações para ajudar você a diagnosticar e corrigir problemas comuns que você pode encontrar ao trabalhar com funções do IAM.

**Topics**
+ [Não consigo assumir uma função](#troubleshoot_roles_cant-assume-role)
+ [Uma nova função apareceu na minha conta da AWS](#troubleshoot_roles_new-role-appeared)
+ [Não consigo editar ou excluir um perfil na minha Conta da AWS](#troubleshoot_roles_cant-edit-delete-role)
+ [Não estou autorizado a executar: iam:PassRole](#troubleshoot_roles_not-auth-passrole)
+ [Por que não é possível assumir uma função com uma sessão de 12 horas? (AWS CLI, API da AWS)](#troubleshoot_roles_cant-set-session)
+ [Recebo um erro quando tento alternar funções no console do IAM](#troubleshoot_roles_cant-switch-role-console)
+ [Minha função tem uma política que permite que eu execute uma ação, mas recebo a mensagem "access denied (acesso negado)"](#troubleshoot_roles_session-policy)
+ [O serviço não criou a versão da política padrão da função](#troubleshoot_serviceroles_edited-policy)
+ [Não há caso de uso para uma função de serviço no console](#troubleshoot_serviceroles_console-use-case)

## Não consigo assumir uma função
<a name="troubleshoot_roles_cant-assume-role"></a>

Verifique o seguinte:
+ Para permitir que os usuários assumam novamente o perfil atual em uma sessão de perfil, especifique o ARN do perfil ou o ARN da Conta da AWS como entidade principal na política de confiança do perfil. Os Serviços da AWS que fornecem recursos computacionais, como o Amazon EC2, Amazon ECS, Amazon EKS e Lambda, fornecem credenciais temporárias e atualizam automaticamente essas credenciais. Isso garante que você tenha sempre um conjunto de credenciais válido. Nesses serviços, não é necessário assumir novamente a função atual para obter credenciais temporárias. Porém, se pretender passar [tags de sessão](id_session-tags.md) ou uma [política de sessão](access_policies.md#policies_session), você precisará assumir novamente a função atual. Para saber como modificar uma política de confiança de função para adicionar o ARN da função de entidade principal ou o ARN da Conta da AWS, consulte [Atualizar a política de confiança de um perfil](id_roles_update-role-trust-policy.md).
+ Ao assumir uma função usando o Console de gerenciamento da AWS, use o nome exato da sua função. Os nomes das funções diferenciam letras maiúsculas de minúsculas quando uma função é assumida.
+ Ao assumir uma função usando a API do AWS STS ou a AWS CLI, use o nome exato da sua função no ARN. Os nomes das funções diferenciam letras maiúsculas de minúsculas quando uma função é assumida. 
+ Ao assumir um perfil usando um provedor de identidade federado baseado em SAML e com a criptografia SAML habilitada, certifique-se de ter carregado uma chave de descriptografia privada válida para o provedor de identidade SAML. Para obter mais informações, consulte [Gerenciar chaves de criptografia SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).
+ Verifique se a política do IAM concede a você permissão para chamar `sts:AssumeRole` para a função que você deseja assumir. O elemento `Action` da política do IAM deve permitir chamar a ação `AssumeRole`. Além disso, o elemento `Resource` da política do IAM deve especificar a função que você deseja assumir. Por exemplo, o elemento `Resource` pode especificar uma função pelo Amazon Resource Name (ARN – Nome de recurso da Amazon) ou usando um curinga (\$1). Por exemplo, pelo menos uma política aplicável a você deve conceder permissões semelhantes às seguintes:

  ```
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
  ```
+ Verifique se a identidade do IAM está etiquetada com alguma etiqueta exigida pela política do IAM. Por exemplo, nas permissões de política a seguir, o elemento `Condition` exige que você, como o principal que solicita assumir a função, tenha uma tag específica. Você deve estar marcado com `department = HR` ou `department = CS`. Do contrário, você não poderá pressupor a função. Para saber mais sobre como etiquetar usuários e funções do IAM, consulte [Tags para recursos do AWS Identity and Access Management](id_tags.md).

  ```
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {"StringEquals": {"aws:PrincipalTag/department": [
              "HR",
              "CS"
          ]}}
  ```
+ Verifique se você atende a todas as condições especificadas na política de confiança da função. Uma `Condition` pode especificar uma data de expiração, um ID externo ou que uma solicitação venha apenas de endereços IP específicos. Considere o seguinte exemplo: se a data atual for qualquer período após a data especificada, a política nunca será correspondida e não concederá a você a permissão para assumir a função.

  ```
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
      "Condition": {
          "DateLessThan" : {
              "aws:CurrentTime" : "2016-05-01T12:00:00Z"
          }
      }
  ```
+ Verifique se a Conta da AWS da qual você está chamando `AssumeRole` seja uma entidade confiável para o perfil que está assumindo. Entidades confiáveis são definidas como `Principal` em uma política de confiança da função. O exemplo a seguir é uma política de confiança anexada à função que você deseja assumir. Nesse exemplo, o ID da conta com o usuário do IAM com o qual você fez login deve ser 123456789012. Se o número da conta não estiver listado no elemento `Principal` da política de confiança da função, você não poderá assumir a função. Não importa quais permissões sejam concedidas a você nas políticas de acesso. Observe que a política de exemplo limita as permissões às ações que ocorrem entre 1° de julho de 2017 e 31 de dezembro de 2017 (UTC), inclusive. Se você fizer login antes ou depois dessas datas, a política não corresponderá e você não poderá assumir a função. 

  ```
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:root" },
      "Action": "sts:AssumeRole",
      "Condition": {
        "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"},
        "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"}
      }
  ```
+ **Identidade da origem**: os administradores podem configurar funções para exigir que identidades passem uma string personalizada que identifique a pessoa ou a aplicação que está executando ações na AWS, chamada *Identidade de origem*. Verifique se a função que está sendo assumida requer que uma identidade de origem esteja definida. Para obter mais informações sobre identidade de origem, consulte [Monitorar e controlar ações realizadas com funções assumidas](id_credentials_temp_control-access_monitor.md).

## Uma nova função apareceu na minha conta da AWS
<a name="troubleshoot_roles_new-role-appeared"></a>

Alguns serviços da AWS requerem que você use um tipo exclusivo de função de serviço que seja diretamente vinculada ao serviço. Essa [função vinculada ao serviço](id_roles.md#iam-term-service-linked-role) é predefinida pelo serviço e inclui todas as permissões que o serviço requer. Isso facilita a configuração de um serviço, pois você não precisa adicionar manualmente as permissões necessárias. Para obter informações gerais sobre funções vinculadas ao serviço, consulte [Criar um perfil vinculado ao serviço](id_roles_create-service-linked-role.md).

Você já pode estar usando um serviço quando ele começa a oferecer suporte a funções vinculadas ao serviço. Se esse for o caso, você pode receber um e-mail informando sobre uma nova função na sua conta. Essa função inclui todas as permissões de que o serviço precisa para executar ações em seu nome. Você não precisa realizar nenhuma ação para oferecer suporte a essa função. No entanto, você não deve excluir a função de sua conta. Isso pode remover permissões de que o serviço precisa para acessar recursos da AWS. Você pode visualizar as funções vinculadas ao serviço na sua conta acessando a página **Roles** (Funções) do console do IAM. As funções vinculadas ao serviço aparecem com **(Função vinculada ao serviço)** na coluna **Entidades confiáveis** da tabela.

Para obter informações sobre quais serviços oferecem suporte a funções vinculadas a serviços, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md) e procure os serviços que têm **Sim **na coluna **Função vinculada ao serviço**. Para obter informações sobre como usar a função vinculada a um serviço, escolha o link **Sim**.

## Não consigo editar ou excluir um perfil na minha Conta da AWS
<a name="troubleshoot_roles_cant-edit-delete-role"></a>

Você não pode excluir ou editar as permissões de uma [função vinculada ao serviço](id_roles.md#iam-term-service-linked-role) no IAM. Essas funções incluem confianças e permissões predefinidas exigidas pelo serviço para executar ações em seu nome. Você pode usar o console, a AWS CLI ou a API do IAM para editar somente a descrição de uma função vinculada ao serviço. Você pode visualizar as funções vinculadas ao serviço na sua conta acessando a página **Roles** (Funções) do IAM no console. As funções vinculadas ao serviço aparecem com **(Função vinculada ao serviço)** na coluna **Entidades confiáveis** da tabela. Um banner na página **Resumo** da função também indica que a função é uma função vinculada ao serviço. Você pode gerenciar e excluir essas funções apenas por meio do serviço vinculado, caso o serviço ofereça suporte para a ação. Tenha cuidado ao modificar ou excluir uma função vinculada ao serviço, pois isso pode remover permissões de que o serviço precisa para acessar recursos da AWS. 

Para obter informações sobre quais serviços oferecem suporte a funções vinculadas a serviços, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md) e procure os serviços que têm **Sim **na coluna **Função vinculada ao serviço**. 

## Não estou autorizado a executar: iam:PassRole
<a name="troubleshoot_roles_not-auth-passrole"></a>

Quando cria uma função vinculada ao serviço, você precisa ter permissão para passar essa função para o serviço. Alguns serviços criam automaticamente uma função vinculada ao serviço na sua conta quando você executa uma ação nesse serviço. Por exemplo, o Amazon EC2 Auto Scaling cria a função vinculada ao serviço `AWSServiceRoleForAutoScaling` para você quando você cria um grupo do Auto Scaling pela primeira vez. Se você tentar criar um grupo de Auto Scaling sem a permissão `PassRole`, receberá o seguinte erro:

`ClientError: An error occurred (AccessDenied) when calling the PutLifecycleHook operation: User: arn:aws:sts::111122223333:assumed-role/Testrole/Diego is not authorized to perform: iam:PassRole on resource: arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling`

Para corrigir este erro, peça ao administrador para adicionar a permissão `iam:PassRole` para você.

Para saber quais serviços dão suporte a funções vinculadas ao serviço, consulte [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md). Para saber se um serviço cria automaticamente uma função vinculada ao serviço para você, escolha o link **Sim** para visualizar a documentação da função vinculada ao serviço.

## Por que não é possível assumir uma função com uma sessão de 12 horas? (AWS CLI, API da AWS)
<a name="troubleshoot_roles_cant-set-session"></a>

Quando usa as operações de API AWS STS ou as operações da CLI `AssumeRole*` do `assume-role*` para assumir uma função, você pode especificar um valor para o parâmetro `DurationSeconds`. É possível especificar um valor de 900 segundos (15 minutos) até a configuração da **Duração máxima da sessão** para a função. Se você especificar um valor maior do que o configurado, a operação falhará. Essa configuração pode ter um valor máximo de 12 horas. Por exemplo, se você especificar uma duração de 12 horas para a sessão, mas o administrador definir a duração máxima da sessão como 6 horas, a operação falhará. Para saber como visualizar o valor máximo para sua função, consulte [Atualizar a duração máxima da sessão de um perfil](id_roles_update-role-settings.md#id_roles_update-session-duration). 

Se você usar o [*encadeamento de funções*](id_roles.md#iam-term-role-chaining) (usar uma função para assumir uma segunda função), sua sessão será limitada a um máximo de uma hora. Se você usar o parâmetro `DurationSeconds` para fornecer um valor maior do que uma hora, a operação falhará. 

## Recebo um erro quando tento alternar funções no console do IAM
<a name="troubleshoot_roles_cant-switch-role-console"></a>

As informações inseridas na página **Trocar de função** devem corresponder às informações da função. Caso contrário, a operação falha e você recebe o seguinte erro:

`Invalid information in one or more fields. Check your information or contact your administrator.`

Se você receber esse erro, confirme se as seguintes informações estão corretas:
+ **ID ou alias da conta**: o ID da Conta da AWS é um número de 12 dígitos. Sua conta pode ter um alias, que é um identificador fácil, como o nome da empresa, que pode ser usado em vez do ID da Conta da AWS. É possível usar o ID ou o alias da conta nesse campo.
+ **Nome da função**: os nomes das funções diferenciam letras maiúsculas de minúsculas. O ID da conta e o nome da função devem corresponder ao que está configurado para a função.

Se continuar a receber uma mensagem de erro, entre em contato com o administrador para verificar as informações anteriores. A política de confiança de função ou a política de usuário do IAM pode limitar o acesso. O administrador pode verificar as permissões para essas políticas.

## Minha função tem uma política que permite que eu execute uma ação, mas recebo a mensagem "access denied (acesso negado)"
<a name="troubleshoot_roles_session-policy"></a>

Sua sessão de função pode estar limitada por políticas de sessão. Quando [solicita credenciais de segurança temporárias](id_credentials_temp_request.md) de forma programática usando o AWS STS, você pode opcionalmente passar [políticas de sessão](access_policies.md#policies_session) em linha ou gerenciadas. As políticas de sessão são políticas avançadas que você passa como um parâmetro ao criar uma sessão de credenciais temporárias de forma programática para uma função. É possível passar um único documento de política JSON de sessão em linha usando o parâmetro `Policy`. É possível usar o parâmetro `PolicyArns` para especificar até 10 políticas de sessão gerenciadas. As permissões da sessão resultante são a interseção das políticas baseadas em identidade da função e das políticas de sessão. Como alternativa, se o administrador ou um programa personalizado fornecer credenciais temporárias a você, ele poderá incluir uma política de sessão para limitar seu acesso.

## O serviço não criou a versão da política padrão da função
<a name="troubleshoot_serviceroles_edited-policy"></a>

Uma função de serviço é uma função que um serviço assume para realizar ações em seu nome na sua conta. Ao configurar alguns ambientes de serviço da AWS, você deve definir uma função a ser assumida pelo serviço. Em alguns casos, o serviço cria a função de serviço e sua política no IAM para você. Embora você possa modificar ou excluir a função de serviço e sua política no IAM, a AWS não recomenda fazer isso. A função e a política devem ser utilizadas apenas por esse serviço. Se você editar a política e configurar outro ambiente, quando o serviço tentar usar a mesma função e política, a operação poderá falhar.

Por exemplo, quando você usa o AWS CodeBuild pela primeira vez, o serviço cria uma função chamada `codebuild-RWBCore-service-role`. Essa função de serviço usa a política chamada `codebuild-RWBCore-managed-policy`. Se você editar a política, ela criará outra versão e salvará essa versão como padrão. Se você executar uma operação subsequente no AWS CodeBuild, o serviço poderá tentar atualizar a política. Se isso acontecer, você receberá o seguinte erro:

`codebuild.amazon.com did not create the default version (V2) of the codebuild-RWBCore-managed-policy policy that is attached to the codebuild-RWBCore-service-role role. To continue, detach the policy from any other identities and then delete the policy and the role.`

Se você receber esse erro, faça alterações no IAM antes de continuar com a operação do serviço. Primeiro, defina a versão de política padrão como V1 e tente executar a operação novamente. Se V1 tiver sido excluída anteriormente ou se escolher V1 não funcionar, limpe e exclua a política e a função existentes.

Para obter mais informações sobre como editar políticas gerenciadas, consulte [Edição de políticas gerenciadas pelo cliente (console)](access_policies_manage-edit-console.md#edit-customer-managed-policy-console). Para obter mais informações sobre as versões de política, consulte [Versionamento de políticas do IAM](access_policies_managed-versioning.md). 

**Como excluir uma função de serviço e sua política**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas**.

1. Na lista de políticas, escolha o nome da política que deseja excluir.

1. Escolha a guia **Entidades anexadas** para visualizar quais usuários, grupos ou perfis do IAM usam essa política. Se qualquer uma dessas identidades usar a política, conclua as seguintes tarefas:

   1. Crie uma política gerenciada com as permissões necessárias. Para garantir que as identidades tenham as mesmas permissões antes e depois de suas ações, copie o documento de política JSON da política existente. Depois, crie a nova política gerenciada e cole o documento JSON como descrito em [Criar políticas usando o editor de JSON](access_policies_create-console.md#access_policies_create-json-editor).

   1. Para cada identidade afetada, anexe a nova política e desanexe a antiga. Para obter mais informações, consulte [Adicionar e remover permissões de identidade do IAM](access_policies_manage-attach-detach.md).

1. No painel de navegação, escolha **Perfis**.

1. Na lista de funções, escolha o nome da função que deseja excluir.

1. Selecione a guia **Relações de confiança** para visualizar quais entidades podem assumir a função. Se qualquer entidade diferente do serviço estiver listada, conclua as seguintes tarefas:

   1. [Crie uma função](id_roles_create_for-user.md#roles-creatingrole-user-console) que confie nessas entidades.

   1. A política criada na etapa anterior. Se você pulou essa etapa, crie a política gerenciada agora.

   1. Notifique as pessoas que estavam assumindo a função de que elas não podem mais fazer isso. Forneça informações sobre como assumir a nova função e ter as mesmas permissões.

1. [Exclua a política](access_policies_manage-delete-console.md#delete-customer-managed-policy-console).

1. [Exclua o perfil](id_roles_manage_delete.md#roles-managingrole-deleting-console).

## Não há caso de uso para uma função de serviço no console
<a name="troubleshoot_serviceroles_console-use-case"></a>

Alguns serviços exigem que você crie manualmente uma função de serviço para conceder permissões de serviço para executar ações em seu nome. Se o serviço não estiver listado no console do IAM, você deverá listar manualmente o serviço como a entidade confiável. Se a documentação do serviço ou recurso que você estiver usando não incluir instruções para listar o serviço como o principal confiável, forneça feedback para a página.

Para criar uma função de serviço manualmente, você precisa saber o [principal do serviço](reference_policies_elements_principal.md#principal-services) para o serviço que assumirá a função. Um principal do serviço é um identificador que é usado para conceder permissões a um serviço. O escopo principal do serviço é definido pelo serviço. 

Você pode encontrar o principal de serviço para alguns serviços, verificando o seguinte:

1. Abra o [AWSServiços da que funcionam com o IAM](reference_aws-services-that-work-with-iam.md).

1. Verifique se o serviço mostra **Sim** na coluna **Service-linked roles (Funções vinculadas ao serviço)**.

1. Escolha o link **Sim** para visualizar a documentação do perfil vinculado a serviço desse serviço.

1. Localize a seção Service-Linked Role Permissions (Permissões da função vinculada ao serviço) desse serviço para visualizar o [principal do serviço](reference_policies_elements_principal.md#principal-services).

Criar uma função de serviço manualmente usando [AWS CLI comandos](id_roles_create_for-service.md#roles-creatingrole-service-cli) ou operações de[AWS API](id_roles_create_for-service.md#roles-creatingrole-service-api). Para criar manualmente uma função de serviço usando o console do IAM, conclua as seguintes tarefas:

1. Crie uma função do IAM usando o ID da conta. Não associe uma política nem conceda nenhuma permissão. Para obter detalhes, consulte [Criar um perfil para conceder permissões a um usuário do IAM](id_roles_create_for-user.md).

1. Abra a função e edite o relacionamento de confiança. Em vez de confiar na conta, a função deve confiar no serviço. Por exemplo, atualize o seguinte elemento `Principal`:

   ```
   "Principal": { "AWS": "arn:aws:iam::123456789012:root" }
   ```

   Altere a entidade para o valor do seu serviço, como IAM.

   ```
   "Principal": { "Service": "iam.amazonaws.com" }
   ```

1. Adicione as permissões que o serviço exige associando políticas de permissões à função.

1. Retorne ao serviço que exige as permissões e use o método documentado para notificar o serviço sobre a nova função de serviço.

# Solucionar problemas do IAM e Amazon EC2
<a name="troubleshoot_iam-ec2"></a>

As informações a seguir podem ajudar você a solucionar problemas do IAM com o Amazon EC2.

**Topics**
+ [Ao tentar iniciar uma instância, não vejo o perfil na lista de **perfis do IAM** do console do Amazon EC2](#troubleshoot_iam-ec2_missingrole)
+ [As credenciais na minha instância são da função incorreta](#troubleshoot_iam-ec2_wrongrole)
+ [Quando tento chamar `AddRoleToInstanceProfile`, recebo um erro `AccessDenied`.](#troubleshoot_iam-ec2_access-denied-adding-role)
+ [Amazon EC2: quando tento iniciar uma instância com um perfil, recebo um erro `AccessDenied`](#troubleshoot_iam-ec2_access-denied-launch)
+ [Não é possível acessar as credenciais de segurança temporárias em minha instância do EC2.](#troubleshoot_iam-ec2_no-keys)
+ [O que os erros do documento `info` na subárvore do IAM significam?](#troubleshoot_iam-ec2_errors-info-doc)

## Ao tentar iniciar uma instância, não vejo o perfil na lista de **perfis do IAM** do console do Amazon EC2
<a name="troubleshoot_iam-ec2_missingrole"></a>

Verifique o seguinte:
+ Se você estiver conectado a um usuário do IAM, verifique se tem permissão para chamar `ListInstanceProfiles`. Para obter mais informações sobre as permissões necessárias para trabalhar com perfis, consulte [Permissões necessárias para usar funções com o Amazon EC2](id_roles_use_switch-role-ec2.md#roles-usingrole-ec2instance-permissions). Para obter informações sobre como adicionar permissões a um usuário, consulte [Gerenciar políticas do IAM](access_policies_manage.md).

  Se você não puder modificar suas próprias permissões, deverá entrar em contato com um administrador que possa trabalhar com o IAM para atualizar suas permissões.
+ Se você criou um perfil usando a CLI ou a API do IAM, verifique as seguintes condições:
  + Você criou um perfil de instância e adicionou o perfil a ele.
  + Você usou o mesmo nome para o perfil e o perfil de instância. Se você nomear seu perfil e o perfil de instância de forma diferente, não verá o nome correto do perfil no console do Amazon EC2.

  A lista **IAM Role** (Função do IAM) no console do Amazon EC2 lista os nomes dos perfis de instância, não os nomes das funções. Você precisará selecionar o nome do perfil de instância que contém a função desejada. Para obter detalhes sobre os perfis de instância, consulte [Usar perfis de instância](id_roles_use_switch-role-ec2_instance-profiles.md).
**nota**  
Se você usar o console do IAM para criar funções, não precisará trabalhar com perfis de instância. Para cada função criada no console do IAM, um perfil de instância é criado com o mesmo nome da função, e a função é automaticamente adicionada a esse perfil. Um perfil de instância pode conter somente uma função do IAM e esse limite não pode ser aumentado.

## As credenciais na minha instância são da função incorreta
<a name="troubleshoot_iam-ec2_wrongrole"></a>

A função no perfil da instância pode ter sido substituída recentemente. Nesse caso, seu aplicativo precisará aguardar a próxima rotação de credenciais programada automaticamente para que as credenciais de sua função fiquem disponíveis.

Para forçar a alteração, [desassocie o perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html), [associe o perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), ou interrompa a instância e, em seguida, reinicie-a.

## Quando tento chamar `AddRoleToInstanceProfile`, recebo um erro `AccessDenied`.
<a name="troubleshoot_iam-ec2_access-denied-adding-role"></a>

Se você estiver fazendo solicitações como um usuário IAM, verifique se tem as seguintes permissões:
+ `iam:AddRoleToInstanceProfile` com o recurso correspondente ao nome de região da Amazon (ARN) do perfil da instância (por exemplo, `arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile`). 

Para obter mais informações sobre as permissões necessárias para trabalhar com perfis, consulte [Como faço para começar?](id_roles_use_switch-role-ec2.md#roles-usingrole-ec2instance-get-started). Para obter informações sobre como adicionar permissões a um usuário, consulte [Gerenciar políticas do IAM](access_policies_manage.md).

## Amazon EC2: quando tento iniciar uma instância com um perfil, recebo um erro `AccessDenied`
<a name="troubleshoot_iam-ec2_access-denied-launch"></a>

Verifique o seguinte:
+ Execute uma instância sem um perfil de instância. Isso ajudará a garantir que o problema seja limitado às funções do IAM para instâncias do Amazon EC2.
+ Se você estiver fazendo solicitações como um usuário IAM, verifique se tem as seguintes permissões:
  + `ec2:RunInstances` com um caractere curinga ("\$1")
  + `iam:PassRole` com o recurso correspondente ao nome de região da Amazon (ARN) da função (por exemplo, `arn:aws:iam::999999999999:role/ExampleRoleName`)
+ Chame a ação `GetInstanceProfile` do IAM para garantir que você esteja usando um nome de perfil de instância válido ou um ARN de perfil de instância válido. Para obter mais informações, consulte [Usar funções IAM com instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances).
+ Chame a ação `GetInstanceProfile` do IAM para garantir que o perfil da instância tenha uma função. Ocorrerá falha em perfis de instância vazias com o erro `AccessDenied`. Para obter mais informações sobre a criação de uma função, consulte [Criar um perfil do IAM](id_roles_create.md).

Para obter mais informações sobre as permissões necessárias para trabalhar com perfis, consulte [Como faço para começar?](id_roles_use_switch-role-ec2.md#roles-usingrole-ec2instance-get-started). Para obter informações sobre como adicionar permissões a um usuário, consulte [Gerenciar políticas do IAM](access_policies_manage.md). 

## Não é possível acessar as credenciais de segurança temporárias em minha instância do EC2.
<a name="troubleshoot_iam-ec2_no-keys"></a>

Para acessar credenciais de segurança temporárias em sua instância do EC2, você deve primeiro usar o console do IAM para criar uma função. Depois, execute uma instância do EC2 que usa essa função e examine a instância em execução. Para obter mais informações, consulte **How Do I Get Started? (Como começar?)** em [Use um perfil do IAM para conceder permissões a aplicações em execução em instâncias do Amazon EC2](id_roles_use_switch-role-ec2.md).

Se você ainda não conseguir acessar as credenciais de segurança temporárias na instância do EC2, verifique o seguinte:
+ É possível acessar outra parte do serviço de metadados da instância (IMDS)? Se não, verifique se não há regras de firewall bloqueando o acesso a solicitações para o IMDS.

  ```
  [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/hostname; echo
  ```
+ A subárvore `iam` do IMDS existe? Caso não exista, verifique se sua instância tem um perfil de instância do IAM associado a ela chamando a operação de API `DescribeInstances` do EC2 ou usando o comando `aws ec2 describe-instances` da CLI. 

  ```
  [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam; echo
  ```
+ Verifique se há erro no documento `info` na subárvore do IAM. Se houver erro, consulte [O que os erros do documento `info` na subárvore do IAM significam?](#troubleshoot_iam-ec2_errors-info-doc) para obter mais informações.

  ```
  [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam/info; echo
  ```

## O que os erros do documento `info` na subárvore do IAM significam?
<a name="troubleshoot_iam-ec2_errors-info-doc"></a>

### O documento `iam/info` indica `"Code":"InstanceProfileNotFound"`
<a name="troubleshoot_iam-ec2_errors-info-doc-profile-not-found"></a>

Seu perfil de instância do IAM foi excluído e o Amazon EC2 não pode mais fornecer credenciais para sua instância. Você deve anexar um perfil de instância válido à sua instância do Amazon EC2.

Se houver um perfil de instância com esse nome, verifique se o perfil não foi excluído e outro foi criado com o mesmo nome:

1. Chame a operação `GetInstanceProfile` do IAM para obter o `InstanceProfileId`.

1. Chame a operação `DescribeInstances` do Amazon EC2 para obter o `IamInstanceProfileId` para a instância.

1. Verifique se o `InstanceProfileId` da operação do IAM corresponde ao `IamInstanceProfileId` da operação do Amazon EC2.

Se os IDs forem diferentes, o perfil de instância anexado às suas instâncias não será mais válido. Você deve anexar um perfil de instância válido à instância. 

### O documento `iam/info` indica um sucesso, mas indica `"Message":"Instance Profile does not contain a role..."`
<a name="troubleshoot_iam-ec2_errors-info-doc-no-role"></a>

A função foi removida do perfil da instância pela ação `RemoveRoleFromInstanceProfile` do IAM. Você pode usar a ação `AddRoleToInstanceProfile` do IAM para anexar uma função ao perfil da instância. O aplicativo precisará aguardar até que a próxima atualização programada acesse as credenciais para a função. 

Para forçar a alteração, [desassocie o perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html), [associe o perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), ou interrompa a instância e, em seguida, reinicie-a.

### O documento `iam/security-credentials/[role-name]` indica `"Code":"AssumeRoleUnauthorizedAccess"`
<a name="troubleshoot_iam-ec2_errors-info-doc-unauthorized-access"></a>

O Amazon EC2 não tem permissão para assumir a função. A permissão para assumir a função é controlada pela política de confiança anexada à função, como o exemplo a seguir. Use a API `UpdateAssumeRolePolicy` do IAM para atualizar a política de confiança. 

------
#### [ JSON ]

****  

```
{"Version":"2012-10-17",		 	 	 "Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}
```

------

O aplicativo precisará aguardar até que a próxima atualização programada automaticamente acesse as credenciais para a função.

Para forçar a alteração, [desassocie o perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html), [associe o perfil de instância](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), ou interrompa a instância e, em seguida, reinicie-a.

# Solucionar problemas do IAM e Amazon S3
<a name="troubleshoot_iam-s3"></a>

Use estas informações para ajudar você a solucionar e corrigir problemas que você pode encontrar ao trabalhar com o Amazon S3 e o IAM.

## Como faço para conceder acesso anônimo a um bucket do Amazon S3?
<a name="troubleshoot_iam-s3_anonymous-bucket-access"></a>

Você pode usar uma política de bucket do Amazon S3 que especifique um caractere curinga (\$1) no elemento `principal`, o que significa que qualquer pessoa pode acessar o bucket. Com o acesso anônimo, qualquer pessoa (incluindo usuários sem uma Conta da AWS), poderá acessar o bucket. Para obter uma amostra de política, consulte [Casos de exemplo para políticas de bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html) no *Guia do usuário do Amazon Simple Storage Service*.

## Estou conectado como um usuário-raiz da Conta da AWS. Por que não consigo acessar um bucket do Amazon S3 com minha conta?
<a name="troubleshoot_iam-s3_root-bucket-access"></a>

Em alguns casos, você pode ter um usuário do IAM com acesso total ao IAM e ao Amazon S3. Se o usuário do IAM atribuir uma política de bucket a um bucket do Amazon S3 e não especificar o usuário raiz da como uma entidade de segurança, o usuário raiz terá o acesso negado a esse bucket. No entanto, como o usuário raiz, você ainda pode acessar o bucket. Para fazer isso, modifique a política de bucket para permitir o acesso do usuário raiz no console do Amazon S3 ou da AWS CLI. Use a seguinte entidade principal, substituindo *123456789012* pelo ID da Conta da AWS.

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

# Solucionar problemas de federação do SAML com o IAM
<a name="troubleshoot_saml"></a>

Use estas informações para ajudá-lo a diagnosticar e corrigir problemas que encontrar ao trabalhar com o SAML 2.0 e a federação com o AWS Identity and Access Management.

**Topics**
+ [Erro: sua solicitação incluiu uma resposta SAML inválida. Para sair, clique aqui.](#troubleshoot_saml_invalid-response)
+ [Erro: RoleSessionName é necessário em AuthnResponse (serviço: AWSSecurityTokenService; código de status: 400; código de erro: InvalidIdentityToken)](#troubleshoot_saml_missing-rolesessionname)
+ [Erro: sem autorização para executar sts:AssumeRoleWithSAML (serviço: AWSSecurityTokenService; código de status: 403; código de erro: AccessDenied)](#troubleshoot_saml_missing-role)
+ [Erro: RoleSessionName em AuthnResponse deve corresponder a [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 (serviço: AWSSecurityTokenService; código de status: 400; código de erro: InvalidIdentityToken)](#troubleshoot_saml_invalid-rolesessionname)
+ [Erro: A identidade-fonte deve corresponder a [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 e não começar com `"aws:"` (serviço: AWSSecurityTokenService; código do status: 400; código do erro: InvalidIdentityToken)](#troubleshoot_saml_invalid-sourceidentity)
+ [Erro: assinatura inválida da resposta (serviço: AWSSecurityTokenService; código de status 400; código de erro: InvalidIdentityToken)](#troubleshoot_saml_invalid-metadata)
+ [Erro: chave privada inválida.](#troubleshoot_saml_invalid-private-key)
+ [Erro: falha ao remover chave privada.](#troubleshoot_saml_invalid-remove-key)
+ [Erro: falha ao remover a chave privada porque a ID da chave não corresponde a uma chave privada.](#troubleshoot_saml_invalid-remove-key-mismatch)
+ [Erro: falha ao assumir a função: emissor ausente no provedor especificado (serviço: AWSOpenIdDiscoveryService; código de status: 400; código de erro: AuthSamlInvalidSamlResponseException)](#troubleshoot_saml_issuer-mismatch)
+ [Erro: não foi possível analisar os metadados.](#troubleshoot_saml_issuer-metadata)
+ [Erro: não é possível atualizar o provedor de identidade. Não há nenhuma atualização definida para metadados ou declaração de criptografia.](#troubleshoot_saml_unable-to-update)
+ [Erro: não é possível definir o modo de criptografia de declaração como Obrigatório porque nenhuma chave privada foi fornecida.](#troubleshoot_saml_issuer-private-key-required)
+ [Erro: não é possível adicionar e remover chaves privadas na mesma solicitação. Defina um valor apenas para um dos dois parâmetros.](#troubleshoot_saml_add-remove-keys)
+ [Erro: o provedor especificado não existe.](#troubleshoot_saml_provider-doesnotexist)
+ [Erro: o valor de DurationSeconds solicitado excede o valor de MaxSessionDuration definido para esta função.](#troubleshoot_saml_duration-exceeds)
+ [Erro: limite máximo de 2 chaves privadas atingido.](#troubleshoot_saml_private-key-exceeds)
+ [Erro: a resposta não contém o público necessário.](#troubleshoot_saml_required-audience)

## Erro: sua solicitação incluiu uma resposta SAML inválida. Para sair, clique aqui.
<a name="troubleshoot_saml_invalid-response"></a>

Esse erro pode ocorrer quando a resposta do SAML do provedor de identidade não incluir um atributo com o `Name` definido como `https://aws.amazon.com/SAML/Attributes/Role`. O atributo deve conter um ou mais elementos `AttributeValue`, cada um contendo um par de strings separado por vírgulas:
+ O ARN de uma função para a qual o usuário pode ser mapeado
+ O ARN do provedor SAML

O erro também pode ocorrer quando os valores do atributo SAML enviados pelo provedor de identidade têm um espaço em branco à esquerda ou à direita ou outros caracteres inválidos nos valores do atributo SAML. Para obter mais informações sobre os valores esperados para os atributos SAML, consulte [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md)

Para obter mais informações, consulte [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md). Para visualizar a resposta do SAML no navegador, siga as etapas listadas em [Visualizar uma resposta do SAML no navegador](troubleshoot_saml_view-saml-response.md).

## Erro: RoleSessionName é necessário em AuthnResponse (serviço: AWSSecurityTokenService; código de status: 400; código de erro: InvalidIdentityToken)
<a name="troubleshoot_saml_missing-rolesessionname"></a>

Esse erro pode ocorrer quando a resposta do SAML do provedor de identidade não incluir um atributo com o `Name` definido como `https://aws.amazon.com/SAML/Attributes/RoleSessionName`. O valor do atributo é um identificador para o usuário e, geralmente, é um ID do usuário ou um endereço de e-mail.

Para obter mais informações, consulte [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md). Para visualizar a resposta do SAML no navegador, siga as etapas listadas em [Visualizar uma resposta do SAML no navegador](troubleshoot_saml_view-saml-response.md).

## Erro: sem autorização para executar sts:AssumeRoleWithSAML (serviço: AWSSecurityTokenService; código de status: 403; código de erro: AccessDenied)
<a name="troubleshoot_saml_missing-role"></a>

Esse erro pode ocorrer se a função do IAM especificada na resposta do SAML estiver digitada incorretamente ou não existir. Use o nome exato da sua função, porque os nomes de função diferenciam maiúsculas de minúsculas. Corrija o nome da função na configuração do provedor de serviços do SAML.

Você terá o acesso permitido somente se a política de confiança da função incluir a ação `sts:AssumeRoleWithSAML`. Se a sua declaração SAML for configurada para usar o [atributo `PrincipalTag`](id_roles_providers_create_saml_assertions.md#saml_role-session-tags), a política de confiança também deverá incluir a ação `sts:TagSession`. Para obter mais informações sobre tags de sessão, consulte [Passar tags de sessão no AWS STS](id_session-tags.md).

Esse erro pode ocorrer se você não tiver permissões `sts:SetSourceIdentity` em sua política de confiança de função. Se a sua declaração SAML for configurada para usar o atributo [`SourceIdentity`](id_roles_providers_create_saml_assertions.md#saml_sourceidentity), a política de confiança também deverá incluir a ação `sts:SetSourceIdentity`. Para obter mais informações sobre identidade-fonte, consulte [Monitorar e controlar ações realizadas com funções assumidas](id_credentials_temp_control-access_monitor.md).

Esse erro também poderá ocorrer se uma entidade principal federada não tiver permissões para assumir o perfil. A função deve ter uma política de confiança que especifique o ARN do provedor de identidade SAML do IAM como `Principal`. A função também contém as condições que controlam quais usuários podem assumir a função. Certifique-se de que os usuários atendam aos requisitos das condições.

Esse erro também pode ocorrer se a resposta do SAML não incluir um `Subject` contendo um `NameID`.

Para obter mais informações, consulte [Habilitar o acesso das entidades principais federadas do SAML 2.0 ao Console de gerenciamento da AWS](id_roles_providers_enable-console-saml.md) e [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md). Para visualizar a resposta do SAML no navegador, siga as etapas listadas em [Visualizar uma resposta do SAML no navegador](troubleshoot_saml_view-saml-response.md).

## Erro: RoleSessionName em AuthnResponse deve corresponder a [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 (serviço: AWSSecurityTokenService; código de status: 400; código de erro: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-rolesessionname"></a>

Esse erro pode ocorrer se o valor do atributo `RoleSessionName` for muito longo ou contiver caracteres inválidos. O comprimento máximo válido é de 64 caracteres.

Para obter mais informações, consulte [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md). Para visualizar a resposta do SAML no navegador, siga as etapas listadas em [Visualizar uma resposta do SAML no navegador](troubleshoot_saml_view-saml-response.md).

## Erro: A identidade-fonte deve corresponder a [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 e não começar com `"aws:"` (serviço: AWSSecurityTokenService; código do status: 400; código do erro: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-sourceidentity"></a>

Esse erro pode ocorrer se o valor do atributo `sourceIdentity` for muito longo ou contiver caracteres inválidos. O comprimento máximo válido é de 64 caracteres. Para obter mais informações sobre identidade-fonte, consulte [Monitorar e controlar ações realizadas com funções assumidas](id_credentials_temp_control-access_monitor.md).

Para obter mais informações sobre como criar declarações SAML, consulte [Configurar declarações SAML para a resposta de autenticação](id_roles_providers_create_saml_assertions.md). Para visualizar a resposta do SAML no navegador, siga as etapas listadas em [Visualizar uma resposta do SAML no navegador](troubleshoot_saml_view-saml-response.md).

## Erro: assinatura inválida da resposta (serviço: AWSSecurityTokenService; código de status 400; código de erro: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-metadata"></a>

Esse erro poderá ocorrer quando os metadados de federação do provedor de identidade não corresponderem aos metadados do provedor de identidade do IAM. Por exemplo, o arquivo de metadados para o provedor de serviços de identidade pode ter sido alterado para atualizar um certificado expirado. Faça download do arquivo de metadados SAML atualizado a partir de seu provedor de serviços de identidade. Atualize-o na entidade do provedor de identidade da AWS que você define no IAM com o comando da CLI entre plataformas `aws iam update-saml-provider` ou o cmdlet `Update-IAMSAMLProvider` do PowerShell.

## Erro: chave privada inválida.
<a name="troubleshoot_saml_invalid-private-key"></a>

Esse erro pode ocorrer quando você não formata adequadamente seu arquivo de chave privada. Esse erro pode fornecer detalhes adicionais sobre o motivo da invalidade da chave privada:
+ A chave está criptografada.
+ O formato da chave não é reconhecido. O arquivo de chave privada deve ser um arquivo .pem.

Ao [Criar um provedor de identidades SAML no IAM](id_roles_providers_create_saml.md) no Console de gerenciamento da AWS, você deve baixar a chave privada do seu provedor de identidade para fornecer ao IAM a fim de habilitar a criptografia. A chave privada deve ser um arquivo .pem que use o algoritmo de criptografia AES-GCM ou AES-CBC para descriptografar declarações SAML.

## Erro: falha ao remover chave privada.
<a name="troubleshoot_saml_invalid-remove-key"></a>

Esse erro pode ocorrer quando a criptografia SAML estiver definida como Obrigatória e sua solicitação possa remover a única chave de descriptografia privada do provedor de SAML do IAM. Para obter mais informações sobre a alternância de chaves privadas, consulte [Gerenciar chaves de criptografia SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Erro: falha ao remover a chave privada porque a ID da chave não corresponde a uma chave privada.
<a name="troubleshoot_saml_invalid-remove-key-mismatch"></a>

Esse erro pode ocorrer se o valor `keyId` da chave privada não corresponder a nenhum dos IDs de chave dos arquivos de chave privada do provedor de identidade.

Quando você usa as operações de API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) ou [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para remover chaves privadas de criptografia SAML, o valor em `RemovePrivateKey` deve ser um ID de chave válido para uma chave privada anexada ao seu provedor de identidade.

## Erro: falha ao assumir a função: emissor ausente no provedor especificado (serviço: AWSOpenIdDiscoveryService; código de status: 400; código de erro: AuthSamlInvalidSamlResponseException)
<a name="troubleshoot_saml_issuer-mismatch"></a>

Esse erro poderá ocorrer se o emissor na resposta do SAML não corresponder ao emissor declarado no arquivo de metadados da federação. O arquivo de metadados foi carregado na AWS quando você criou o provedor de identidade no IAM.

## Erro: não foi possível analisar os metadados.
<a name="troubleshoot_saml_issuer-metadata"></a>

Este erro poderá ocorrer se você não formatar adequadamente seu arquivo de metadados.

Quando você [criar ou gerenciar um provedor de identidade do SAML](id_roles_providers_create_saml.md#idp-manage-identityprovider-console) no Console de gerenciamento da AWS, deverá recuperar o documento de metadados do SAML do seu provedor de identidade.

Esse arquivo de metadados inclui o nome do emissor, informações de validade e chaves que podem ser usadas para validar a resposta de autenticação do SAML (declarações) que são recebidas do IdP. O arquivo de metadados deve ser codificado no formato UTF-8 sem a marca de ordem de bytes (BOM). Para remover a BOM, você pode codificar o arquivo como UTF-8 usando uma ferramenta de edição de texto, como o Notepad\$1\$1.

O certificado x.509 incluído como parte do documento de metadados do SAML deve usar um tamanho de chave de, pelo menos, 1.024 bits. Além disso, o certificado x.509 também deve estar livre de extensões repetidas. É possível usar extensões, mas elas só podem aparecer uma vez no certificado. Se o certificado x.509 não atender a nenhuma das condições, a criação do IdP vai falhar e retornar um erro “Unable to parse metadata”.

Conforme definido pela [Versão 1.0 do Perfil de Interoperabilidade de Metadados do SAML V2.0](https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.html), o IAM não avalia nem toma medidas em relação à expiração dos certificados X.509 em documentos de metadados do SAML. Caso não esteja preocupado com certificados X.509 expirados, recomendamos monitorar as datas de expiração dos certificados e alterná-los de acordo com as políticas de governança e segurança da sua organização.

## Erro: não é possível atualizar o provedor de identidade. Não há nenhuma atualização definida para metadados ou declaração de criptografia.
<a name="troubleshoot_saml_unable-to-update"></a>

Esse erro pode ocorrer se você usar as operações `update-saml-provider` da CLI ou `UpdateSAMLProvider` da API, mas não fornecer valores de atualização nos parâmetros da solicitação. Para obter mais informações sobre como atualizar seu provedor de SAML do IAM, consulte [Criar um provedor de identidades SAML no IAM](id_roles_providers_create_saml.md).

## Erro: não é possível definir o modo de criptografia de declaração como Obrigatório porque nenhuma chave privada foi fornecida.
<a name="troubleshoot_saml_issuer-private-key-required"></a>

Esse erro pode ocorrer quando você ainda não tiver feito upload de uma chave de decodificação privada e tentar definir a criptografia SAML como Obrigatória sem incluir uma chave privada em sua solicitação.

Certifique-se de que haja uma chave privada definida para seu provedor de SAML do IAM ao usar as operações `create-saml-provider` da CLI, `CreateSAMLProvider` da API, `update-saml-provider` da CLI `UpdateSAMLProvider` ou da API para exigir declarações de SAML criptografadas. 

## Erro: não é possível adicionar e remover chaves privadas na mesma solicitação. Defina um valor apenas para um dos dois parâmetros.
<a name="troubleshoot_saml_add-remove-keys"></a>

Esse erro pode ocorrer quando os valores de adição e remoção de chaves privadas estão incluídos na mesma solicitação.

Ao usar as operações de API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) ou [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para alternar arquivos de chave privada de criptografia SAML, você só pode adicionar ou remover uma chave privada na sua solicitação. Se você adicionar uma chave privada ao remover uma chave privada, a operação falhará. Para obter mais informações sobre a alternância de chaves privadas, consulte [Gerenciar chaves de criptografia SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Erro: o provedor especificado não existe.
<a name="troubleshoot_saml_provider-doesnotexist"></a>

Esse erro pode ocorrer se o nome do provedor na asserção do SAML não corresponder ao nome do provedor no IAM. Para obter mais informações sobre como visualizar o nome do provedor, consulte [Criar um provedor de identidades SAML no IAM](id_roles_providers_create_saml.md).

## Erro: o valor de DurationSeconds solicitado excede o valor de MaxSessionDuration definido para esta função.
<a name="troubleshoot_saml_duration-exceeds"></a>

Esse erro pode ocorrer se você assumir uma função a partir da AWS CLI ou da API. 

Quando você usa as operações da CLI [assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) ou da API [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) para assumir uma função, pode especificar um valor para o parâmetro `DurationSeconds`. Você pode especificar um valor de 900 segundos (15 minutos) até o valor configurado de duração máxima da sessão para a função. Se você especificar um valor maior do que o configurado, a operação falhará. Por exemplo, se você especificar uma duração de 12 horas para a sessão, mas o administrador definir a duração máxima da sessão como 6 horas, a operação falhará. Para saber como visualizar o valor máximo para sua função, consulte [Atualizar a duração máxima da sessão de um perfil](id_roles_update-role-settings.md#id_roles_update-session-duration).

## Erro: limite máximo de 2 chaves privadas atingido.
<a name="troubleshoot_saml_private-key-exceeds"></a>

Esse erro pode ocorrer quando você tenta adicionar uma chave privada ao seu provedor de identidade.

É possível salvar até duas chaves privadas para cada provedor de identidade. Quando você usa as operações de API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) ou [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para adicionar uma terceira chave privada, a operação falha. 

Antes de adicionar uma nova chave privada, remova as chaves privadas que expiraram. Para obter mais informações sobre a alternância de chaves privadas, consulte [Gerenciar chaves de criptografia SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Erro: a resposta não contém o público necessário.
<a name="troubleshoot_saml_required-audience"></a>

Esse erro pode ocorrer se o URL do público não corresponder ao provedor de identidades na configuração de SAML. Certifique-se de que o identificador de parte confiável do provedor de identidades (IdP) corresponda exatamente ao URL do público (ID da entidade) fornecido na configuração de SAML.