

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.

# Descripción general de los permisos de Lake Formation
<a name="lf-permissions-overview"></a>

Hay dos tipos principales de permisos en AWS Lake Formation:
+ Acceso a los metadatos. Permisos sobre los recursos del Catálogo de datos (*Permisos sobre el Catálogo de datos*). 

  Con estos permisos las entidades principales pueden crear, leer, actualizar y eliminar bases de datos de metadatos y tablas del Catálogo de datos. 
+ Acceso a los datos subyacentes: permisos en ubicaciones en Amazon Simple Storage Service (Amazon S3) (permisos de *acceso a datos y permisos* *de ubicación* de datos). 
  + Los permisos del lago de datos permiten a las entidades principales leer y escribir datos en las ubicaciones *subyacentes* de Amazon S3, datos a los que apuntan los recursos del Catálogo de datos. 
  + Los permisos de ubicación de datos permiten a las entidades principales crear y modificar bases de datos y tablas de metadatos que apunten a ubicaciones específicas de Amazon S3. 

Para ambas áreas, Lake Formation usa una combinación de permisos de Lake Formation y permisos AWS Identity and Access Management (IAM). El modelo de permisos IAM se compone de políticas de IAM. El modelo de permisos de Lake Formation se implementa como GRANT/REVOKE comandos de estilo DBMS, como. `Grant SELECT on tableName to userName`

Cuando una entidad principal efectúa una solicitud para acceder a los recursos del Catálogo de datos o a los datos subyacentes, para que la solicitud tenga éxito, debe pasar las comprobaciones de permisos tanto de IAM como de Lake Formation.

![\[La solicitud de un solicitante debe pasar por dos "puertas" para llegar a los recursos: permisos de Lake Formation y permisos de IAM.\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/permissions_doors.png)


Los permisos de Lake Formation controlan el acceso a los recursos del Catálogo de datos, a las ubicaciones de Amazon S3 y a los datos subyacentes en dichas ubicaciones. Los permisos de IAM controlan el acceso a Lake Formation AWS Glue APIs y sus recursos. Así, aunque tenga el permiso Lake Formation para crear una tabla de metadatos en el Catálogo de datos (`CREATE_TABLE`), su operación fallará si no tiene el permiso IAM en la API `glue:CreateTable`. (¿Por qué un permiso `glue:`? porque Lake Formation usa el Catálogo de datos AWS Glue).

**nota**  
Los permisos de Lake Formation se aplican solo en la Región en la que fueron concedidos.

AWS Lake Formation requiere que cada director (usuario o rol) esté autorizado a realizar acciones en los recursos gestionados por la Formación de Lagos. El administrador del lago de datos u otra entidad principal con permisos para conceder permisos de Lake Formation concede a la entidad principal las autorizaciones necesarias.

Cuando concede un permiso de Lake Formation a una entidad principal, puede conceder de forma opcional la capacidad de pasar ese permiso a otra entidad principal.

Puede usar la API de Lake Formation, la AWS Command Line Interface (AWS CLI) o las páginas de **permisos de datos** y **ubicaciones de datos** de la consola de Lake Formation para conceder y revocar los permisos de Lake Formation.

# Métodos para el control de acceso específico
<a name="access-control-fine-grained"></a>

Con un lago de datos, el objetivo es tener un control de acceso detallado a los datos. En Lake Formation, esto significa un control de acceso específico a los recursos del Catálogo de datos y a las ubicaciones de Amazon S3. Puede lograr un control de acceso específico con uno de los siguientes métodos.


| Método | Permisos de Lake Formation | Permisos de IAM | Comentarios | 
| --- | --- | --- | --- | 
| Método 1 | Abra  | Específicos |  **Este es el método predeterminado** por compatibilidad inversa con AWS Glue. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/access-control-fine-grained.html) En la consola de Lake Formation, este método aparece como **Utilizar solo control de acceso IAM**.  | 
| Método 2 | Específicos | Básicos |  **Esta es la opción recomendada.** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/access-control-fine-grained.html)  | 

**importante**  
Tenga en cuenta lo siguiente:  
De forma predeterminada, Lake Formation tiene activada la configuración de control de acceso **Utilizar solo IAM** por compatibilidad con el comportamiento existente del Catálogo de datos AWS Glue. Le recomendamos que desactive esta configuración después de pasar a usar los permisos de Lake Formation. Para obtener más información, consulte [Cambiar la configuración predeterminada de su lago de datos](change-settings.md).
Los administradores de lagos de datos y los creadores de bases de datos tienen permisos implícitos de Lake Formation que debe comprender. Para obtener más información, consulte [Permisos implícitos de Lake Formation](implicit-permissions.md).

# Control de acceso a los metadatos
<a name="access-control-metadata"></a>

