Control de acceso a los datos subyacentes - AWS Lake Formation

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.

Control de acceso a los datos subyacentes

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 los permisos de lectura/escritura en los datos subyacentes de Amazon S3, los permisos 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.

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

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.

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 el acceso de lectura/escritura a los datos subyacentes, además de los permisos de Lake Formation, las entidades principales también necesitan el siguiente permiso de IAM:

lakeformation:GetDataAccess

Con este permiso, Lake Formation concede la solicitud de credenciales temporales para acceder a los datos.

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.

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.

  • Una entidad principal no necesita permisos de ubicación de datos para efectuar las operaciones de lectura/escritura de 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.

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 más información, consulte los siguientes temas: