

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Habilite o Lake Formation com grupos de recursos
<a name="feature-store-lf-governance"></a>

Ao habilitar o AWS Lake Formation em um grupo de recursos na Amazon SageMaker Feature Store, você pode aplicar a segurança em nível de coluna, linha e célula para os dados do recurso em sua loja off-line. Em vez de gerenciar o acesso por meio de políticas individuais do IAM no Amazon S3 e nos AWS Glue recursos, você usa o modelo de concessão e revogação de permissões do Lake Formation para controlar quais usuários e funções podem acessar recursos e registros específicos. Para obter mais informações sobre o Lake Formation, consulte o [Guia do desenvolvedor do AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html).

**Importante**  
O controle de acesso do Lake Formation se aplica somente à loja off-line. A loja off-line é apoiada pelo Amazon S3 e registrada na AWS Glue Data Catalog, que é governada por Lake Formation. O acesso à loja on-line continua sendo controlado por meio de políticas do IAM. Para configurar o Lake Formation, você usa as `LakeFormationConfig` classes `FeatureGroupManager` e do SageMaker AI Python SDK (). `sagemaker.mlops.feature_store` O Lake Formation oferece suporte [ao modo de acesso híbrido](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-access-mode.html), que permite que as políticas do IAM e as permissões do Lake Formation coexistam durante uma migração gradual.

## Pré-requisitos
<a name="feature-store-lf-prerequisites"></a>

