

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Solución de problemas de Lake Formation
<a name="troubleshooting"></a>

Si tiene problemas al trabajar con AWS Lake Formation, consulte los temas de esta sección. 

**Topics**
+ [Solución de problemas generales](#trouble-general)
+ [Solución de problemas de acceso entre cuentas](#trouble-cross-account)
+ [Solución de problemas de esquemas y flujos de trabajo](#trouble-workflows)
+ [Problemas conocidos de AWS Lake Formation](limitations.md)
+ [Mensaje de error actualizado](error-message-update.md)

## Solución de problemas generales
<a name="trouble-general"></a>

Utilice esta información para diagnosticar y solucionar diversos problemas de Lake Formation.

### Error: permisos insuficientes para Lake Formation en <ubicación de Amazon S3>.
<a name="trouble-location"></a>

Se ha intentado crear o modificar un recurso del Catálogo de datos sin permisos de ubicación de datos en la ubicación de Amazon S3 a la que apunta el recurso.

Si una base de datos o tabla del Catálogo de datos apunta a una ubicación de Amazon S3, cuando conceda los permisos Lake Formation `CREATE_TABLE` o `ALTER`, también deberá conceder el permiso `DATA_LOCATION_ACCESS` en la ubicación. Si concede estos permisos a cuentas externas o a organizaciones, debe incluir la opción de concesión.

Una vez concedidos estos permisos a una cuenta externa, el administrador del lago de datos de dicha cuenta deberá conceder los permisos a las entidades principales (usuarios o roles) de la cuenta. Al conceder el `DATA_LOCATION_ACCESS` permiso recibido de otra cuenta, debe especificar el identificador de catálogo (identificador de AWS cuenta) de la cuenta del propietario. La cuenta propietaria es la cuenta que registró la ubicación.

Para obtener más información, consulte [Control de acceso a los datos subyacentes](access-control-underlying-data.md) y [Conceder permisos de ubicación de datos](granting-location-permissions.md).

### Error: "Permisos de clave de cifrado insuficientes para la API Glue"
<a name="trouble-encryption-grant"></a>

Se intentó conceder permisos a Lake Formation sin permisos AWS Identity and Access Management (IAM) en la clave de AWS KMS cifrado de un catálogo de datos cifrado.

### Mi consulta Amazon Athena o la de Amazon Redshift que usa manifiestos está fallando
<a name="trouble-manifest-query"></a>

Lake Formation no es compatible con las consultas que utilizan manifiestos.

### Error: "Permiso(s) de Lake Formation insuficientes: se requiere crear etiqueta en el catálogo"
<a name="permission-create-tag"></a>

 user/role Debe ser administrador de un lago de datos.

### Error al eliminar administradores de lagos de datos no válidos
<a name="delete-admins"></a>

Debe eliminar todos los administradores de lagos de datos no válidos (funciones de IAM eliminadas que se definen como administradores de lagos de datos) simultáneamente. Si intenta eliminar administradores de lagos de datos no válidos por separado, Lake Formation da un error de entidad principal no válida.

## Solución de problemas de acceso entre cuentas
<a name="trouble-cross-account"></a>

Utilice esta información para diagnosticar y solucionar los problemas de acceso entre cuentas.

**Topics**
+ [He concedido un permiso entre cuentas Lake Formation pero el destinatario no puede ver el recurso](#troubleshooting-problem1)
+ [Las entidades principales de la cuenta de destinatario pueden ver el recurso del Catálogo de datos pero no pueden acceder a los datos subyacentes](#troubleshooting-problem11)
+ [Error: «La asociación falló porque la persona que llamó no estaba autorizada» al aceptar una AWS RAM invitación para compartir recursos](#troubleshooting-cross-acct-accepting)
+ [Error: “No está autorizado a conceder permisos para el recurso”](#troubleshooting-problem2)
+ [Error: «Acceso denegado para recuperar la información de AWS la organización»](#troubleshooting-problem3)
+ [Error: "Organización <organization-ID> no encontrada"](#troubleshooting-problem4)
+ [Error: "Permisos de Lake Formation insuficientes: combinación ilegal"](#troubleshooting-problem5)
+ [ConcurrentModificationException en grant/revoke las solicitudes a cuentas externas](#troubleshooting-problem6)
+ [Error al utilizar Amazon EMR para acceder a datos compartidos entre cuentas](#toubleshooting-problem7)

### He concedido un permiso entre cuentas Lake Formation pero el destinatario no puede ver el recurso
<a name="troubleshooting-problem1"></a>
+ ¿Es el usuario de la cuenta de destinatario administrador del lago de datos? Solo los administradores del lago de datos pueden ver el recurso en el momento del uso compartido.
+ ¿Está compartiendo con una cuenta externa a su organización utilizando el método de recursos con nombre? Si es así, el administrador del lago de datos de la cuenta receptora debe aceptar una invitación para compartir recursos en AWS Resource Access Manager (AWS RAM).

  Para obtener más información, consulte [Aceptar una invitación para compartir recursos de AWS RAM](accepting-ram-invite.md).
+ ¿Está utilizando políticas de recursos a nivel de cuenta (Catálogo de datos) en AWS Glue? En caso afirmativo, si utiliza el método de recursos con nombre, deberá incluir una instrucción especial en la política que autorice a AWS RAM a compartir políticas en su nombre.

  Para obtener más información, consulte [Administración de los permisos entre cuentas mediante AWS Glue y Lake Formation](hybrid-cross-account.md).
+ ¿Tiene los permisos AWS Identity and Access Management (de IAM) necesarios para conceder el acceso entre cuentas?

  Para obtener más información, consulte [Requisitos previos](cross-account-prereqs.md).
+ El recurso sobre el que ha concedido permisos no debe tener ningún permiso de Lake Formation concedido al grupo `IAMAllowedPrincipals`.
+ ¿Existe alguna instrucción `deny` sobre el recurso en la política a nivel de cuenta? 

### Las entidades principales de la cuenta de destinatario pueden ver el recurso del Catálogo de datos pero no pueden acceder a los datos subyacentes
<a name="troubleshooting-problem11"></a>

Los directores de la cuenta del destinatario deben tener los permisos AWS Identity and Access Management (IAM) necesarios. Para obtener más información, consulte [Acceso a los datos subyacentes de una tabla compartida](cross-account-read-data.md).

### Error: «La asociación falló porque la persona que llamó no estaba autorizada» al aceptar una AWS RAM invitación para compartir recursos
<a name="troubleshooting-cross-acct-accepting"></a>

Tras conceder acceso a un recurso a una cuenta diferente, cuando la cuenta receptora intenta aceptar la invitación a compartir el recurso, la acción falla. 

```
$ 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
        }
    ]
}
```

El error se produce porque el `glue:PutResourcePolicy` es invocado por AWS Glue cuando la cuenta receptora acepta la invitación a compartir recursos. Para resolver el problema, permita que el rol asumido que utilice la producer/grantor cuenta realice la `glue:PutResourcePolicy` acción.

### Error: “No está autorizado a conceder permisos para el recurso”
<a name="troubleshooting-problem2"></a>

Se ha intentado conceder permisos entre cuentas en una base de datos o tabla que es propiedad de otra cuenta. Cuando una base de datos o una tabla se comparte con su cuenta, como administrador del lago de datos, puede conceder permisos sobre ella solo a los usuarios de su cuenta.

### Error: «Acceso denegado para recuperar la información de AWS la organización»
<a name="troubleshooting-problem3"></a>

Tu cuenta es una AWS cuenta de administración de Organizations y no tienes los permisos necesarios para recuperar la información de la organización, como las unidades organizativas de la cuenta.

Para obtener más información, consulte [Required permissions for cross-account grants](cross-account-prereqs.md#cross-account-permissions-needed).

### Error: "Organización <organization-ID> no encontrada"
<a name="troubleshooting-problem4"></a>

Se ha intentado compartir un recurso con una organización, pero el uso compartido con organizaciones no está habilitado. Habilite el uso compartido de recursos con organizaciones.

Para obtener más información, consulte [Habilitar el uso compartido con AWS Organizaciones](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) en la *Guía del AWS RAM usuario*.

### Error: "Permisos de Lake Formation insuficientes: combinación ilegal"
<a name="troubleshooting-problem5"></a>

Un usuario compartió un recurso del Catálogo de datos mientras que los permisos de Lake Formation se concedieron al grupo `IAMAllowedPrincipals` para el recurso. El usuario debe revocar todos los permisos de Lake Formation de `IAMAllowedPrincipals` antes de compartir el recurso.

### ConcurrentModificationException en grant/revoke las solicitudes a cuentas externas
<a name="troubleshooting-problem6"></a>

Cuando los usuarios realizan varias solicitudes simultáneas de concesión y and/or revocación de permisos para un director en las políticas de etiqueta LF, Lake Formation las arroja. ConcurrentModificationException Los usuarios deben atrapar la excepción y volver a intentar la grant/revoke solicitud fallida. El uso de versiones por lotes de las operaciones de la `RevokePermissions` API`GrantPermissions`/[BatchRevokePermissions](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_BatchRevokePermissions.html)alivia este problema en cierta medida al reducir el número de solicitudes grant/revoke simultáneas. [BatchGrantPermissions](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_BatchGrantPermissions.html) 

### Error al utilizar Amazon EMR para acceder a datos compartidos entre cuentas
<a name="toubleshooting-problem7"></a>

Al usar Amazon EMR para acceder a los datos compartidos desde otra cuenta, algunas bibliotecas de Spark intentarán llamar a la operación de la API `Glue:GetUserDefinedFunctions`. Como las versiones 1 y 2 de los permisos AWS RAM administrados no admiten esta acción, recibirá el siguiente mensaje de error:

`"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 este error, el administrador del lago de datos que creó el recurso compartido debe actualizar los permisos AWS RAM administrados asociados al recurso compartido. La versión 3 de los permisos administrados de AWS RAM permite a las entidades principales llevar a cabo la acción `glue:GetUserDefinedFunctions`.

Si crea un nuevo recurso compartido, Lake Formation aplica la última versión del permiso AWS RAM gestionado de forma predeterminada y no es necesario que realice ninguna acción. Para habilitar el acceso a los datos entre cuentas para los recursos compartidos existentes, debe actualizar los permisos AWS RAM administrados a la versión 3.

Puede ver los AWS RAM permisos asignados a los recursos compartidos con usted en AWS RAM. Los siguientes permisos se incluyen en la versión 3:

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

**Para actualizar la versión de los permisos AWS RAM administrados de los recursos compartidos existentes**  
Usted (administrador del lago de datos) puede [actualizar los permisos AWS RAM administrados a una versión más reciente](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update-permissions.html) siguiendo las instrucciones de la *Guía del AWS RAM usuario* o puede revocar todos los permisos existentes para el tipo de recurso y volver a concederlos. Si revoca los permisos, AWS RAM elimina el AWS RAM recurso compartido asociado al tipo de recurso. Al volver a conceder los permisos, AWS RAM crea nuevos recursos compartidos adjuntando la última versión de los permisos gestionados. AWS RAM 

## Solución de problemas de esquemas y flujos de trabajo
<a name="trouble-workflows"></a>

Utilice esta información para diagnosticar y solucionar problemas de esquemas y flujos de trabajo.

**Topics**
+ [<role-ARN>Mi blueprint falló con el mensaje «Usuario: <user-ARN>no está autorizado para realizar: iam: PassRole on resource:»](#problem-bp-1)
+ [<role-ARN>Mi flujo de trabajo falló con el mensaje «Usuario: <user-ARN>no está autorizado a realizar: iam: PassRole on resource:»](#problem-bp-2)
+ [Un rastreador en mi flujo de trabajo falló con "El recurso no existe o el solicitante no está autorizado para acceder a los permisos solicitados"](#problem-bp-3)
+ [Un rastreador de mi flujo de trabajo falló y dijo: «Se produjo un error (AccessDeniedException) al llamar a la CreateTable operación...»](#problem-bp-4)

### <role-ARN>Mi blueprint falló con el mensaje «Usuario: <user-ARN>no está autorizado para realizar: iam: PassRole on resource:»
<a name="problem-bp-1"></a>

Se ha intentado crear un esquema por parte de un usuario que no tiene permisos suficientes para pasar el rol elegido.

Actualice la política de IAM del usuario para poder pasar el rol, o pídale que elija un rol diferente con los permisos necesarios para pasar el rol.

Para obtener más información, consulte [Personas de Lake Formation y referencia de permisos IAM](permissions-reference.md).

### <role-ARN>Mi flujo de trabajo falló con el mensaje «Usuario: <user-ARN>no está autorizado a realizar: iam: PassRole on resource:»
<a name="problem-bp-2"></a>

El rol que especificó para el flujo de trabajo no tenía una política en línea que permitiera que el rol se pasara a sí mismo.

Para obtener más información, consulte [(Opcional) Crear un rol de IAM para flujos de trabajo](initial-lf-config.md#iam-create-blueprint-role).

### Un rastreador en mi flujo de trabajo falló con "El recurso no existe o el solicitante no está autorizado para acceder a los permisos solicitados"
<a name="problem-bp-3"></a>

Una posible causa es que el rol pasado no tenía permisos suficientes para crear una tabla en la base de datos de destino. Concede al rol el permiso `CREATE_TABLE` sobre la base de datos. 

### Un rastreador de mi flujo de trabajo falló y dijo: «Se produjo un error (AccessDeniedException) al llamar a la CreateTable operación...»
<a name="problem-bp-4"></a>

Una posible causa es que el rol de flujo de trabajo no tuviera permisos de ubicación de datos en el almacén de destino. Conceda permisos de ubicación de datos al rol.

Para obtener más información, consulte [`DATA_LOCATION_ACCESS`](lf-permissions-reference.md#perm-location).

# Problemas conocidos de AWS Lake Formation
<a name="limitations"></a>

Revise estos problemas conocidos para ver si AWS Lake Formation.

**Topics**
+ [Limitación del filtrado de metadatos de las tablas](#issue-table-metadata-avro)
+ [Problema al renombrar una columna excluida](#issue-rename-column)
+ [Problema con la eliminación de columnas en tablas CSV](#issue-csv-schema)
+ [Las particiones de tabla deben añadirse bajo una ruta común](#issue-table-partitions)
+ [Problema con la creación de una base de datos durante la creación del flujo de trabajo](#issue-create-table-permission)
+ [Problema al eliminar un usuario y, a continuación, volver a crearlo](#issue-recreate-user)
+ [Las operaciones de la API del Catálogo de datos no actualizan el valor del parámetro `IsRegisteredWithLakeFormation`](#issue-get-tables-parameter)
+ [Las operaciones de Lake Formation no admiten el registro AWS Glue de esquemas](#not-support-GlueSchemaRegistry.title)

## Limitación del filtrado de metadatos de las tablas
<a name="issue-table-metadata-avro"></a>

AWS Lake Formation los permisos a nivel de columna se pueden usar para restringir el acceso a columnas específicas de una tabla. Cuando un usuario recupera metadatos sobre la tabla utilizando la consola o una API como `glue:GetTable`, la lista de columnas del objeto de tabla contiene solo los campos a los que tiene acceso. Es importante comprender las limitaciones de este filtrado de metadatos.

Aunque Lake Formation pone a disposición de los servicios integrados metadatos sobre los permisos de las columnas, el filtrado real de las columnas en las respuestas a las consultas es responsabilidad del servicio integrado. Los clientes de Lake Formation compatibles con el filtrado a nivel de columna, incluidos Amazon Athena, Amazon Redshift Spectrum y Amazon EMR, filtran los datos en función de los permisos de columna registrados en Lake Formation. Los usuarios no podrán leer datos a los que no deberían tener acceso. Actualmente, AWS Glue ETL no es compatible con el filtrado de columnas.

**nota**  
 Los clústeres de EMR no se administran completamente mediante AWS. Por lo tanto, es responsabilidad de los administradores de los EMR asegurar adecuadamente los clústeres para evitar el acceso no autorizado a los datos.

Algunas aplicaciones o formatos pueden almacenar metadatos adicionales, incluidos los nombres y tipos de las columnas, en el mapa de `Parameters` como propiedades de la tabla. Estas propiedades se devuelven sin modificar y son accesibles por cualquier usuario con permiso de `SELECT` sobre cualquier columna. 

Por ejemplo, el [Avro SerDe](https://docs.aws.amazon.com/athena/latest/ug/supported-serdes.html) almacena una representación en JSON del esquema de la tabla en una propiedad de la tabla denominada`avro.schema.literal`, que está disponible para todos los usuarios con acceso a la tabla. Le recomendamos que evite almacenar información sensible en las propiedades de las tablas y que sea consciente de que los usuarios pueden conocer el esquema completo de las tablas con formato Avro. Esta limitación es específica de los metadatos sobre una tabla. 

AWS Lake Formation elimina cualquier propiedad de la tabla, empezando por `spark.sql.sources.schema` cuando responde a una solicitud `glue:GetTable` o similar, si la persona que llama no tiene `SELECT` permisos en todas las columnas de la tabla. Esto impide a los usuarios acceder a metadatos adicionales sobre tablas creadas con Apache Spark. Cuando se ejecutan en Amazon EMR, las aplicaciones Apache Spark siguen pudiendo leer estas tablas, pero es posible que no se apliquen ciertas optimizaciones y que no se admitan los nombres de columnas que distinguen entre mayúsculas y minúsculas. Si el usuario tiene acceso a todas las columnas de la tabla, Lake Formation devuelve la tabla sin modificar con todas las propiedades de la tabla. 

## Problema al renombrar una columna excluida
<a name="issue-rename-column"></a>

Si utiliza permisos a nivel de columna para excluir una columna y, a continuación, cambia el nombre de la columna, esta dejará de estar excluida de las consultas, como `SELECT *`.

## Problema con la eliminación de columnas en tablas CSV
<a name="issue-csv-schema"></a>

Si crea una tabla del Catálogo de datos con el formato CSV y luego elimina una columna del esquema, las consultas podrían devolver datos erróneos y es posible que no se respeten los permisos a nivel de columna.

Solución alternativa: cree una tabla nueva en su lugar.

## Las particiones de tabla deben añadirse bajo una ruta común
<a name="issue-table-partitions"></a>

Lake Formation espera que todas las particiones de una tabla estén bajo una ruta común que se establece en el campo de ubicación de la tabla. Cuando utilice el rastreador para añadir particiones a un catálogo, esto funcionará sin problemas. Pero si añade particiones manualmente, y estas particiones no están bajo la ubicación establecida en la tabla principal, el acceso a los datos no funciona.

## Problema con la creación de una base de datos durante la creación del flujo de trabajo
<a name="issue-create-table-permission"></a>

Al crear un flujo de trabajo a partir de un esquema utilizando la consola de Lake Formation, puede crear la base de datos de destino si no existe. Al hacerlo, el usuario que ha iniciado sesión obtiene el permiso de `CREATE_TABLE` sobre la base de datos creada. Sin embargo, el rastreador que genera el flujo de trabajo asume el papel de este cuando intenta crear una tabla. Esto produce un error porque el rol no tiene el permiso `CREATE_TABLE` en la base de datos. 

Solución: si crea la base de datos a través de la consola durante la configuración del flujo de trabajo, antes de ejecutar el flujo de trabajo, debe dar al rol asociado al flujo de trabajo el permiso `CREATE_TABLE` sobre la base de datos que acaba de crear.

## Problema al eliminar un usuario y, a continuación, volver a crearlo
<a name="issue-recreate-user"></a>

El siguiente escenario da como resultado permisos erróneos de Lake Formation devueltos por `lakeformation:ListPermissions`:

1. Cree un usuario y conceda permisos a Lake Formation.

1. Elimine el usuario.

1. Vuelva a crear el usuario con el mismo nombre.

`ListPermissions` devuelve dos entradas, una para el usuario anterior y otra para el usuario nuevo. Si intenta revocar los permisos concedidos al usuario anterior, se revocan los permisos del nuevo usuario.

## Las operaciones de la API del Catálogo de datos no actualizan el valor del parámetro `IsRegisteredWithLakeFormation`
<a name="issue-get-tables-parameter"></a>

Existe una limitación conocida por la que las operaciones de la API del Catálogo de datos como `GetTables` y `SearchTables` no actualizan el valor del parámetro `IsRegisteredWithLakeFormation` y devuelven el valor predeterminado, que es falso. Se recomienda utilizar la API`GetTable` para ver el valor correcto del parámetro `IsRegisteredWithLakeFormation`. 

## Las operaciones de Lake Formation no admiten el registro AWS Glue de esquemas
<a name="not-support-GlueSchemaRegistry.title"></a>

Las operaciones de Lake Formation no admiten AWS Glue tablas que contengan un `SchemaReference` en el `StorageDescriptor` para utilizarlas en el [Registro de esquemas.](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html)

# Mensaje de error actualizado
<a name="error-message-update"></a>

 AWS Lake Formation ha actualizado las excepciones específicas del recurso al mensaje de `EntityNotFound` error general para las siguientes operaciones de API a fin de cumplir con los objetivos de seguridad y cumplimiento. 
+ RevokePermissions
+ GrantPermissions
+ GetResourceLFTags
+ GetTable
+ GetDatabase