Para el control de acceso a los recursos del Catálogo de datos, en el siguiente análisis se asume un control de acceso detallado con los permisos de Lake Formation y un control de acceso más detallado con las políticas de IAM.

Existen dos métodos distintos para la concesión de permisos de Lake Formation sobre los recursos del Catálogo de datos:
+ **Control de acceso a recursos con nombre.** Con este método, el usuario concede permisos sobre bases de datos o tablas específicas especificando nombres de bases de datos o tablas. Las concesiones tienen esta forma:

  Conceda *permisos* a las *entidades principales* sobre los *recursos* [con opción de concesión].

  Con la opción de concesión, puede permitir que el beneficiario conceda los permisos a otras entidades principales.
+ **Control de acceso basado en etiquetas.** Con este método, asigna una o varias etiquetas LF a las bases de datos, tablas y columnas del Catálogo de datos, y concede permisos sobre una o varias etiquetas LF a las entidades principales. Cada etiqueta LF es un par clave-valor, como `department=sales`. Una entidad principal con etiquetas LF que coincidan con las etiquetas LF de un recurso puede acceder a ese recurso. Este método se recomienda para los lagos de datos con un gran número de bases de datos y tablas. Se explica en detalle en [Control de acceso basado en etiquetas de Lake Formation](tag-based-access-control.md).

Los permisos que una entidad principal tiene sobre un recurso son la unión de los permisos concedidos por ambos métodos.

La siguiente tabla resume los permisos disponibles de Lake Formation en los recursos del Catálogo de datos. Los títulos de las columnas indican el recurso sobre el que se concede el permiso.


| Catálogo | Base de datos | Tabla | 
| --- | --- | --- | 
| CREATE\$1DATABASE | CREATE\$1TABLE | ALTER | 
|  | ALTER | DROP | 
|  | DROP | DESCRIBE | 
|  | DESCRIBE | SELECT\$1 | 
|  |  | INSERT\$1 | 
|  |  | DELETE\$1 | 

Por ejemplo, el permiso `CREATE_TABLE` se concede sobre una base de datos. Esto significa que la entidad principal está autorizada a crear tablas en esa base de datos.

Los permisos con un asterisco (\$1) se conceden sobre los recursos del Catálogo de datos, pero se aplican a los datos subyacentes. Por ejemplo, el permiso `DROP` sobre una tabla de metadatos le permite eliminar la tabla del Catálogo de datos. Sin embargo, el permiso `DELETE` concedido sobre la misma tabla le permite eliminar los datos subyacentes de la tabla en Amazon S3, utilizando, por ejemplo, una instrucción SQL `DELETE`. Con estos permisos, también puede ver la tabla en la consola de Lake Formation y recuperar información sobre la tabla con la API AWS Glue. Así, `SELECT`, `INSERT` y `DELETE` son tanto permisos del Catálogo de datos como permisos de acceso a los datos.

Al conceder `SELECT` en una tabla, puede añadir un filtro que incluya o excluya una o más columnas. Esto permite un control de acceso específico sobre las columnas de la tabla de metadatos, limitando las columnas que los usuarios de los servicios integrados pueden ver al ejecutar consultas. Esta capacidad no está disponible solo con políticas de IAM.

También hay un permiso especial denominado `Super`. El permiso `Super` permite a una entidad principal efectuar todas las operaciones compatibles con Lake Formation en la base de datos o tabla sobre la que se concede. Este permiso puede coexistir con los demás permisos de Lake Formation. Por ejemplo, puede conceder `Super`, `SELECT` y `INSERT` sobre una tabla de metadatos. La entidad principal puede efectuar todas las acciones compatibles en la tabla, y cuando revoca `Super`, permanecen los permisos `SELECT` y `INSERT`.

Para obtener más información sobre cada permiso, consulte [Referencia de permisos de Lake Formation](lf-permissions-reference.md).

**importante**  
Para consultar una tabla del Catálogo de datos creada por otro usuario, debe tener al menos un permiso de Lake Formation sobre la tabla. Si se le concede al menos un permiso sobre la tabla, también podrá ver la base de datos contenedora de la tabla.

Puede conceder o revocar los permisos del Catálogo de datos utilizando la consola de Lake Formation, la API o la AWS Command Line Interface (AWS CLI). El siguiente es un ejemplo de un AWS CLI comando que otorga al usuario `datalake_user1` permiso para crear tablas en la `retail` base de datos.

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 
 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
