

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas do Lake Formation
<a name="troubleshooting"></a>

Se você encontrar problemas ao trabalhar com o AWS Lake Formation, consulte os tópicos desta seção. 

**Topics**
+ [Solução de problemas gerais](#trouble-general)
+ [Resolução de problemas de acesso entre contas](#trouble-cross-account)
+ [Solução de problemas em esquemas e fluxos de trabalho](#trouble-workflows)
+ [Problemas conhecidos do AWS Lake Formation](limitations.md)
+ [Mensagem de erro atualizada](error-message-update.md)

## Solução de problemas gerais
<a name="trouble-general"></a>

Use as informações aqui para ajudá-lo a diagnosticar e corrigir vários problemas do Lake Formation.

### Erro: permissões insuficientes do Lake Formation em <Amazon S3 location>
<a name="trouble-location"></a>

Foi feita uma tentativa de criar ou alterar um recurso do catálogo de dados sem permissões de localização de dados na localização do Amazon S3 apontada pelo recurso.

Se um banco de dados ou tabela do Data Catalog apontar para uma localização do Amazon S3, ao conceder as permissões do Lake Formation `CREATE_TABLE` ou `ALTER`, você também deverá conceder a permissão `DATA_LOCATION_ACCESS` no local. Ao conceder permissões a contas ou organizações externas, é necessário incluir a opção de concessão.

Depois que essas permissões forem concedidas a uma conta externa, o administrador do data lake dessa conta deverá conceder as permissões às entidades principais (usuários ou funções) na conta. Ao conceder a `DATA_LOCATION_ACCESS` permissão recebida de outra conta, você deve especificar a ID do catálogo (ID da AWS conta) da conta do proprietário. A conta do proprietário é a conta que registrou o local.

Para obter mais informações, consulte [Controle de acesso a dados subjacente](access-control-underlying-data.md) e [Conceder permissões de localização de dados](granting-location-permissions.md).

### Erro: “permissões de chave de criptografia insuficientes para a API Glue”
<a name="trouble-encryption-grant"></a>

Foi feita uma tentativa de conceder permissões do Lake Formation sem permissões AWS Identity and Access Management (IAM) na chave de AWS KMS criptografia de um catálogo de dados criptografado.

### Minha consulta Amazon Athena ou do Amazon Redshift que usa manifestos está falhando
<a name="trouble-manifest-query"></a>

O Lake Formation não suporta consultas que usam manifestos.

### Erro: "permissão(ões) do Lake Formation insuficiente(s): necessária a criação de tag no catálogo"
<a name="permission-create-tag"></a>

Ele user/role deve ser um administrador de data lake.

### Erro ao excluir administradores de data lake inválidos
<a name="delete-admins"></a>

É necessário excluir todos os administradores de data lake inválidos (perfis do IAM excluídos que são definidos como administradores de data lake) simultaneamente. Se você tentar excluir separadamente administradores de data lake inválidos, o Lake Formation gerará um erro de entidade principal inválida.

## Resolução de problemas de acesso entre contas
<a name="trouble-cross-account"></a>

Use estas informações para ajudar a diagnosticar e corrigir problemas de acesso entre contas.

**Topics**
+ [Eu concedi uma permissão para várias contas do Lake Formation, mas o destinatário não consegue ver o recurso](#troubleshooting-problem1)
+ [As entidades principais da conta do destinatário podem ver o recurso do catálogo de dados, mas não podem acessar os dados subjacentes](#troubleshooting-problem11)
+ [Erro: “Falha na associação porque o chamador não foi autorizado” ao aceitar um convite de compartilhamento AWS RAM de recursos](#troubleshooting-cross-acct-accepting)
+ [Erro: “não autorizado a conceder permissões para o recurso”](#troubleshooting-problem2)
+ [Erro: “Acesso negado para recuperar informações AWS da organização”](#troubleshooting-problem3)
+ [Erro: “organização <organization-ID> não encontrada”](#troubleshooting-problem4)
+ [Erro: "permissões insuficientes do Lake Formation: combinação ilegal"](#troubleshooting-problem5)
+ [ConcurrentModificationException em grant/revoke solicitações para contas externas](#troubleshooting-problem6)
+ [Erro ao usar o Amazon EMR para acessar dados compartilhados por meio de várias contas](#toubleshooting-problem7)

### Eu concedi uma permissão para várias contas do Lake Formation, mas o destinatário não consegue ver o recurso
<a name="troubleshooting-problem1"></a>
+ O usuário na conta do destinatário é administrador do data lake? Somente administradores de data lake podem ver o recurso no momento do compartilhamento.
+ Você está compartilhando com uma conta externa à sua organização usando o método de recurso nomeado? Nesse caso, o administrador do data lake da conta do destinatário deve aceitar um convite de compartilhamento de recursos em AWS Resource Access Manager (AWS RAM).

  Para obter mais informações, consulte [Aceitando um convite de compartilhamento de recursos do AWS RAM](accepting-ram-invite.md).
+ Você está usando políticas de recursos em nível de conta (catálogo de dados) no AWS Glue? Se sim, se você usar o método de recursos nomeados, deverá incluir uma declaração especial na política que autorize a AWS RAM o compartilhamento de políticas em seu nome.

  Para obter mais informações, consulte [Gerenciamento de permissões entre contas usando o AWS Glue e o Lake Formation](hybrid-cross-account.md).
+ Você tem as permissões AWS Identity and Access Management (IAM) necessárias para conceder acesso entre contas?

  Para obter mais informações, consulte [Pré-requisitos](cross-account-prereqs.md).
+ O recurso para o qual você concedeu permissões não deve ter nenhuma permissão do Lake Formation concedida ao grupo `IAMAllowedPrincipals`.
+ Há uma declaração `deny` sobre o recurso na política em nível de conta? 

### As entidades principais da conta do destinatário podem ver o recurso do catálogo de dados, mas não podem acessar os dados subjacentes
<a name="troubleshooting-problem11"></a>

Os diretores da conta do destinatário devem ter as permissões necessárias AWS Identity and Access Management (IAM). Para obter detalhes, consulte [Como acessar os dados subjacentes de uma tabela compartilhada](cross-account-read-data.md).

### Erro: “Falha na associação porque o chamador não foi autorizado” ao aceitar um convite de compartilhamento AWS RAM de recursos
<a name="troubleshooting-cross-acct-accepting"></a>

Depois de conceder acesso a um recurso em uma conta diferente, quando a conta receptora tenta aceitar o convite de compartilhamento de recursos, a ação falha. 

```
$ aws ram get-resource-share-associations --association-type PRINCIPAL --resource-share-arns arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d
{
    "resourceShareAssociations": [
        {
            "resourceShareArn": "arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d
",
            "resourceShareName": "LakeFormation-MMCC0XQBH3Y",
            "associatedEntity": "5815803XXXXX",
            "associationType": "PRINCIPAL",
            "status": "FAILED",
            "statusMessage": "Association failed because the caller was not authorized.",
            "creationTime": "2021-07-12T02:20:10.267000+00:00",
            "lastUpdatedTime": "2021-07-12T02:20:51.830000+00:00",
            "external": true
        }
    ]
}
```

O erro ocorre porque `glue:PutResourcePolicy` é invocado pelo AWS Glue quando a conta receptora aceita o convite de compartilhamento de recursos. Para resolver o problema, permita a `glue:PutResourcePolicy` ação da função assumida usada pela producer/grantor conta.

### Erro: “não autorizado a conceder permissões para o recurso”
<a name="troubleshooting-problem2"></a>

Foi feita uma tentativa de conceder permissões entre contas em um banco de dados ou tabela pertencente a outra conta. Quando um banco de dados ou tabela é compartilhado com sua conta, como administrador do data lake, você pode conceder permissões sobre ele somente aos usuários da sua conta.

### Erro: “Acesso negado para recuperar informações AWS da organização”
<a name="troubleshooting-problem3"></a>

Sua conta é uma conta de gerenciamento da AWS Organizations e você não tem as permissões necessárias para recuperar informações da organização, como unidades organizacionais na conta.

Para obter mais informações, consulte [Required permissions for cross-account grants](cross-account-prereqs.md#cross-account-permissions-needed).

### Erro: “organização <organization-ID> não encontrada”
<a name="troubleshooting-problem4"></a>

Foi feita uma tentativa de compartilhar um recurso com uma organização, mas o compartilhamento com organizações não está habilitado. Habilitar o compartilhamento de recursos com organizações.

Para obter mais informações, consulte [Enable Sharing with AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) no *Guia AWS RAM do Usuário*.

### Erro: "permissões insuficientes do Lake Formation: combinação ilegal"
<a name="troubleshooting-problem5"></a>

Um usuário compartilhou um recurso do catálogo de dados enquanto as permissões do Lake Formation foram concedidas ao grupo `IAMAllowedPrincipals` para o recurso. O usuário deve revogar todas as permissões do Lake Formation de `IAMAllowedPrincipals` antes de compartilhar o recurso.

### ConcurrentModificationException em grant/revoke solicitações para contas externas
<a name="troubleshooting-problem6"></a>

Quando os usuários fazem várias solicitações simultâneas de concessão e and/or revogação de permissão para um diretor nas políticas de tag LF, o Lake Formation lança. ConcurrentModificationException Os usuários precisam capturar a exceção e repetir a falha na grant/revoke solicitação. Usando versões em lote das operações de `GrantPermissions` `RevokePermissions` /API - [BatchGrantPermissions](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_BatchGrantPermissions.html)e [BatchRevokePermissions](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_BatchRevokePermissions.html)alivia esse problema até certo ponto, reduzindo o número de solicitações simultâneas grant/revoke . 

### Erro ao usar o Amazon EMR para acessar dados compartilhados por meio de várias contas
<a name="toubleshooting-problem7"></a>

Quando você usa o Amazon EMR para acessar dados de outra conta compartilhados com você, algumas bibliotecas do Spark tentarão chamar a operação de API `Glue:GetUserDefinedFunctions`. Como as versões 1 e 2 das permissões AWS RAM gerenciadas não oferecem suporte a essa ação, você recebe a seguinte mensagem de erro:

`"ERROR: User: arn:aws:sts::012345678901:assumed-role/my-spark-role/i-06ab8c2b59299508a is not authorized to perform: glue:GetUserDefinedFunctions on resource: arn:exampleCatalogResource because no resource-based policy allows the glue:GetUserDefinedFunctions action"`

Para resolver esse erro, o administrador do data lake que criou o compartilhamento de recursos deve atualizar as permissões AWS RAM gerenciadas anexadas ao compartilhamento de recursos. A versão 3 das permissões gerenciadas pelo AWS RAM permite que as entidades principais executem a ação `glue:GetUserDefinedFunctions`.

Se você criar um novo compartilhamento de recursos, o Lake Formation aplicará a versão mais recente da permissão AWS RAM gerenciada por padrão, e nenhuma ação será exigida por você. Para habilitar o acesso a dados entre contas para compartilhamentos de recursos existentes, você precisa atualizar as permissões AWS RAM gerenciadas para a versão 3.

Você pode ver as AWS RAM permissões atribuídas aos recursos compartilhados com você em AWS RAM. As permissões incluídas na versão 3 são estas:

```
Databases
  AWSRAMPermissionGlueDatabaseReadWriteForCatalog 
  AWSRAMPermissionGlueDatabaseReadWrite
    
Tables
  AWSRAMPermissionGlueTableReadWriteForCatalog
  AWSRAMPermissionGlueTableReadWriteForDatabase
    
AllTables
  AWSRAMPermissionGlueAllTablesReadWriteForCatalog
  AWSRAMPermissionGlueAllTablesReadWriteForDatabase
```

**Para atualizar a versão de permissões AWS RAM gerenciadas dos compartilhamentos de recursos existentes**  
Você (administrador do data lake) pode [atualizar as permissões AWS RAM gerenciadas para uma versão mais recente](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update-permissions.html) seguindo as instruções no *Guia do AWS RAM usuário* ou revogar todas as permissões existentes para o tipo de recurso e concedê-las novamente. Se você revogar as permissões, AWS RAM excluirá o compartilhamento AWS RAM de recursos associado ao tipo de recurso. Quando você concede permissões novamente, AWS RAM cria novos compartilhamentos de recursos anexando a versão mais recente das permissões AWS RAM gerenciadas.

## Solução de problemas em esquemas e fluxos de trabalho
<a name="trouble-workflows"></a>

Use as informações contidas aqui para ajudar a diagnosticar e corrigir problemas no esquema e no fluxo de trabalho.

**Topics**
+ [<role-ARN>Meu plano falhou com “Usuário: <user-ARN>não está autorizado a executar: iam: PassRole no recurso:”](#problem-bp-1)
+ [Meu fluxo de trabalho falhou com “Usuário: <user-ARN>não está autorizado a executar: iam: PassRole no recurso:<role-ARN>”](#problem-bp-2)
+ [Um crawler no meu fluxo de trabalho falhou com “o recurso não existe ou o solicitante não está autorizado a acessar as permissões solicitadas”](#problem-bp-3)
+ [Um rastreador no meu fluxo de trabalho falhou com “Ocorreu um erro (AccessDeniedException) ao chamar a CreateTable operação...”](#problem-bp-4)

### <role-ARN>Meu plano falhou com “Usuário: <user-ARN>não está autorizado a executar: iam: PassRole no recurso:”
<a name="problem-bp-1"></a>

Foi feita uma tentativa de criar um esquema por um usuário que não tem permissões suficientes para passar a função escolhida.

Atualize a política do IAM do usuário para poder transmitir a função ou peça que ele escolha uma função diferente com as permissões de senha necessárias.

Para obter mais informações, consulte [Referência de personas e permissões do IAM do Lake Formation](permissions-reference.md).

### Meu fluxo de trabalho falhou com “Usuário: <user-ARN>não está autorizado a executar: iam: PassRole no recurso:<role-ARN>”
<a name="problem-bp-2"></a>

A função que você especificou para o fluxo de trabalho não tinha uma política em linha que permitisse que a função se transmitisse sozinha.

Para obter mais informações, consulte [(Opcional) Criar um perfil do IAM para fluxos de trabalho](initial-lf-config.md#iam-create-blueprint-role).

### Um crawler no meu fluxo de trabalho falhou com “o recurso não existe ou o solicitante não está autorizado a acessar as permissões solicitadas”
<a name="problem-bp-3"></a>

Uma possível causa é que a função passada não tinha permissões suficientes para criar uma tabela no banco de dados de destino. Conceda à função a permissão `CREATE_TABLE` no banco de dados. 

### Um rastreador no meu fluxo de trabalho falhou com “Ocorreu um erro (AccessDeniedException) ao chamar a CreateTable operação...”
<a name="problem-bp-4"></a>

Uma possível causa é que a função do fluxo de trabalho não tinha permissões de localização de dados no local de armazenamento de destino. Conceda permissões de localização de dados para a função.

Para obter mais informações, consulte [`DATA_LOCATION_ACCESS`](lf-permissions-reference.md#perm-location).

# Problemas conhecidos do AWS Lake Formation
<a name="limitations"></a>

Analise esses problemas conhecidos para AWS Lake Formation.

**Topics**
+ [Limitação na filtragem de metadados da tabela](#issue-table-metadata-avro)
+ [Problema ao renomear uma coluna excluída](#issue-rename-column)
+ [Problema com a exclusão de colunas em tabelas CSV](#issue-csv-schema)
+ [As partições da tabela devem ser adicionadas em um caminho comum](#issue-table-partitions)
+ [Problema com a criação de um banco de dados durante a criação do fluxo de trabalho](#issue-create-table-permission)
+ [Problema com a exclusão e a recriação de um usuário](#issue-recreate-user)
+ [As operações da API do catálogo de dados não atualizam o valor do parâmetro `IsRegisteredWithLakeFormation`](#issue-get-tables-parameter)
+ [As operações do Lake Formation não oferecem suporte ao AWS Glue Schema Registry](#not-support-GlueSchemaRegistry.title)

## Limitação na filtragem de metadados da tabela
<a name="issue-table-metadata-avro"></a>

AWS Lake Formation permissões em nível de coluna podem ser usadas para restringir o acesso a colunas específicas em uma tabela. Quando um usuário recupera metadados sobre a tabela usando o console ou uma API como `glue:GetTable`, a lista de colunas no objeto da tabela contém somente os campos aos quais ele tem acesso. É importante entender as limitações dessa filtragem de metadados.

Embora o Lake Formation disponibilize metadados sobre permissões de coluna para serviços integrados, a filtragem real das colunas nas respostas da consulta é de responsabilidade do serviço integrado. Os clientes do Lake Formation que oferecem suporte à filtragem em nível de coluna, incluindo Amazon Athena, Amazon Redshift Spectrum e Amazon EMR, filtram os dados com base nas permissões de coluna registradas no Lake Formation. Os usuários não poderão ler nenhum dado ao qual não devem ter acesso. Atualmente, o ETL AWS Glue não oferece suporte à filtragem de colunas.

**nota**  
 Os clusters do EMR não são totalmente gerenciados pela AWS. Portanto, é responsabilidade dos administradores do EMR proteger adequadamente os clusters para evitar o acesso não autorizado aos dados.

Certas aplicações ou formatos podem armazenar metadados adicionais, incluindo nomes e tipos de colunas, no mapa `Parameters` como propriedades da tabela. Essas propriedades são retornadas sem modificações e podem ser acessadas por qualquer usuário com permissão `SELECT` em qualquer coluna. 

Por exemplo, o [Avro SerDe](https://docs.aws.amazon.com/athena/latest/ug/supported-serdes.html) armazena uma representação JSON do esquema da tabela em uma propriedade de tabela chamada`avro.schema.literal`, que está disponível para todos os usuários com acesso à tabela. Recomendamos que você evite armazenar informações confidenciais nas propriedades da tabela e esteja ciente de que os usuários podem aprender o esquema completo das tabelas no formato Avro. Essa limitação é específica para os metadados sobre uma tabela. 

AWS Lake Formation remove qualquer propriedade da tabela, começando com `spark.sql.sources.schema` ao responder a uma solicitação `glue:GetTable` ou similar, se o chamador não tiver `SELECT` permissões em todas as colunas da tabela. Isso impede que os usuários tenham acesso a metadados adicionais sobre tabelas criadas com o Apache Spark. Quando executadas no Amazon EMR, as aplicações do Apache Spark ainda podem ler essas tabelas, mas certas otimizações podem não ser aplicadas e nomes de colunas com distinção entre maiúsculas e minúsculas não são aceitos. Se o usuário tiver acesso a todas as colunas na tabela, o Lake Formation retornará a tabela sem modificações com todas as propriedades da tabela. 

## Problema ao renomear uma coluna excluída
<a name="issue-rename-column"></a>

Se você usar permissões em nível de coluna para excluir uma coluna e depois renomeá-la, a coluna não será mais excluída das consultas, assim como `SELECT *`.

## Problema com a exclusão de colunas em tabelas CSV
<a name="issue-csv-schema"></a>

Se você criar uma tabela do catálogo de dados com o formato CSV e depois excluir uma coluna do esquema, as consultas poderão retornar dados errados e as permissões em nível de coluna poderão não ser respeitadas.

Solução alternativa: em vez disso, crie uma nova tabela.

## As partições da tabela devem ser adicionadas em um caminho comum
<a name="issue-table-partitions"></a>

O Lake Formation espera que todas as partições de uma tabela estejam em um caminho comum definido no campo de localização da tabela. Quando você usa o crawler para adicionar partições a um catálogo, isso funciona perfeitamente. Mas se você adicionar partições manualmente e essas partições não estiverem no local definido na tabela principal, o acesso aos dados não funcionará.

## Problema com a criação de um banco de dados durante a criação do fluxo de trabalho
<a name="issue-create-table-permission"></a>

Ao criar um fluxo de trabalho a partir de um esquema usando o console do Lake Formation, você pode criar o banco de dados de destino, caso ele não exista. Quando você faz isso, o usuário que está conectado recebe a permissão `CREATE_TABLE` no banco de dados criado. No entanto, o crawler que o fluxo de trabalho gera assume a função do fluxo de trabalho ao tentar criar uma tabela. Isso falha porque a função não possui a permissão `CREATE_TABLE` no banco de dados. 

Solução alternativa: se você criar o banco de dados por meio do console durante a configuração do fluxo de trabalho, antes de executar o fluxo de trabalho, deverá conceder à função associada ao fluxo de trabalho a permissão `CREATE_TABLE` no banco de dados que você acabou de criar.

## Problema com a exclusão e a recriação de um usuário
<a name="issue-recreate-user"></a>

O cenário a seguir resulta em permissões errôneas do Lake Formation retornadas por `lakeformation:ListPermissions`:

1. Crie um usuário e conceda permissões do Lake Formation.

1. Exclua o usuário.

1. Recrie o usuário com o mesmo nome.

`ListPermissions` retorna duas entradas, uma para o usuário antigo e outra para o novo usuário. Se você tentar revogar as permissões concedidas ao usuário antigo, as permissões serão revogadas do novo usuário.

## As operações da API do catálogo de dados não atualizam o valor do parâmetro `IsRegisteredWithLakeFormation`
<a name="issue-get-tables-parameter"></a>

Há uma limitação conhecida de que as operações da API do catálogo de dados, como `GetTables` e `SearchTables`, não atualizam o valor do parâmetro `IsRegisteredWithLakeFormation` e retornam o padrão, que é falso. É recomendável usar a API `GetTable` para visualizar o valor correto do parâmetro `IsRegisteredWithLakeFormation`. 

## As operações do Lake Formation não oferecem suporte ao AWS Glue Schema Registry
<a name="not-support-GlueSchemaRegistry.title"></a>

As operações do Lake Formation não oferecem suporte a AWS Glue tabelas que contenham um `SchemaReference` `StorageDescriptor` para ser utilizado no Registro de [Esquemas](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html).

# Mensagem de erro atualizada
<a name="error-message-update"></a>

 AWS O Lake Formation atualizou as exceções específicas do recurso para a mensagem de `EntityNotFound` erro geral das seguintes operações de API para atender aos objetivos de segurança e conformidade. 
+ RevokePermissions
+ GrantPermissions
+ GetResourceLFTags
+ GetTable
+ GetDatabase