Antes de ativar o Lake Formation, verifique se você tem o seguinte:
+ Um grupo de recursos de SageMaker IA com uma loja offline configurada, ou você pode criar um novo com uma loja offline como parte da configuração. O Lake Formation requer um armazenamento off-line porque ele controla o acesso por meio da tabela do Catálogo de AWS Glue Dados que a loja offline cria.
+ Uma função de execução do IAM com as permissões apropriadas. O exemplo a seguir mostra a política mínima de IAM necessária. Substitua os valores dos espaços reservados pelos seus próprios.

  ```
  {
      "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**  
A `LakeFormationRegistrationRole` declaração concede permissões para ler a função usada para registrar a localização do Amazon S3 no Lake Formation. Se você usar a função vinculada ao serviço do Lake Formation (`use_service_linked_role=True`), defina o recurso como. `arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess` Se você fornecer sua própria função de registro, defina-a como o ARN dessa função.
**nota**  
Se o modo de acesso híbrido estiver desativado no `sagemaker_featurestore` banco de dados, o chamador também deverá ter a `CREATE_TABLE` permissão Lake Formation no banco de dados. O administrador do Lake Formation pode conceder essa permissão por meio do console ou da API do Lake Formation.
+ Um administrador do Lake Formation configurado em sua conta. Você deve designar pelo menos um usuário ou função do IAM como administrador do Lake Formation. Para obter instruções de configuração, consulte [Introdução ao Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html) na documentação do Lake Formation.
+ O SDK SageMaker AI Python versão 3.8.0 ou posterior. Instale ou atualize o `sagemaker` pacote: `pip install --upgrade sagemaker>=3.8.0`
+ Cross-account configuração (se aplicável). Se o bucket Amazon S3 da loja off-line do grupo de recursos estiver em uma configuração diferente Conta da AWS, será necessária uma configuração adicional de compartilhamento entre contas do Lake Formation, incluindo políticas de AWS Glue recursos, aceitação do compartilhamento de AWS RAM, links de recursos e configuração do banco de dados do consumidor. Para obter mais informações, consulte [Compartilhamento de dados entre contas](https://docs.aws.amazon.com/lake-formation/latest/dg/sharing-catalog-resources.html) na documentação do Lake Formation.

## Principais conceitos
<a name="feature-store-lf-concepts"></a>

Os conceitos a seguir são importantes para entender como o Lake Formation funciona com o Feature Store.

### Modelo de permissão do Lake Formation comparado ao IAM-only modelo
<a name="feature-store-lf-permission-model"></a>

Por padrão, o acesso às AWS Glue Data Catalog tabelas, incluindo aquelas criadas pela Feature Store, é controlado apenas por meio das políticas do IAM. Quando você ativa o Lake Formation, o acesso exige permissões do IAM e do Lake Formation. O Lake Formation usa um modelo de concessão e revogação em que você concede explicitamente permissões, como `SELECT` ou, em bancos de dados`DESCRIBE`, tabelas ou colunas específicos, aos diretores do IAM.

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

Ao ativar o Lake Formation, você escolhe se deseja usar o modo de acesso híbrido ou o Formation-only modo Lake:
+ **Modo de acesso híbrido** (`hybrid_access_mode_enabled=True`): tanto as políticas do IAM quanto as permissões do Lake Formation são avaliadas. Os diretores que têm acesso por meio das políticas existentes do IAM continuam tendo acesso, e você também pode conceder acesso refinado por meio do Lake Formation. Isso é útil para a migração gradual.
+ ** Formation-only Modo Lake** (`hybrid_access_mode_enabled=False`): Somente as permissões do Lake Formation são avaliadas. O IAM-based acesso existente à AWS Glue tabela é revogado. Isso fornece o controle de acesso mais forte, mas pode interromper as cargas de trabalho existentes.

**Atenção**  
Quando você configura`hybrid_access_mode_enabled=False`, o SDK revoga a `IAMAllowedPrincipal` concessão na AWS Glue tabela. Todos os trabalhos, notebooks ou pipelines existentes que acessam essa tabela apenas por meio de permissões do IAM perdem o acesso imediatamente. Verifique se você concedeu as permissões necessárias do Lake Formation a todos os diretores que precisam de acesso antes de desativar o modo de acesso híbrido.

**nota**  
Você deve desativar o modo de acesso híbrido para acesso entre contas quando o formato da tabela for Iceberg.

### Política de negação do S3
<a name="feature-store-lf-s3-deny-policy"></a>

Mesmo depois de habilitar o Lake Formation na AWS Glue Data Catalog tabela, os usuários com acesso direto ao Amazon S3 (por meio de políticas do IAM) podem ignorar o Lake Formation lendo diretamente os objetos subjacentes do Amazon S3. Para fechar essa lacuna, aplique uma política de bucket do Amazon S3 que negue acesso direto ao prefixo da loja offline para todos os principais, exceto a função de serviço Lake Formation e a função de execução da Feature Store.

**Importante**  
O SDK não aplica automaticamente a política de negação do Amazon S3. Depois de ativar o Lake Formation, o SDK registra uma política de bucket recomendada como uma mensagem de aviso. Revise essa política e aplique-a ao seu bucket do Amazon S3 para impor o controle de acesso de ponta a ponta.

## Referência da configuração
<a name="feature-store-lf-configuration"></a>

Use a `LakeFormationConfig` classe para configurar o Lake Formation. Você passa essa configuração `FeatureGroupManager.create()` ao criar um novo grupo de recursos ou usa os parâmetros individuais diretamente com os grupos `enable_lake_formation()` de recursos existentes.


| Parâmetro | Tipo | Padrão | Obrigatório | Description | 
| --- | --- | --- | --- | --- | 
| enabled | bool | Falso | Não | Defina True para ativar o Lake Formation na loja offline do grupo de recursos. | 
| use\_service\_linked\_role | bool | Verdadeiro | Não | Se deve usar a função vinculada ao serviço Lake Formation para registrar a localização do S3. Defina como False se você usa uma função de registro personalizada. Você não pode usar uma função vinculada ao serviço para acesso entre contas ou ao usar mecanismos de consulta de terceiros (como o Apache Spark). Para mecanismos de terceiros, você deve fornecer sua própria função de registro por meio deregistration\_role\_arn. | 
| registration\_role\_arn | str | Nenhum | Condicional | O ARN de uma função personalizada do IAM para registrar a localização S3 da loja off-line com o Lake Formation. Exigido quando use\_service\_linked\_role éFalse. | 
| hybrid\_access\_mode\_enabled | bool | — | Sim | Se deve ser revogado IAMAllowedPrincipal da AWS Glue mesa. False = Formation-only Permissões do lago. True= modo híbrido (IAM e Lake Formation). Você deve escolher explicitamente. | 
| acknowledge\_risk | bool | — | Sim | Deve ser True para continuar. Esta é uma confirmação de segurança. A configuração para False elevar um RuntimeError antes que qualquer operação seja executada. | 

### Entendendo o reconhecimento\_risco
<a name="feature-store-lf-acknowledge-risk"></a>

O `acknowledge_risk` parâmetro é uma porta de segurança. Ao configurá-lo como`True`, você reconhece o seguinte:
+ Se`hybrid_access_mode_enabled=False`: IAM-based Trabalhos, notebooks e pipelines existentes que consultam essa AWS Glue tabela perderão o acesso imediatamente. Você deve conceder permissões de Lake Formation a esses diretores antes ou logo após a habilitação.
+ Se as permissões do Lake Formation não estiverem configuradas corretamente: os dados no grupo de recursos podem ficar inacessíveis a todos os usuários até que as permissões sejam corrigidas.
+ A operação modifica as permissões do Catálogo de AWS Glue Dados: essas alterações afetam todos os consumidores da AWS Glue tabela, não apenas os usuários da Feature Store. Todas as consultas do Athena, trabalhos do Spark ou outros serviços lidos nessa tabela são afetados.

## Como funciona
<a name="feature-store-lf-how-it-works"></a>

Quando você ativa o Lake Formation, o SDK executa uma configuração trifásica:

1. **Registre a localização do S3.** O SDK registra o caminho S3 da loja off-line no Lake Formation usando a função vinculada ao serviço Lake Formation ou uma função de registro personalizada que você especificar. Se você usa mecanismos de consulta de terceiros (como o Apache Spark), deve fornecer sua própria função de registro, pois a função vinculada ao serviço não oferece suporte ao acesso a mecanismos de terceiros.

1. **Conceda permissões do Lake Formation.** O SDK concede`SELECT`,`INSERT`, `DELETE``DESCRIBE`, e `ALTER` permissões na tabela do Catálogo de AWS Glue Dados para a função de execução do grupo de recursos.

1. **Opcionalmente, revogue IAMAllowedPrincipal.** Se você definir`hybrid_access_mode_enabled=False`, o SDK revogará a `IAMAllowedPrincipal` concessão na AWS Glue tabela.

Depois que todas as fases forem concluídas, o SDK registra uma política recomendada de negação de bucket do S3. Revise e aplique essa política para evitar o acesso direto ao Amazon S3 que ignore o controle de acesso do Lake Formation.

**nota**  
Se a configuração falhar no meio do processo (por exemplo, depois de registrar a localização do S3, mas antes de conceder permissões), você poderá executar o método novamente com segurança. `enable_lake_formation()` O SDK é idempotente e ignora etapas que já foram concluídas com êxito.

## Exemplos de uso
<a name="feature-store-lf-examples"></a>

### Crie um novo grupo de recursos com o controle de acesso do Lake Formation
<a name="feature-store-lf-example-new-fg"></a>

O exemplo a seguir cria um novo grupo de recursos com uma loja off-line e ativa o controle de acesso do Lake Formation em uma única operação.

```
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,
)
```

### Ativar o Lake Formation em um grupo de recursos existente
<a name="feature-store-lf-example-existing-fg"></a>

O exemplo a seguir ativa o Lake Formation em um grupo de recursos que já 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,
)
```

## Use grupos de Formation-enabled recursos do Lake com trabalhos de SageMaker IA
<a name="feature-store-lf-sagemaker-jobs"></a>

Você pode acessar grupos de Formation-enabled recursos do Lake a partir de trabalhos de treinamento e processamento de SageMaker IA. Para ler os dados dos Formation-enabled recursos do Lake, você pode consultar os dados por meio do Athena ou usar a [GetTemporaryGlueTableCredentials](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_GetTemporaryGlueTableCredentials.html)API do Lake Formation para fornecer credenciais temporárias do Amazon S3 com escopo definido na tabela. AWS Glue Para obter mais informações sobre como configurar as permissões do Lake Formation para funções de computação, consulte a [referência de permissões do Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html) na documentação do Lake Formation.

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

O Lake Formation suporta o compartilhamento de dados de grupos de recursos entre Contas da AWS. Quando a conta do produtor ativa o Lake Formation em um grupo de recursos, ela pode conceder acesso entre contas às contas de consumidores usando o método de recurso nomeado ou o controle de acesso baseado na tag Lake Formation ()LF-TBAC.

Cross-account o compartilhamento requer a seguinte configuração:

1. A conta do produtor concede permissões entre contas na tabela do Catálogo de AWS Glue Dados para a conta do consumidor, AWS organização ou unidade organizacional.

1. Se as contas não estiverem na mesma AWS organização, a conta do consumidor aceitará o convite de compartilhamento de recursos de AWS RAM. Para obter mais informações, consulte [Aceitar um convite de compartilhamento de recursos](https://docs.aws.amazon.com/lake-formation/latest/dg/accepting-ram-invite.html).

1. A conta do consumidor cria um link de recurso para a tabela compartilhada em um banco de dados local. Os links de recursos são necessários para que serviços como o Athena e o Amazon Redshift Spectrum consultem recursos compartilhados. Para obter mais informações, consulte [Sobre links de recursos](https://docs.aws.amazon.com/lake-formation/latest/dg/resource-links-about.html).

1. O administrador do Lake Formation na conta do consumidor concede permissões no link do recurso e na tabela compartilhada subjacente aos diretores do IAM que precisam de acesso.

**Importante**  
Se você usa mecanismos de consulta de terceiros (como o Apache Spark), você deve habilitar o acesso total à tabela compartilhada. Third-party os mecanismos exigem a venda completa de credenciais de tabela porque não oferecem suporte à filtragem em nível de coluna ou de célula do Lake Formation por meio de tags de sessão. Você também deve registrar a localização do Amazon S3 com uma função de registro personalizada em vez da função vinculada ao serviço. Para obter mais informações, consulte [Acesso total à tabela para mecanismos de terceiros](https://docs.aws.amazon.com/lake-formation/latest/dg/full-table-credential-vending.html).

Para obter os pré-requisitos, instruções passo a passo e as melhores práticas para o compartilhamento entre contas, consulte os tópicos a seguir no Guia do Desenvolvedor do Lake Formation: AWS 
+ [Cross-account access](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html) — Visão geral dos métodos de compartilhamento entre contas e integração de AWS RAM.
+ [Cross-account pré-requisitos](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-prereqs.html) — Configuração necessária para contas de produtores e consumidores.
+ [Compartilhamento de tabelas e bancos de dados do Catálogo de Dados](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-data-share-steps.html) — Step-by-step instruções para o método e LF-TBAC o método do recurso nomeado.
+ [Tag-based controle de acesso](https://docs.aws.amazon.com/lake-formation/latest/dg/tag-based-access-control.html) — Recomendado para gerenciar permissões em grande escala em várias contas.

## Conceda acesso refinado após a configuração
<a name="feature-store-lf-fine-grained-access"></a>

Depois de habilitar o Lake Formation, o administrador do Lake Formation pode conceder permissões refinadas a outros diretores do IAM usando o console, a API ou a CLI do Lake Formation. O Lake Formation oferece suporte ao controle de acesso em nível de coluna, nível de linha e nível de célula.

Para obter instruções sobre como conceder e gerenciar permissões do Lake Formation, consulte os tópicos a seguir no Guia do Desenvolvedor do AWS Lake Formation:
+ [Concedendo e revogando permissões do Catálogo de Dados](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-catalog-permissions.html)
+ [Filtros de dados no Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/data-filters-about.html) para filtragem em nível de linha e em nível de célula
+ [Referência de permissões do Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/lf-permissions-reference.html)