```

A continuación, se muestra un ejemplo de política de IAM de control de acceso básico que complementa el control de acceso específico con los permisos de Lake Formation. Permite efectuar todas las operaciones sobre cualquier base de metadatos o tabla.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:*Database*",
                "glue:*Table*",
                "glue:*Partition*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

El siguiente ejemplo también es básico, pero algo más restrictivo. Permite operaciones de solo lectura en todas las bases de datos de metadatos y tablas del Catálogo de datos de la cuenta y región designadas.

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

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetTable",
                "glue:GetDatabase", 
                "glue:GetDatabases"
            ],
            "Resource": "arn:aws:glue:us-east-1:111122223333:*"
        } 
    ]   
}
```

------

Compare estas políticas con la siguiente, que implementa un control de acceso específico basado en IAM. Concede permisos solo sobre un subconjunto de tablas de la base de datos de metadatos de gestión de relaciones con los clientes (CRM) en la cuenta y la región designadas.

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

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetTable",
                "glue:GetDatabase", 
                "glue:GetDatabases"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:database/CRM",
                "arn:aws:glue:us-east-1:111122223333:table/CRM/P*"
            ]
        } 
    ]   
}
```

------

Para más ejemplos de políticas de control de acceso básicas, consulte [Personas de Lake Formation y referencia de permisos IAM](permissions-reference.md).

# Control de acceso a los datos subyacentes
<a name="access-control-underlying-data"></a>

Cuando un AWS servicio integrado solicita acceso a los datos en una ubicación de Amazon S3 cuyo acceso está controlado AWS Lake Formation, Lake Formation proporciona credenciales temporales para acceder a los datos.

Para permitir que Lake Formation controle el acceso a los datos subyacentes en una ubicación de Amazon S3, el usuario *registra* dicha ubicación con Lake Formation.

Después de registrar una ubicación de Amazon S3, puede comenzar a conceder los siguientes permisos de Lake Formation:
+ Permisos de acceso a los datos (`SELECT`, `INSERT`, y `DELETE)`) en las tablas del Catálogo de datos que apuntan a esa ubicación.
+ Permisos de ubicación de datos en esa ubicación.

 Los permisos de ubicación de datos de Lake Formation controlan la capacidad de crear recursos del Catálogo de datos que apunten a determinadas ubicaciones de Amazon S3. Los permisos de ubicación de datos proporcionan una capa adicional de seguridad a las ubicaciones dentro del lago de datos. Cuando concede el permiso `CREATE_TABLE` o `ALTER` a una entidad principal, también concede permisos de ubicación de datos para limitar las ubicaciones en las que la entidad principal puede crear o modificar tablas de metadatos. 

Las ubicaciones de Amazon S3 son buckets o prefijos bajo un bucket, pero no objetos individuales de Amazon S3.

Puede conceder permisos de ubicación de datos a una entidad principal utilizando la consola de Lake Formation, la API o la AWS CLI. El formato general de una concesión es el siguiente: 

```
grant DATA_LOCATION_ACCESS to principal on S3 location [with grant option]
```

Si incluye `with grant option`, el beneficiario puede conceder los permisos a otras entidades principales.

Recuerde que los permisos de Lake Formation siempre funcionan en combinación con los permisos AWS Identity and Access Management (IAM) para un control de acceso detallado. Para read/write los permisos sobre los datos subyacentes de Amazon S3, los permisos de IAM se conceden de la siguiente manera:

Cuando registra una ubicación, especifica un rol de IAM que concede permisos de lectura y escritura en esa ubicación. Lake Formation asume esa función al proporcionar credenciales temporales a los AWS servicios integrados. Un rol normal puede tener adjunta la siguiente política, en la que la ubicación registrada es el bucket `awsexamplebucket`.

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

****  

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

------

Lake Formation proporciona un rol vinculado al servicio que puede utilizar durante el registro para crear automáticamente políticas como esta. Para obtener más información, consulte [Uso de roles vinculados a servicios para Lake Formation](service-linked-roles.md).

Por lo tanto, el registro de una ubicación de Amazon S3 concede los permisos `s3:` IAM necesarios sobre dicha ubicación, donde los permisos vienen especificados por el rol utilizado para registrar la ubicación.

**importante**  
Evite registrar un bucket de Amazon S3 que tenga activada la opción **El solicitante paga**. Para los buckets registrados en Lake Formation, el rol utilizado para registrar el bucket se considera siempre como el solicitante. Si otra AWS cuenta accede al depósito, se le cobrará al propietario del depósito por el acceso a los datos si el rol pertenece a la misma cuenta que el propietario del depósito.

Para read/write acceder a los datos subyacentes, además de los permisos de Lake Formation, los directores también necesitan el permiso de `lakeformation:GetDataAccess` IAM. Con este permiso, Lake Formation concede la solicitud de credenciales temporales para acceder a los datos.

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

****  

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

------

 En la política anterior, debe establecer el parámetro Resource en “\$1” (todos). No se admite la especificación de ningún otro recurso para este permiso. Esta configuración garantiza que Lake Formation pueda administrar el acceso a los datos en todo el entorno del lago de datos de manera eficiente. 

**nota**  
Amazon Athena requiere que el usuario cuente con el permiso `lakeformation:GetDataAccess`. Otros servicios integrados requieren que su rol de ejecución subyacente cuente con el permiso `lakeformation:GetDataAccess`.

Este permiso está incluido en las políticas sugeridas en el [Personas de Lake Formation y referencia de permisos IAM](permissions-reference.md).

En resumen, para permitir a las entidades principales de Lake Formation leer y escribir datos subyacentes con acceso controlado por los permisos de Lake Formation:
+ Registre las ubicaciones de Amazon S3 que contienen los datos con Lake Formation.
+ Las entidades principales creadoras de tablas del Catálogo de datos que apunten a ubicaciones de datos subyacentes deben tener permisos de ubicación de datos.
+ Las entidades principales que leen y escriben datos subyacentes deben tener permisos de acceso a los datos de Lake Formation en las tablas del Catálogo de datos que apuntan a las ubicaciones de datos subyacentes.
+ Las entidades principales que lean y escriban datos subyacentes deben tener el permiso `lakeformation:GetDataAccess` IAM cuando la ubicación de datos subyacente esté registrada en Lake Formation.

**nota**  
El modelo de permisos de Lake Formation no impide el acceso a las ubicaciones de Amazon S3 a través de la API o la consola de Amazon S3 si tiene acceso a ellas a través de las políticas de IAM o Amazon S3. Puede adjuntar políticas de IAM a las entidades principales para bloquear este acceso.

**Más información sobre los permisos de ubicación de datos**  
Los permisos de ubicación de datos rigen el resultado de las operaciones de creación y actualización en las bases de datos y tablas del Catálogo de datos. Las normas son las siguientes:
+ Una entidad principal debe tener permisos explícitos o implícitos de ubicación de datos en una ubicación de Amazon S3 para crear o actualizar una base de datos o tabla que especifique dicha ubicación.
+ El permiso explícito `DATA_LOCATION_ACCESS` se concede mediante la consola, la API o. AWS CLI
+ Los permisos implícitos se conceden cuando una base de datos tiene una propiedad de ubicación que apunta a una ubicación registrada, la entidad principal tiene el permiso `CREATE_TABLE` en la base de datos y la entidad principal intenta crear una tabla en esa ubicación o en una ubicación secundaria.
+ Si a una entidad principal se le conceden permisos de ubicación de datos en una ubicación, la entidad principal tendrá permisos de ubicación de datos en todas las ubicaciones secundarias.
+ Un director no necesita permisos de ubicación de datos para realizar read/write operaciones con los datos subyacentes. Basta con tener los o permisos de acceso a los datos `SELECT` o `INSERT`. Los permisos de ubicación de datos se aplican solo a la creación de recursos del Catálogo de datos que apunten a la ubicación.

Piense en el escenario que se muestra en el siguiente diagrama.

![\[Jerarquía de carpetas y dos bases de datos, las bases de datos A y B, con la base de datos B apuntando a la carpeta Servicio al cliente.\]](http://docs.aws.amazon.com/es_es/lake-formation/latest/dg/images/location-permissions-example.png)


En este diagrama:
+ Los buckets de Amazon S3 `Products`, `Finance` y `Customer Service` están registrados en Lake Formation.
+ `Database A` no tiene propiedad de ubicación, y `Database B` tiene una propiedad de ubicación que apunta al bucket `Customer Service`.
+ El usuario `datalake_user` tiene `CREATE_TABLE` en ambas bases de datos.
+ Se han concedido al usuario `datalake_user` permisos de ubicación de datos solo en el bucket `Products`. 

A continuación se muestran los resultados cuando el usuario `datalake_user` intenta crear una tabla de catálogo en una base de datos concreta en una ubicación determinada.


**Ubicación donde `datalake_user` intenta crear una tabla**  

| Base de datos y ubicación | Éxito o fracaso | Motivo | 
| --- | --- | --- | 
| Base de datos A en Finance/Sales | Fracaso | Sin permiso de ubicación de datos | 
| Base de datos A en Products | Correcto | Tiene permiso de ubicación de datos | 
| Base de datos A en HR/Plans | Correcto | La ubicación no está registrada | 
| Base de datos B en Customer Service/Incidents | Correcto | La base de datos tiene la propiedad de ubicación en Customer Service | 

Para obtener más información, consulte los siguientes temas:
+ [Añadir una ubicación de Amazon S3 a su lago de datos](register-data-lake.md)
+ [Referencia de permisos de Lake Formation](lf-permissions-reference.md)
+ [Personas de Lake Formation y referencia de permisos IAM](permissions-reference.md)