

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
<a name="feature-store-lf-governance"></a>

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](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html).

**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](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-access-mode.html), que permite que las políticas de IAM y los permisos de Lake Formation coexistan durante una migración gradual.

## Requisitos previos
<a name="feature-store-lf-prerequisites"></a>

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](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html) 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](https://docs.aws.amazon.com/lake-formation/latest/dg/sharing-catalog-resources.html) en la documentación de Lake Formation.

## Conceptos clave
<a name="feature-store-lf-concepts"></a>

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
<a name="feature-store-lf-permission-model"></a>

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 ejemplo`DESCRIBE`, sobre bases de datos, tablas o columnas específicas a los directores de IAM. `SELECT`

### Modo de acceso híbrido
<a name="feature-store-lf-hybrid-access"></a>

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 configuras`hybrid_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
<a name="feature-store-lf-s3-deny-policy"></a>

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
<a name="feature-store-lf-configuration"></a>

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 | — | Sí | 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 | — | Sí | 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
<a name="feature-store-lf-acknowledge-risk"></a>

El `acknowledge_risk` parámetro es una puerta de seguridad. Al configurarlo en`True`, usted reconoce lo siguiente:
+ Si`hybrid_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
<a name="feature-store-lf-how-it-works"></a>

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.

1. **Otorgue permisos para Lake Formation.** El SDK concede`SELECT`, `INSERT` `DELETE``DESCRIBE`, 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.

1. **Revocar IAMAllowedPrincipal de forma opcional.** Si lo estableces`hybrid_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
<a name="feature-store-lf-examples"></a>

### Cree un nuevo grupo de funciones con el control de acceso de Lake Formation
<a name="feature-store-lf-example-new-fg"></a>

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
<a name="feature-store-lf-example-existing-fg"></a>

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
<a name="feature-store-lf-sagemaker-jobs"></a>

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 [GetTemporaryGlueTableCredentials](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GetTemporaryGlueTableCredentials.html)API 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](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html) en la documentación de Lake Formation.

## Cross-account acceso
<a name="feature-store-lf-cross-account"></a>

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.

1. 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](https://docs.aws.amazon.com/lake-formation/latest/dg/accepting-ram-invite.html).

1. 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](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html).

1. 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](https://docs.aws.amazon.com/lake-formation/latest/dg/full-table-credential-vending.html).

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:
+ [Cross-account acceso](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html): descripción general de los métodos de uso compartido entre cuentas y AWS la integración de la RAM.
+ [Cross-account requisitos previos](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-prereqs.html): configuración requerida para las cuentas de productor y consumidor.
+ [Uso compartido de tablas y bases de datos del catálogo de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-data-share-steps.html): Step-by-step instrucciones tanto para el método de recurso indicado como para el LF-TBAC método.
+ [Tag-based control de acceso](https://docs.aws.amazon.com/lake-formation/latest/dg/tag-based-access-control.html): se recomienda para administrar los permisos a gran escala en varias cuentas.

## Conceda un acceso detallado después de la configuración
<a name="feature-store-lf-fine-grained-access"></a>

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:
+ [Otorgar y revocar permisos del catálogo de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-permissions.html)
+ [Filtros de datos en Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filters-about.html) para filtrado a nivel de fila y de celda
+ [Referencia de permisos de Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html)