View a markdown version of this page

Habilite Lake Formation con grupos de características - Amazon SageMaker AI

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.

Habilite Lake Formation con grupos de características

Cuando habilitas AWS Lake Formation en un grupo de características en Amazon SageMaker Feature Store, puedes aplicar la seguridad a nivel de columna, fila y celda para los datos de características de tu tienda offline. En lugar de gestionar el acceso mediante políticas de IAM individuales en Amazon S3 y sus AWS Glue recursos, se utiliza el modelo de concesión y revocación de permisos de Lake Formation para controlar qué usuarios y roles pueden acceder a funciones y registros específicos. Para obtener más información sobre Lake Formation, consulte la Guía para desarrolladores de AWS Lake Formation.

importante

El control de acceso a Lake Formation se aplica únicamente a la tienda fuera de línea. La tienda fuera de línea cuenta con el respaldo de Amazon S3 y está registrada en el AWS Glue Data Catalog, que regula Lake Formation. El acceso a la tienda online sigue estando controlado mediante las políticas de IAM. Para configurar Lake Formation, usa las LakeFormationConfig clases FeatureGroupManager y del SDK de Python para SageMaker IA (sagemaker.mlops.feature_store). Lake Formation admite el modo de acceso híbrido, que permite que las políticas de IAM y los permisos de Lake Formation coexistan durante una migración gradual.

Requisitos previos

Antes de activar Lake Formation, compruebe que dispone de lo siguiente:

  • Un grupo de funciones de SageMaker IA con una tienda fuera de línea configurada, o puedes crear uno nuevo con una tienda fuera de línea como parte de la configuración. Lake Formation requiere un almacén fuera de línea porque regula el acceso a través de la tabla del catálogo de AWS Glue datos que crea el almacén fuera de línea.

  • Un rol de ejecución de IAM con los permisos adecuados. El siguiente ejemplo muestra la política de IAM mínima requerida. Sustituya los valores de los marcadores de posición por los suyos propios.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerFeatureGroupOperations", "Effect": "Allow", "Action": [ "sagemaker:CreateFeatureGroup", "sagemaker:DescribeFeatureGroup" ], "Resource": "arn:aws:sagemaker:*:*:feature-group/*" }, { "Sid": "LakeFormation", "Effect": "Allow", "Action": [ "lakeformation:RegisterResource", "lakeformation:GrantPermissions", "lakeformation:RevokePermissions", "lakeformation:ListPermissions" ], "Resource": "*" }, { "Sid": "GlueCatalogReadAccess", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/sagemaker_featurestore", "arn:aws:glue:*:*:table/sagemaker_featurestore/*" ] }, { "Sid": "GlueCatalogTableCreate", "Effect": "Allow", "Action": [ "glue:CreateTable" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/sagemaker_featurestore", "arn:aws:glue:*:*:table/sagemaker_featurestore/*" ] }, { "Sid": "PassOfflineStoreRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::<account-id>:role/<offline-store-role-name>" }, { "Sid": "S3FeatureStoreStorage", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": "arn:aws:s3:::<offline-store-bucket-name>" }, { "Sid": "LakeFormationRegistrationRole", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetRolePolicy" ], "Resource": "arn:aws:iam::<account-id>:role/<registration-role-name>" } ] }
    nota

    La LakeFormationRegistrationRole declaración concede permisos para leer el rol utilizado para registrar la ubicación de Amazon S3 en Lake Formation. Si usa el rol vinculado al servicio Lake Formation (use_service_linked_role=True), establezca el recurso en. arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess Si proporciona su propia función de registro, configúrela en el ARN de esa función.

    nota

    Si el modo de acceso híbrido está deshabilitado en la sagemaker_featurestore base de datos, la persona que llama también debe tener el CREATE_TABLE permiso Lake Formation en la base de datos. El administrador de Lake Formation puede conceder este permiso a través de la consola o la API de Lake Formation.

  • Un administrador de Lake Formation configurado en su cuenta. Debe designar al menos un usuario o rol de IAM como administrador de Lake Formation. Para obtener instrucciones de configuración, consulte Introducción a Lake Formation en la documentación de Lake Formation.

  • El SDK de Python para SageMaker IA, versión 3.8.0 o posterior. Instale o actualice el sagemaker paquete: pip install --upgrade sagemaker>=3.8.0

  • Cross-account configuración (si corresponde). Si el depósito Amazon S3 de la tienda fuera de línea del grupo de características se encuentra en otro Cuenta de AWS, se requiere una configuración adicional para compartir entre cuentas de Lake Formation, que incluya las políticas de recursos, la aceptación de AWS Glue recursos compartidos de AWS RAM, los enlaces a los recursos y la configuración de la base de datos de consumidores. Para obtener más información, consulte Compartir datos entre cuentas en la documentación de Lake Formation.

Conceptos clave

Los siguientes conceptos son importantes para entender cómo funciona Lake Formation con Feature Store.

Modelo de permiso de Lake Formation comparado con el IAM-only modelo

De forma predeterminada, el acceso a AWS Glue Data Catalog las tablas, incluidas las creadas por Feature Store, se controla únicamente mediante las políticas de IAM. Al activar Lake Formation, el acceso requiere permisos de IAM y permisos de Lake Formation. Lake Formation utiliza un modelo de concesión y revocación en el que se conceden permisos de forma explícita, por ejemploDESCRIBE, sobre bases de datos, tablas o columnas específicas a los directores de IAM. SELECT

Modo de acceso híbrido

Al activar Lake Formation, puede elegir si desea utilizar el modo de acceso híbrido o el Formation-only modo Lake:

  • Modo de acceso híbrido (hybrid_access_mode_enabled=True): se evalúan tanto las políticas de IAM como los permisos de Lake Formation. Los directores que tienen acceso a través de las políticas de IAM existentes siguen teniendo acceso y, además, usted puede conceder un acceso detallado a través de Lake Formation. Esto es útil para una migración gradual.

  • Formation-only Modo Lake (hybrid_access_mode_enabled=False): solo se evalúan los permisos de Lake Formation. Se revoca el IAM-based acceso existente a la AWS Glue tabla. Esto proporciona el mejor control de acceso, pero puede reducir las cargas de trabajo existentes.

aviso

Cuando lo configurashybrid_access_mode_enabled=False, el SDK revoca la IAMAllowedPrincipal concesión que está sobre la AWS Glue mesa. Todos los trabajos, cuadernos o canalizaciones existentes que accedan a esta tabla únicamente mediante permisos de IAM pierden el acceso de forma inmediata. Compruebe que ha concedido los permisos de Lake Formation necesarios a todos los directores que necesitan acceso antes de deshabilitar el modo de acceso híbrido.

nota

Debe deshabilitar el modo de acceso híbrido para el acceso entre cuentas cuando el formato de tabla sea Iceberg.

Política de denegación de S3

Incluso después de activar Lake Formation sobre la AWS Glue Data Catalog mesa, los usuarios con acceso directo a Amazon S3 (a través de las políticas de IAM) pueden evitar Lake Formation leyendo directamente los objetos subyacentes de Amazon S3. Para cerrar esta brecha, aplique una política de bucket de Amazon S3 que deniegue el acceso directo al prefijo de la tienda fuera de línea a todos los principales, excepto a la función de servicio Lake Formation y la función de ejecución de Feature Store.

importante

El SDK no aplica automáticamente la política de denegación de Amazon S3. Tras activar Lake Formation, el SDK registra una política de bucket recomendada como mensaje de advertencia. Revise esta política y aplíquela a su bucket de Amazon S3 para aplicar el control de acceso de principio a fin.

Referencia de la configuración

Usa la LakeFormationConfig clase para configurar Lake Formation. Esta configuración se transfiere FeatureGroupManager.create() al crear un nuevo grupo de entidades o se utilizan los parámetros individuales directamente con enable_lake_formation() los grupos de entidades existentes.

Parámetro Tipo Predeterminado Obligatorio Description (Descripción)
enabled bool False No TrueEstablézcalo para activar Lake Formation en la tienda offline del grupo de funciones.
use_service_linked_role bool True No Si se debe utilizar la función vinculada al servicio Lake Formation para registrar la ubicación S3. Configúrelo en False si utiliza un rol de registro personalizado. No puedes usar un rol vinculado a un servicio para el acceso entre cuentas o cuando utilices motores de consulta de terceros (como Apache Spark). En el caso de los motores de terceros, debes proporcionar tu propia función de registro a través de. registration_role_arn
registration_role_arn str Ninguno Condicional El ARN de un rol de IAM personalizado para registrar la ubicación S3 de la tienda fuera de línea en Lake Formation. Obligatorio cuando use_service_linked_role es. False
hybrid_access_mode_enabled bool Si se debe revocar o no IAMAllowedPrincipal de la AWS Glue tabla. False = Formation-only Permisos de lago. True= modo híbrido (tanto IAM como Lake Formation). Debe elegir de forma explícita.
acknowledge_risk bool Debe ser True para continuar. Es una confirmación de seguridad. Si se establece en, se False eleva a RuntimeError antes de realizar cualquier operación.

Entendiendo cognidge_risk

El acknowledge_risk parámetro es una puerta de seguridad. Al configurarlo enTrue, usted reconoce lo siguiente:

  • Sihybrid_access_mode_enabled=False: los IAM-based trabajos, libretas y canalizaciones existentes que consultan esta AWS Glue tabla pierden el acceso de forma inmediata. Debes conceder permisos de Lake Formation a esos directores antes o poco después de la activación.

  • Si los permisos de Lake Formation no están configurados correctamente: es posible que todos los usuarios no puedan acceder a los datos del grupo de entidades hasta que se corrijan los permisos.

  • La operación modifica AWS Glue los permisos del catálogo de datos: estos cambios afectan a todos los usuarios de la AWS Glue tabla, no solo a los usuarios de Feature Store. Todas las consultas de Athena, los trabajos de Spark u otros servicios que se lean en esta tabla se ven afectados.

Funcionamiento

Al habilitar Lake Formation, el SDK realiza una configuración trifásica:

  1. Registre la ubicación de S3. El SDK registra la ruta S3 de la tienda offline en Lake Formation mediante la función vinculada al servicio Lake Formation o una función de registro personalizada que especifiques. Si utilizas motores de consultas de terceros (como Apache Spark), debes proporcionar tu propio rol de registro, ya que el rol vinculado al servicio no admite el acceso a motores de terceros.

  2. Otorgue permisos para Lake Formation. El SDK concedeSELECT, INSERT DELETEDESCRIBE, y ALTER los permisos de la tabla del catálogo de AWS Glue datos a la función de ejecución del grupo de características.

  3. Revocar IAMAllowedPrincipal de forma opcional. Si lo estableceshybrid_access_mode_enabled=False, el SDK revoca la IAMAllowedPrincipal concesión que está sobre la AWS Glue mesa.

Una vez completadas todas las fases, el SDK registra una política de denegación de buckets de S3 recomendada. Revise y aplique esta política para evitar el acceso directo a Amazon S3 que eluda el control de acceso de Lake Formation.

nota

Si la configuración falla a mitad de camino (por ejemplo, después de registrar la ubicación de S3 pero antes de conceder los permisos), puede volver a ejecutar el método de forma segura. enable_lake_formation() El SDK es idempotente y omite los pasos que ya se han completado correctamente.

Ejemplos de uso

Cree un nuevo grupo de funciones con el control de acceso de Lake Formation

El siguiente ejemplo crea un nuevo grupo de características con un almacén fuera de línea y habilita el control de acceso a Lake Formation en una sola operación.

from sagemaker.core.helper.session_helper import Session from sagemaker.core.shapes import ( FeatureDefinition, OfflineStoreConfig, OnlineStoreConfig, S3StorageConfig, ) from sagemaker.mlops.feature_store import FeatureGroupManager, LakeFormationConfig session = Session() region = session.boto_region_name role_arn = "arn:aws:iam::<account-id>:role/<execution-role-name>" registration_role_arn = "arn:aws:iam::<account-id>:role/<registration-role-name>" fg_name = "my-feature-group" bucket = session.default_bucket() offline_s3_uri = f"s3://{bucket}/feature-store/{fg_name}" feature_definitions = [ FeatureDefinition(feature_name="customer_id", feature_type="String"), FeatureDefinition(feature_name="event_time", feature_type="String"), FeatureDefinition(feature_name="age", feature_type="Integral"), FeatureDefinition(feature_name="total_purchases", feature_type="Integral"), FeatureDefinition(feature_name="avg_order_value", feature_type="Fractional"), ] fg = FeatureGroupManager.create( feature_group_name=fg_name, record_identifier_feature_name="customer_id", event_time_feature_name="event_time", feature_definitions=feature_definitions, online_store_config=OnlineStoreConfig(enable_online_store=False), offline_store_config=OfflineStoreConfig( s3_storage_config=S3StorageConfig(s3_uri=offline_s3_uri), table_format="Iceberg", ), role_arn=role_arn, description="A feature group with Lake Formation-managed offline store", # Example configuration — adjust parameters for your use case. lake_formation_config=LakeFormationConfig( enabled=True, use_service_linked_role=False, registration_role_arn=registration_role_arn, # Set to True to keep existing IAM-based access (hybrid mode). hybrid_access_mode_enabled=False, acknowledge_risk=True, ), region=region, )

Habilitar Lake Formation en un grupo de características existente

El siguiente ejemplo habilita Lake Formation en un grupo de entidades que ya existe.

from sagemaker.mlops.feature_store import FeatureGroupManager fg = FeatureGroupManager.get(feature_group_name="my-existing-feature-group") result = fg.enable_lake_formation( use_service_linked_role=False, registration_role_arn="arn:aws:iam::<account-id>:role/<registration-role-name>", hybrid_access_mode_enabled=False, acknowledge_risk=True, )

Utilice los grupos de Formation-enabled características de Lake con trabajos de SageMaker IA

Puedes acceder a los grupos de Formation-enabled funciones de Lake desde los trabajos de procesamiento y entrenamiento de SageMaker IA. Para leer los datos de las Formation-enabled características de Lake, puede consultarlos a través de Athena o utilizar la GetTemporaryGlueTableCredentialsAPI de Lake Formation para vender credenciales temporales de Amazon S3 relacionadas con la tabla. AWS Glue Para obtener más información sobre la configuración de los permisos de Lake Formation para las funciones de cálculo, consulte la referencia de permisos de Lake Formation en la documentación de Lake Formation.

Cross-account acceso

Lake Formation permite compartir datos de grupos de características entre sí Cuentas de AWS. Cuando la cuenta del productor habilita Lake Formation en un grupo de funciones, puede conceder acceso multicuenta a las cuentas de los consumidores mediante el método de recurso designado o el control de acceso basado en etiquetas de Lake Formation ()LF-TBAC.

Cross-account el uso compartido requiere la siguiente configuración:

  1. La cuenta de productor concede permisos multicuenta en la tabla del catálogo de AWS Glue datos a la cuenta del consumidor, a la AWS organización o a la unidad organizativa.

  2. Si las cuentas no están en la misma AWS organización, la cuenta de consumidor acepta la invitación a compartir recursos de AWS RAM. Para obtener más información, consulte Aceptar una invitación para compartir recursos.

  3. La cuenta de consumidor crea un enlace de recurso a la tabla compartida en una base de datos local. Los enlaces a los recursos son necesarios para que servicios como Athena y Amazon Redshift Spectrum consulten los recursos compartidos. Para obtener más información, consulte Acerca de los enlaces a los recursos.

  4. El administrador de Lake Formation de la cuenta de consumidor concede permisos sobre el enlace del recurso y la tabla compartida subyacente a los directores de IAM que necesitan acceso.

importante

Si utilizas motores de consulta de terceros (como Apache Spark), debes habilitar el acceso total a la tabla compartida. Third-party Los motores requieren la venta completa de credenciales de tabla porque no admiten el filtrado de etiquetas de sesión a nivel de columna o celda de Lake Formation. También debe registrar la ubicación de Amazon S3 con un rol de registro personalizado en lugar del rol vinculado al servicio. Para obtener más información, consulte el acceso completo a la tabla para motores de terceros.

Para ver los requisitos previos, las instrucciones paso a paso y las mejores prácticas para compartir entre cuentas, consulta los siguientes temas de la Guía para desarrolladores de AWS Lake Formation:

Conceda un acceso detallado después de la configuración

Tras activar Lake Formation, el administrador de Lake Formation puede conceder permisos detallados a otros directores de IAM mediante la consola, la API o la CLI de Lake Formation. Lake Formation admite el control de acceso a nivel de columna, fila y celda.

Para obtener instrucciones sobre cómo conceder y administrar los permisos de Lake Formation, consulta los siguientes temas de la Guía para desarrolladores de AWS Lake Formation: