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
, yDELETE)
) 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
onS3 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 Referencia de personas y IAM permisos de Lake Formation.
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
oINSERT
. 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.
En este diagrama:
-
Los buckets de Amazon S3
Products
,Finance
yCustomer Service
están registrados en Lake Formation. -
Database A
no tiene propiedad de ubicación, yDatabase B
tiene una propiedad de ubicación que apunta al bucketCustomer Service
. -
El usuario
datalake_user
tieneCREATE_TABLE
en ambas bases de datos. -
Se han concedido al usuario
datalake_user
permisos de ubicación de datos solo en el bucketProducts
.
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.
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: