View a markdown version of this page

Lake Formation fluxo de trabalho para operações de API de integração de aplicativos - AWS Lake Formation

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á.

Lake Formation fluxo de trabalho para operações de API de integração de aplicativos

A seguir está o fluxo de trabalho das operações da API de integração de aplicativos:

  1. Um usuário envia uma consulta ou solicitação de dados usando um mecanismo de consulta integrado de terceiros. O mecanismo de consulta assume um perfil do IAM que representa o usuário ou um grupo de usuários e recupera credenciais confiáveis para serem usadas ao chamar as operações da API de integração de aplicativos.

  2. O mecanismo de consulta chama GetUnfilteredTableMetadata e, se for uma tabela particionada, o mecanismo de consulta chama GetUnfilteredPartitionsMetadata para recuperar metadados e informações de política do catálogo de dados.

  3. O Lake Formation realiza a autorização para a solicitação. Se o usuário não tiver as permissões apropriadas na mesa, ele será AccessDeniedExceptiondescartado.

  4. Como parte da solicitação, o mecanismo de consulta envia a filtragem compatível. Há dois sinalizadores que podem ser enviados em uma matriz: COLUMN_PERMISSIONS e CELL_FILTER_PERMISSION. Se o mecanismo de consulta não oferecer suporte a nenhum desses recursos e existir uma política na tabela para o recurso, a será lançado e a consulta falhará. PermissionTypeMismatchException Isso acontece para evitar o vazamento de dados.

  5. A resposta obtida contém o seguinte:

    • O esquema inteiro da tabela para que os mecanismos de consulta possam usá-lo para analisar os dados do armazenamento.

    • Uma lista de colunas autorizadas que o usuário tem acesso. Se a lista de colunas autorizadas estiver vazia, isso indica que o usuário tem permissões DESCRIBE, mas não tem permissões SELECT, e a consulta falha.

    • Um alerta, IsRegisteredWithLakeFormation, que indica se o Lake Formation pode fornecer credenciais para esses dados de recursos. Se isso retornar falso, as credenciais dos clientes devem ser usadas para acessar o Amazon S3.

    • Uma lista de CellFilters, se houver, que deve ser aplicada às linhas de dados. Essa lista contém colunas e uma expressão para avaliar cada linha. Isso só deve ser preenchido se CELL_FILTER_PERMISSION for enviado como parte da solicitação e houver um filtro de dados na tabela do usuário chamador.

  6. Depois que os metadados são recuperados, o mecanismo de consulta chama GetTemporaryGlueTableCredentials ou obtém AWS credenciais GetTemporaryGluePartitionCredentials para recuperar dados da localização do Amazon S3.

  7. O mecanismo de consulta lê objetos relevantes do Amazon S3, filtra os dados com base nas políticas recebidas na etapa 2 e retorna os resultados ao usuário.

As operações da API de integração de aplicativos para o Lake Formation contêm conteúdo adicional para configurar a integração com mecanismos de consulta de terceiros. Você pode ver os informações da operação na seção Operações da API de fornecimento de credenciais.

QuerySessionContextÉ uma estrutura que os mecanismos de consulta também podem enviar Lake Formation para essas operações de API de integração de aplicativos. Ele permite Lake Formation armazenar e utilizar contexto adicional para uma determinada consulta. Veja a seguir um exemplo de como QuerySessionContextdeve ser usado:

  1. O mecanismo de consulta faz uma GetInternalUnfilteredMetadata chamada, passando uma estrutura QSC contendo um ID de consulta exclusivo na solicitação:

    { "QuerySessionContext": { "QueryId": "your-unique-identifier-here" } }
  2. A GetInternalUnfilteredMetadata chamada retornará uma QueryAuthorizationId string na resposta. Na próxima chamada de consulta (e em qualquer chamada subsequente) que aceita uma estrutura QSC na entrada, o mecanismo de consulta passa a mesma estrutura QSC que agora também contém o QueryAuthorizationId retornado por. Lake Formation Suponha que a próxima chamada sejaGetTemporaryGlueTableCredentials; a solicitação conterá:

    { "QuerySessionContext": { "QueryAuthorizationId": "lf-returned-query-authz-id-here", "QueryId": "your-unique-identifier-here" }, }